datahike 0.7.1630

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +226 -0
  2. package/cljs.analyzer.api.js +427 -0
  3. package/cljs.analyzer.api.js.map +1 -0
  4. package/cljs.analyzer.impl.js +86 -0
  5. package/cljs.analyzer.impl.js.map +1 -0
  6. package/cljs.analyzer.impl.namespaces.js +219 -0
  7. package/cljs.analyzer.impl.namespaces.js.map +1 -0
  8. package/cljs.analyzer.js +7186 -0
  9. package/cljs.analyzer.js.map +1 -0
  10. package/cljs.analyzer.passes.and_or.js +141 -0
  11. package/cljs.analyzer.passes.and_or.js.map +1 -0
  12. package/cljs.analyzer.passes.js +104 -0
  13. package/cljs.analyzer.passes.js.map +1 -0
  14. package/cljs.cache.js +1145 -0
  15. package/cljs.cache.js.map +1 -0
  16. package/cljs.cache.wrapped.js +352 -0
  17. package/cljs.cache.wrapped.js.map +1 -0
  18. package/cljs.core.async.impl.buffers.js +489 -0
  19. package/cljs.core.async.impl.buffers.js.map +1 -0
  20. package/cljs.core.async.impl.channels.js +711 -0
  21. package/cljs.core.async.impl.channels.js.map +1 -0
  22. package/cljs.core.async.impl.dispatch.js +81 -0
  23. package/cljs.core.async.impl.dispatch.js.map +1 -0
  24. package/cljs.core.async.impl.ioc_helpers.js +192 -0
  25. package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
  26. package/cljs.core.async.impl.protocols.js +368 -0
  27. package/cljs.core.async.impl.protocols.js.map +1 -0
  28. package/cljs.core.async.impl.timers.js +510 -0
  29. package/cljs.core.async.impl.timers.js.map +1 -0
  30. package/cljs.core.async.js +8813 -0
  31. package/cljs.core.async.js.map +1 -0
  32. package/cljs.core.js +38764 -0
  33. package/cljs.core.js.map +1 -0
  34. package/cljs.env.js +60 -0
  35. package/cljs.env.js.map +1 -0
  36. package/cljs.nodejs.js +80 -0
  37. package/cljs.nodejs.js.map +1 -0
  38. package/cljs.reader.js +462 -0
  39. package/cljs.reader.js.map +1 -0
  40. package/cljs.spec.alpha.js +5312 -0
  41. package/cljs.spec.alpha.js.map +1 -0
  42. package/cljs.spec.gen.alpha.js +2020 -0
  43. package/cljs.spec.gen.alpha.js.map +1 -0
  44. package/cljs.tagged_literals.js +103 -0
  45. package/cljs.tagged_literals.js.map +1 -0
  46. package/cljs.tools.reader.edn.js +960 -0
  47. package/cljs.tools.reader.edn.js.map +1 -0
  48. package/cljs.tools.reader.impl.commons.js +217 -0
  49. package/cljs.tools.reader.impl.commons.js.map +1 -0
  50. package/cljs.tools.reader.impl.errors.js +441 -0
  51. package/cljs.tools.reader.impl.errors.js.map +1 -0
  52. package/cljs.tools.reader.impl.inspect.js +182 -0
  53. package/cljs.tools.reader.impl.inspect.js.map +1 -0
  54. package/cljs.tools.reader.impl.utils.js +429 -0
  55. package/cljs.tools.reader.impl.utils.js.map +1 -0
  56. package/cljs.tools.reader.js +1830 -0
  57. package/cljs.tools.reader.js.map +1 -0
  58. package/cljs.tools.reader.reader_types.js +838 -0
  59. package/cljs.tools.reader.reader_types.js.map +1 -0
  60. package/cljs_env.js +18192 -0
  61. package/cljs_node_io.core.js +1278 -0
  62. package/cljs_node_io.core.js.map +1 -0
  63. package/cljs_node_io.file.js +918 -0
  64. package/cljs_node_io.file.js.map +1 -0
  65. package/cljs_node_io.fs.js +3911 -0
  66. package/cljs_node_io.fs.js.map +1 -0
  67. package/clojure.data.js +319 -0
  68. package/clojure.data.js.map +1 -0
  69. package/clojure.edn.js +119 -0
  70. package/clojure.edn.js.map +1 -0
  71. package/clojure.set.js +406 -0
  72. package/clojure.set.js.map +1 -0
  73. package/clojure.string.js +502 -0
  74. package/clojure.string.js.map +1 -0
  75. package/clojure.walk.js +156 -0
  76. package/clojure.walk.js.map +1 -0
  77. package/datahike.api.impl.js +621 -0
  78. package/datahike.api.impl.js.map +1 -0
  79. package/datahike.api.specification.js +85 -0
  80. package/datahike.api.specification.js.map +1 -0
  81. package/datahike.array.js +275 -0
  82. package/datahike.array.js.map +1 -0
  83. package/datahike.config.js +437 -0
  84. package/datahike.config.js.map +1 -0
  85. package/datahike.connections.js +55 -0
  86. package/datahike.connections.js.map +1 -0
  87. package/datahike.connector.js +1248 -0
  88. package/datahike.connector.js.map +1 -0
  89. package/datahike.constants.js +66 -0
  90. package/datahike.constants.js.map +1 -0
  91. package/datahike.core.js +628 -0
  92. package/datahike.core.js.map +1 -0
  93. package/datahike.datom.js +963 -0
  94. package/datahike.datom.js.map +1 -0
  95. package/datahike.db.interface.js +819 -0
  96. package/datahike.db.interface.js.map +1 -0
  97. package/datahike.db.js +3095 -0
  98. package/datahike.db.js.map +1 -0
  99. package/datahike.db.search.js +1004 -0
  100. package/datahike.db.search.js.map +1 -0
  101. package/datahike.db.transaction.js +1904 -0
  102. package/datahike.db.transaction.js.map +1 -0
  103. package/datahike.db.utils.js +642 -0
  104. package/datahike.db.utils.js.map +1 -0
  105. package/datahike.gc.js +1618 -0
  106. package/datahike.gc.js.map +1 -0
  107. package/datahike.impl.entity.js +604 -0
  108. package/datahike.impl.entity.js.map +1 -0
  109. package/datahike.index.interface.js +484 -0
  110. package/datahike.index.interface.js.map +1 -0
  111. package/datahike.index.js +50 -0
  112. package/datahike.index.js.map +1 -0
  113. package/datahike.index.persistent_set.js +1250 -0
  114. package/datahike.index.persistent_set.js.map +1 -0
  115. package/datahike.js.api.js +2211 -0
  116. package/datahike.js.api.js.map +1 -0
  117. package/datahike.lru.js +404 -0
  118. package/datahike.lru.js.map +1 -0
  119. package/datahike.pull_api.js +533 -0
  120. package/datahike.pull_api.js.map +1 -0
  121. package/datahike.query.js +11891 -0
  122. package/datahike.query.js.map +1 -0
  123. package/datahike.query_stats.js +152 -0
  124. package/datahike.query_stats.js.map +1 -0
  125. package/datahike.readers.js +166 -0
  126. package/datahike.readers.js.map +1 -0
  127. package/datahike.schema.js +251 -0
  128. package/datahike.schema.js.map +1 -0
  129. package/datahike.schema_cache.js +66 -0
  130. package/datahike.schema_cache.js.map +1 -0
  131. package/datahike.spec.js +70 -0
  132. package/datahike.spec.js.map +1 -0
  133. package/datahike.store.js +514 -0
  134. package/datahike.store.js.map +1 -0
  135. package/datahike.tools.js +436 -0
  136. package/datahike.tools.js.map +1 -0
  137. package/datahike.writer.js +3463 -0
  138. package/datahike.writer.js.map +1 -0
  139. package/datahike.writing.js +3168 -0
  140. package/datahike.writing.js.map +1 -0
  141. package/datalog.parser.impl.js +1421 -0
  142. package/datalog.parser.impl.js.map +1 -0
  143. package/datalog.parser.impl.proto.js +213 -0
  144. package/datalog.parser.impl.proto.js.map +1 -0
  145. package/datalog.parser.impl.util.js +117 -0
  146. package/datalog.parser.impl.util.js.map +1 -0
  147. package/datalog.parser.js +47 -0
  148. package/datalog.parser.js.map +1 -0
  149. package/datalog.parser.pull.js +2603 -0
  150. package/datalog.parser.pull.js.map +1 -0
  151. package/datalog.parser.type.js +7502 -0
  152. package/datalog.parser.type.js.map +1 -0
  153. package/datalog.parser.util.js +60 -0
  154. package/datalog.parser.util.js.map +1 -0
  155. package/environ.core.js +263 -0
  156. package/environ.core.js.map +1 -0
  157. package/fress.api.js +607 -0
  158. package/fress.api.js.map +1 -0
  159. package/fress.impl.adler32.js +435 -0
  160. package/fress.impl.adler32.js.map +1 -0
  161. package/fress.impl.bigint.js +185 -0
  162. package/fress.impl.bigint.js.map +1 -0
  163. package/fress.impl.buffer.js +1087 -0
  164. package/fress.impl.buffer.js.map +1 -0
  165. package/fress.impl.codes.js +105 -0
  166. package/fress.impl.codes.js.map +1 -0
  167. package/fress.impl.hopmap.js +603 -0
  168. package/fress.impl.hopmap.js.map +1 -0
  169. package/fress.impl.ranges.js +49 -0
  170. package/fress.impl.ranges.js.map +1 -0
  171. package/fress.impl.raw_input.js +837 -0
  172. package/fress.impl.raw_input.js.map +1 -0
  173. package/fress.impl.raw_output.js +653 -0
  174. package/fress.impl.raw_output.js.map +1 -0
  175. package/fress.impl.table.js +133 -0
  176. package/fress.impl.table.js.map +1 -0
  177. package/fress.reader.js +2312 -0
  178. package/fress.reader.js.map +1 -0
  179. package/fress.util.js +458 -0
  180. package/fress.util.js.map +1 -0
  181. package/fress.writer.js +2141 -0
  182. package/fress.writer.js.map +1 -0
  183. package/geheimnis.aes.js +132 -0
  184. package/geheimnis.aes.js.map +1 -0
  185. package/hasch.base64.js +42 -0
  186. package/hasch.base64.js.map +1 -0
  187. package/hasch.benc.js +201 -0
  188. package/hasch.benc.js.map +1 -0
  189. package/hasch.core.js +188 -0
  190. package/hasch.core.js.map +1 -0
  191. package/hasch.platform.js +221 -0
  192. package/hasch.platform.js.map +1 -0
  193. package/incognito.base.js +276 -0
  194. package/incognito.base.js.map +1 -0
  195. package/incognito.edn.js +54 -0
  196. package/incognito.edn.js.map +1 -0
  197. package/incognito.fressian.js +330 -0
  198. package/incognito.fressian.js.map +1 -0
  199. package/index.d.ts +660 -0
  200. package/is.simm.partial_cps.async.js +142 -0
  201. package/is.simm.partial_cps.async.js.map +1 -0
  202. package/is.simm.partial_cps.runtime.js +65 -0
  203. package/is.simm.partial_cps.runtime.js.map +1 -0
  204. package/is.simm.partial_cps.sequence.js +1255 -0
  205. package/is.simm.partial_cps.sequence.js.map +1 -0
  206. package/konserve.cache.js +2519 -0
  207. package/konserve.cache.js.map +1 -0
  208. package/konserve.compressor.js +502 -0
  209. package/konserve.compressor.js.map +1 -0
  210. package/konserve.core.js +8052 -0
  211. package/konserve.core.js.map +1 -0
  212. package/konserve.encryptor.js +553 -0
  213. package/konserve.encryptor.js.map +1 -0
  214. package/konserve.gc.js +541 -0
  215. package/konserve.gc.js.map +1 -0
  216. package/konserve.impl.defaults.js +8290 -0
  217. package/konserve.impl.defaults.js.map +1 -0
  218. package/konserve.impl.storage_layout.js +849 -0
  219. package/konserve.impl.storage_layout.js.map +1 -0
  220. package/konserve.memory.js +2102 -0
  221. package/konserve.memory.js.map +1 -0
  222. package/konserve.node_filestore.js +2951 -0
  223. package/konserve.node_filestore.js.map +1 -0
  224. package/konserve.protocols.js +590 -0
  225. package/konserve.protocols.js.map +1 -0
  226. package/konserve.serializers.js +562 -0
  227. package/konserve.serializers.js.map +1 -0
  228. package/konserve.store.js +2245 -0
  229. package/konserve.store.js.map +1 -0
  230. package/konserve.tiered.js +9574 -0
  231. package/konserve.tiered.js.map +1 -0
  232. package/konserve.utils.js +180 -0
  233. package/konserve.utils.js.map +1 -0
  234. package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
  235. package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
  236. package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
  237. package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
  238. package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
  239. package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
  240. package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
  241. package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
  242. package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
  243. package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
  244. package/me.tonsky.persistent_sorted_set.js +890 -0
  245. package/me.tonsky.persistent_sorted_set.js.map +1 -0
  246. package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
  247. package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
  248. package/me.tonsky.persistent_sorted_set.util.js +402 -0
  249. package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
  250. package/medley.core.js +1857 -0
  251. package/medley.core.js.map +1 -0
  252. package/package.json +38 -0
  253. package/spec_tools.core.js +1925 -0
  254. package/spec_tools.core.js.map +1 -0
  255. package/spec_tools.data_spec.js +1291 -0
  256. package/spec_tools.data_spec.js.map +1 -0
  257. package/spec_tools.form.js +185 -0
  258. package/spec_tools.form.js.map +1 -0
  259. package/spec_tools.impl.js +362 -0
  260. package/spec_tools.impl.js.map +1 -0
  261. package/spec_tools.parse.js +427 -0
  262. package/spec_tools.parse.js.map +1 -0
  263. package/spec_tools.transform.js +288 -0
  264. package/spec_tools.transform.js.map +1 -0
  265. package/superv.async.js +8617 -0
  266. package/superv.async.js.map +1 -0
  267. package/tailrecursion.priority_map.js +994 -0
  268. package/tailrecursion.priority_map.js.map +1 -0
  269. package/taoensso.encore.js +12385 -0
  270. package/taoensso.encore.js.map +1 -0
  271. package/taoensso.timbre.appenders.core.js +239 -0
  272. package/taoensso.timbre.appenders.core.js.map +1 -0
  273. package/taoensso.timbre.js +1264 -0
  274. package/taoensso.timbre.js.map +1 -0
  275. package/taoensso.truss.impl.js +442 -0
  276. package/taoensso.truss.impl.js.map +1 -0
  277. package/taoensso.truss.js +743 -0
  278. package/taoensso.truss.js.map +1 -0
  279. package/test-config-keys.js +33 -0
  280. package/test-final.js +36 -0
  281. package/test-key-duplication.js +67 -0
  282. package/test.js +557 -0
@@ -0,0 +1,141 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./cljs.analyzer.passes.js");
6
+ var environ=$CLJS.environ || ($CLJS.environ = {});
7
+ var fress=$CLJS.fress || ($CLJS.fress = {});
8
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
9
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
10
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
11
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
12
+ var superv=$CLJS.superv || ($CLJS.superv = {});
13
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
14
+ var is=$CLJS.is || ($CLJS.is = {});
15
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
16
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
17
+ var goog=$CLJS.goog || ($CLJS.goog = {});
18
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
19
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
20
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
21
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
22
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
23
+ var medley=$CLJS.medley || ($CLJS.medley = {});
24
+ var me=$CLJS.me || ($CLJS.me = {});
25
+
26
+ $CLJS.SHADOW_ENV.setLoaded("cljs.analyzer.passes.and_or.js");
27
+
28
+ goog.provide('cljs.analyzer.passes.and_or');
29
+ cljs.analyzer.passes.and_or.simple_ops = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 9, [new cljs.core.Keyword(null,"js","js",1768080579),null,new cljs.core.Keyword(null,"host-field","host-field",-72662140),null,new cljs.core.Keyword(null,"const","const",1709929842),null,new cljs.core.Keyword(null,"var","var",-769682797),null,new cljs.core.Keyword(null,"quote","quote",-262615245),null,new cljs.core.Keyword(null,"invoke","invoke",1145927159),null,new cljs.core.Keyword(null,"js-var","js-var",-1177899142),null,new cljs.core.Keyword(null,"host-call","host-call",1059629755),null,new cljs.core.Keyword(null,"local","local",-1497766724),null], null), null);
30
+ cljs.analyzer.passes.and_or.__GT_expr_env = (function cljs$analyzer$passes$and_or$__GT_expr_env(ast){
31
+ return cljs.core.assoc_in(ast,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"env","env",-1815813235),new cljs.core.Keyword(null,"context","context",-830191113)], null),new cljs.core.Keyword(null,"expr","expr",745722291));
32
+ });
33
+ cljs.analyzer.passes.and_or.simple_op_QMARK_ = (function cljs$analyzer$passes$and_or$simple_op_QMARK_(ast){
34
+ return cljs.core.contains_QMARK_(cljs.analyzer.passes.and_or.simple_ops,new cljs.core.Keyword(null,"op","op",-1882987955).cljs$core$IFn$_invoke$arity$1(ast));
35
+ });
36
+ cljs.analyzer.passes.and_or.simple_test_expr_QMARK_ = (function cljs$analyzer$passes$and_or$simple_test_expr_QMARK_(p__119145){
37
+ var map__119146 = p__119145;
38
+ var map__119146__$1 = cljs.core.__destructure_map(map__119146);
39
+ var ast = map__119146__$1;
40
+ var op = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__119146__$1,new cljs.core.Keyword(null,"op","op",-1882987955));
41
+ return cljs.core.boolean$((function (){var and__5000__auto__ = cljs.analyzer.passes.and_or.simple_op_QMARK_(ast);
42
+ if(and__5000__auto__){
43
+ var G__119148 = (function (){var or__5002__auto__ = new cljs.core.Keyword(null,"tag","tag",-1290361223).cljs$core$IFn$_invoke$arity$1(ast);
44
+ if(cljs.core.truth_(or__5002__auto__)){
45
+ return or__5002__auto__;
46
+ } else {
47
+ if(cljs.core.truth_((function (){var fexpr__119149 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"var","var",-769682797),null,new cljs.core.Keyword(null,"local","local",-1497766724),null], null), null);
48
+ return (fexpr__119149.cljs$core$IFn$_invoke$arity$1 ? fexpr__119149.cljs$core$IFn$_invoke$arity$1(op) : fexpr__119149.call(null, op));
49
+ })())){
50
+ return new cljs.core.Keyword(null,"tag","tag",-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",-317069002).cljs$core$IFn$_invoke$arity$1(ast));
51
+ } else {
52
+ return null;
53
+ }
54
+ }
55
+ })();
56
+ var fexpr__119147 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,"seq","seq",-177272256,null),"null",new cljs.core.Symbol(null,"boolean","boolean",-278886877,null),"null"], null), null);
57
+ return (fexpr__119147.cljs$core$IFn$_invoke$arity$1 ? fexpr__119147.cljs$core$IFn$_invoke$arity$1(G__119148) : fexpr__119147.call(null, G__119148));
58
+ } else {
59
+ return and__5000__auto__;
60
+ }
61
+ })());
62
+ });
63
+ cljs.analyzer.passes.and_or.single_binding_let_QMARK_ = (function cljs$analyzer$passes$and_or$single_binding_let_QMARK_(ast){
64
+ return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"let","let",-1282412701),new cljs.core.Keyword(null,"op","op",-1882987955).cljs$core$IFn$_invoke$arity$1(ast))) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(new cljs.core.Keyword(null,"bindings","bindings",1271397192).cljs$core$IFn$_invoke$arity$1(ast)))));
65
+ });
66
+ cljs.analyzer.passes.and_or.no_statements_QMARK_ = (function cljs$analyzer$passes$and_or$no_statements_QMARK_(let_ast){
67
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"statements","statements",600349855).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"body","body",-2049205669).cljs$core$IFn$_invoke$arity$1(let_ast)));
68
+ });
69
+ cljs.analyzer.passes.and_or.returns_if_QMARK_ = (function cljs$analyzer$passes$and_or$returns_if_QMARK_(let_ast){
70
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"if","if",-458814265),new cljs.core.Keyword(null,"op","op",-1882987955).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ret","ret",-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"body","body",-2049205669).cljs$core$IFn$_invoke$arity$1(let_ast))));
71
+ });
72
+ cljs.analyzer.passes.and_or.simple_test_binding_let_QMARK_ = (function cljs$analyzer$passes$and_or$simple_test_binding_let_QMARK_(ast){
73
+ return ((cljs.analyzer.passes.and_or.single_binding_let_QMARK_(ast)) && (((cljs.analyzer.passes.and_or.no_statements_QMARK_(ast)) && (((cljs.analyzer.passes.and_or.simple_test_expr_QMARK_(new cljs.core.Keyword(null,"init","init",-1875481434).cljs$core$IFn$_invoke$arity$1(cljs.core.first(new cljs.core.Keyword(null,"bindings","bindings",1271397192).cljs$core$IFn$_invoke$arity$1(ast))))) && (cljs.analyzer.passes.and_or.returns_if_QMARK_(ast)))))));
74
+ });
75
+ cljs.analyzer.passes.and_or.test_EQ_then_QMARK_ = (function cljs$analyzer$passes$and_or$test_EQ_then_QMARK_(if_ast){
76
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"test","test",577538877).cljs$core$IFn$_invoke$arity$1(if_ast),new cljs.core.Keyword(null,"env","env",-1815813235)),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"then","then",460598070).cljs$core$IFn$_invoke$arity$1(if_ast),new cljs.core.Keyword(null,"env","env",-1815813235)));
77
+ });
78
+ cljs.analyzer.passes.and_or.test_EQ_else_QMARK_ = (function cljs$analyzer$passes$and_or$test_EQ_else_QMARK_(if_ast){
79
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"test","test",577538877).cljs$core$IFn$_invoke$arity$1(if_ast),new cljs.core.Keyword(null,"env","env",-1815813235)),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"else","else",-1508377146).cljs$core$IFn$_invoke$arity$1(if_ast),new cljs.core.Keyword(null,"env","env",-1815813235)));
80
+ });
81
+ cljs.analyzer.passes.and_or.simple_and_QMARK_ = (function cljs$analyzer$passes$and_or$simple_and_QMARK_(ast){
82
+ return ((cljs.analyzer.passes.and_or.simple_test_binding_let_QMARK_(ast)) && (cljs.analyzer.passes.and_or.test_EQ_else_QMARK_(new cljs.core.Keyword(null,"ret","ret",-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"body","body",-2049205669).cljs$core$IFn$_invoke$arity$1(ast)))));
83
+ });
84
+ cljs.analyzer.passes.and_or.simple_or_QMARK_ = (function cljs$analyzer$passes$and_or$simple_or_QMARK_(ast){
85
+ return ((cljs.analyzer.passes.and_or.simple_test_binding_let_QMARK_(ast)) && (cljs.analyzer.passes.and_or.test_EQ_then_QMARK_(new cljs.core.Keyword(null,"ret","ret",-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"body","body",-2049205669).cljs$core$IFn$_invoke$arity$1(ast)))));
86
+ });
87
+ cljs.analyzer.passes.and_or.optimizable_and_QMARK_ = (function cljs$analyzer$passes$and_or$optimizable_and_QMARK_(ast){
88
+ return ((cljs.analyzer.passes.and_or.simple_and_QMARK_(ast)) && (cljs.analyzer.passes.and_or.simple_test_expr_QMARK_(new cljs.core.Keyword(null,"then","then",460598070).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ret","ret",-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"body","body",-2049205669).cljs$core$IFn$_invoke$arity$1(ast))))));
89
+ });
90
+ cljs.analyzer.passes.and_or.optimizable_or_QMARK_ = (function cljs$analyzer$passes$and_or$optimizable_or_QMARK_(ast){
91
+ return ((cljs.analyzer.passes.and_or.simple_or_QMARK_(ast)) && (cljs.analyzer.passes.and_or.simple_test_expr_QMARK_(new cljs.core.Keyword(null,"else","else",-1508377146).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ret","ret",-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"body","body",-2049205669).cljs$core$IFn$_invoke$arity$1(ast))))));
92
+ });
93
+ cljs.analyzer.passes.and_or.remove_loop_let = (function cljs$analyzer$passes$and_or$remove_loop_let(fn_ast,local){
94
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$3(fn_ast,new cljs.core.Keyword(null,"loop-lets","loop-lets",2036794185),(function (loop_lets){
95
+ return cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (m){
96
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$3(m,new cljs.core.Keyword(null,"params","params",710516235),(function (xs){
97
+ return cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__119159_SHARP_){
98
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(local,new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(p1__119159_SHARP_));
99
+ }),xs);
100
+ }));
101
+ }),loop_lets);
102
+ }));
103
+ });
104
+ cljs.analyzer.passes.and_or.remove_local_pass = (function cljs$analyzer$passes$and_or$remove_local_pass(local){
105
+ return (function (env,ast,opts){
106
+ var G__119162 = cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ast,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"env","env",-1815813235),new cljs.core.Keyword(null,"locals","locals",535295783)], null),cljs.core.dissoc,local);
107
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"fn","fn",-1175266204),new cljs.core.Keyword(null,"op","op",-1882987955).cljs$core$IFn$_invoke$arity$1(ast))){
108
+ return cljs.analyzer.passes.and_or.remove_loop_let(G__119162,local);
109
+ } else {
110
+ return G__119162;
111
+ }
112
+ });
113
+ });
114
+ cljs.analyzer.passes.and_or.optimize_and = (function cljs$analyzer$passes$and_or$optimize_and(ast){
115
+ var map__119163 = cljs.core.first(new cljs.core.Keyword(null,"bindings","bindings",1271397192).cljs$core$IFn$_invoke$arity$1(ast));
116
+ var map__119163__$1 = cljs.core.__destructure_map(map__119163);
117
+ var init = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__119163__$1,new cljs.core.Keyword(null,"init","init",-1875481434));
118
+ var name = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__119163__$1,new cljs.core.Keyword(null,"name","name",1843675177));
119
+ return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"op","op",-1882987955),new cljs.core.Keyword(null,"js","js",1768080579),new cljs.core.Keyword(null,"env","env",-1815813235),new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,"segs","segs",-1940299576),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["((",") && (","))"], null),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [init,cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.passes.and_or.__GT_expr_env(new cljs.core.Keyword(null,"then","then",460598070).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ret","ret",-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"body","body",-2049205669).cljs$core$IFn$_invoke$arity$1(ast)))),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.passes.and_or.remove_local_pass(name)], null))], null),new cljs.core.Keyword(null,"form","form",-1624062471),new cljs.core.Keyword(null,"form","form",-1624062471).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,"children","children",-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"args","args",1315556576)], null),new cljs.core.Keyword(null,"tag","tag",-1290361223),new cljs.core.Symbol(null,"boolean","boolean",-278886877,null)], null);
120
+ });
121
+ cljs.analyzer.passes.and_or.optimize_or = (function cljs$analyzer$passes$and_or$optimize_or(ast){
122
+ var map__119165 = cljs.core.first(new cljs.core.Keyword(null,"bindings","bindings",1271397192).cljs$core$IFn$_invoke$arity$1(ast));
123
+ var map__119165__$1 = cljs.core.__destructure_map(map__119165);
124
+ var init = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__119165__$1,new cljs.core.Keyword(null,"init","init",-1875481434));
125
+ var name = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__119165__$1,new cljs.core.Keyword(null,"name","name",1843675177));
126
+ return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"op","op",-1882987955),new cljs.core.Keyword(null,"js","js",1768080579),new cljs.core.Keyword(null,"env","env",-1815813235),new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,"segs","segs",-1940299576),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["((",") || (","))"], null),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [init,cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.passes.and_or.__GT_expr_env(new cljs.core.Keyword(null,"else","else",-1508377146).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ret","ret",-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"body","body",-2049205669).cljs$core$IFn$_invoke$arity$1(ast)))),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.passes.and_or.remove_local_pass(name)], null))], null),new cljs.core.Keyword(null,"form","form",-1624062471),new cljs.core.Keyword(null,"form","form",-1624062471).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,"children","children",-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"args","args",1315556576)], null),new cljs.core.Keyword(null,"tag","tag",-1290361223),new cljs.core.Symbol(null,"boolean","boolean",-278886877,null)], null);
127
+ });
128
+ cljs.analyzer.passes.and_or.optimize = (function cljs$analyzer$passes$and_or$optimize(env,ast,_){
129
+ if(cljs.analyzer.passes.and_or.optimizable_and_QMARK_(ast)){
130
+ return cljs.analyzer.passes.and_or.optimize_and(ast);
131
+ } else {
132
+ if(cljs.analyzer.passes.and_or.optimizable_or_QMARK_(ast)){
133
+ return cljs.analyzer.passes.and_or.optimize_or(ast);
134
+ } else {
135
+ return ast;
136
+
137
+ }
138
+ }
139
+ });
140
+
141
+ //# sourceMappingURL=cljs.analyzer.passes.and_or.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["cljs/analyzer/passes/and_or.cljc"],"mappings":"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","names":["cljs.analyzer.passes.and-or/simple-ops","cljs.analyzer.passes.and-or/->expr-env","ast","cljs.core/assoc-in","cljs.analyzer.passes.and-or/simple-op?","cljs.core/contains?","p__119145","map__119146","cljs.core/--destructure-map","cljs.core.get","cljs.analyzer.passes.and-or/simple-test-expr?","op","cljs.core/boolean","and__5000__auto__","G__119148","fexpr__119147","or__5002__auto__","fexpr__119149","cljs.analyzer.passes.and-or/single-binding-let?","cljs.core._EQ_","cljs.core/count","cljs.analyzer.passes.and-or/no-statements?","let-ast","cljs.analyzer.passes.and-or/returns-if?","cljs.analyzer.passes.and-or/simple-test-binding-let?","cljs.core/first","cljs.analyzer.passes.and-or/test=then?","if-ast","cljs.core.dissoc","cljs.analyzer.passes.and-or/test=else?","cljs.analyzer.passes.and-or/simple-and?","cljs.analyzer.passes.and-or/simple-or?","cljs.analyzer.passes.and-or/optimizable-and?","cljs.analyzer.passes.and-or/optimizable-or?","cljs.analyzer.passes.and-or/remove-loop-let","fn-ast","local","cljs.core.update","loop-lets","cljs.core.map","m","xs","p1__119159#","cljs.core.remove","cljs.analyzer.passes.and-or/remove-local-pass","env","opts","G__119162","cljs.core.update_in","cljs.core/dissoc","cljs.analyzer.passes.and-or/optimize-and","map__119163","init","name","cljs.analyzer.passes.walk","cljs.analyzer.passes.and-or/optimize-or","map__119165","cljs.analyzer.passes.and-or/optimize","_"],"sourcesContent":[";; Copyright (c) Rich Hickey. All rights reserved.\n;; The use and distribution terms for this software are covered by the\n;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n;; which can be found in the file epl-v10.html at the root of this distribution.\n;; By using this software in any fashion, you are agreeing to be bound by\n;; the terms of this license.\n;; You must not remove this notice, or any other, from this software.\n\n(ns cljs.analyzer.passes.and-or\n (:require [cljs.analyzer.passes :as passes]))\n\n(def simple-ops\n #{:var :js-var :local :invoke :const :host-field :host-call :js :quote})\n\n(defn ->expr-env [ast]\n (assoc-in ast [:env :context] :expr))\n\n(defn simple-op? [ast]\n (contains? simple-ops (:op ast)))\n\n(defn simple-test-expr?\n [{:keys [op] :as ast}]\n (boolean\n (and (simple-op? ast)\n ('#{boolean seq}\n (or (:tag ast)\n (when (#{:local :var} op)\n (-> ast :info :tag)))))))\n\n(defn single-binding-let? [ast]\n (and (= :let (:op ast))\n (= 1 (count (-> ast :bindings)))))\n\n(defn no-statements? [let-ast]\n (= [] (-> let-ast :body :statements)))\n\n(defn returns-if? [let-ast]\n (= :if (-> let-ast :body :ret :op)))\n\n(defn simple-test-binding-let? [ast]\n (and (single-binding-let? ast)\n (no-statements? ast)\n (simple-test-expr? (-> ast :bindings first :init))\n (returns-if? ast)))\n\n(defn test=then? [if-ast]\n ;; remove :env, if same, local will differ only by\n ;; :context (:expr | :statement)\n (= (dissoc (:test if-ast) :env)\n (dissoc (:then if-ast) :env)))\n\n(defn test=else? [if-ast]\n ;; remove :env, if same, local will differ only by\n ;; :context (:expr | :statement)\n (= (dissoc (:test if-ast) :env)\n (dissoc (:else if-ast) :env)))\n\n(defn simple-and? [ast]\n (and (simple-test-binding-let? ast)\n (test=else? (-> ast :body :ret))))\n\n(defn simple-or? [ast]\n (and (simple-test-binding-let? ast)\n (test=then? (-> ast :body :ret))))\n\n(defn optimizable-and? [ast]\n (and (simple-and? ast)\n (simple-test-expr? (-> ast :body :ret :then))))\n\n(defn optimizable-or? [ast]\n (and (simple-or? ast)\n (simple-test-expr? (-> ast :body :ret :else))))\n\n(defn remove-loop-let [fn-ast local]\n (update fn-ast :loop-lets\n (fn [loop-lets]\n (map\n (fn [m]\n (update m :params\n (fn [xs] (remove #(= local (:name %)) xs))))\n loop-lets))))\n\n(defn remove-local-pass [local]\n (fn [env ast opts]\n (cond-> (update-in ast [:env :locals] dissoc local)\n (= :fn (:op ast)) (remove-loop-let local))))\n\n(defn optimize-and [ast]\n (let [{:keys [init name]} (-> ast :bindings first)]\n {:op :js\n :env (:env ast)\n :segs [\"((\" \") && (\" \"))\"]\n :args [init\n (passes/walk\n (->expr-env (-> ast :body :ret :then))\n [(remove-local-pass name)])]\n :form (:form ast)\n :children [:args]\n :tag 'boolean}))\n\n(defn optimize-or [ast]\n (let [{:keys [init name]} (-> ast :bindings first)]\n {:op :js\n :env (:env ast)\n :segs [\"((\" \") || (\" \"))\"]\n :args [init\n (passes/walk\n (->expr-env (-> ast :body :ret :else))\n [(remove-local-pass name)])]\n :form (:form ast)\n :children [:args]\n :tag 'boolean}))\n\n(defn optimize [env ast _]\n (cond\n (optimizable-and? ast) (optimize-and ast)\n (optimizable-or? ast) (optimize-or ast)\n :else ast))\n"],"x_google_ignoreList":[0]}
@@ -0,0 +1,104 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ var environ=$CLJS.environ || ($CLJS.environ = {});
6
+ var fress=$CLJS.fress || ($CLJS.fress = {});
7
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
8
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
9
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
10
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
11
+ var superv=$CLJS.superv || ($CLJS.superv = {});
12
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
13
+ var is=$CLJS.is || ($CLJS.is = {});
14
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
15
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
16
+ var goog=$CLJS.goog || ($CLJS.goog = {});
17
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
18
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
19
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
20
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
21
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
22
+ var medley=$CLJS.medley || ($CLJS.medley = {});
23
+ var me=$CLJS.me || ($CLJS.me = {});
24
+
25
+ $CLJS.SHADOW_ENV.setLoaded("cljs.analyzer.passes.js");
26
+
27
+ goog.provide('cljs.analyzer.passes');
28
+ cljs.analyzer.passes.apply_passes = (function cljs$analyzer$passes$apply_passes(var_args){
29
+ var G__119116 = arguments.length;
30
+ switch (G__119116) {
31
+ case 2:
32
+ return cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
33
+
34
+ break;
35
+ case 3:
36
+ return cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
37
+
38
+ break;
39
+ default:
40
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
41
+
42
+ }
43
+ });
44
+
45
+ (cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$2 = (function (ast,passes){
46
+ return cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$3(ast,passes,null);
47
+ }));
48
+
49
+ (cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$3 = (function (ast,passes,opts){
50
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,pass){
51
+ var G__119122 = new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ast__$1);
52
+ var G__119123 = ast__$1;
53
+ var G__119124 = opts;
54
+ return (pass.cljs$core$IFn$_invoke$arity$3 ? pass.cljs$core$IFn$_invoke$arity$3(G__119122,G__119123,G__119124) : pass.call(null, G__119122,G__119123,G__119124));
55
+ }),ast,passes);
56
+ }));
57
+
58
+ (cljs.analyzer.passes.apply_passes.cljs$lang$maxFixedArity = 3);
59
+
60
+ cljs.analyzer.passes.walk = (function cljs$analyzer$passes$walk(var_args){
61
+ var G__119127 = arguments.length;
62
+ switch (G__119127) {
63
+ case 2:
64
+ return cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
65
+
66
+ break;
67
+ case 3:
68
+ return cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
69
+
70
+ break;
71
+ default:
72
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
73
+
74
+ }
75
+ });
76
+
77
+ (cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$2 = (function (ast,passes){
78
+ return cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3(ast,passes,null);
79
+ }));
80
+
81
+ (cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3 = (function (ast,passes,opts){
82
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,child_k){
83
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast__$1,child_k,(function (){var child = cljs.core.get.cljs$core$IFn$_invoke$arity$2(ast__$1,child_k);
84
+ if(cljs.core.vector_QMARK_(child)){
85
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__119125_SHARP_){
86
+ return cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3(p1__119125_SHARP_,passes,opts);
87
+ })),child);
88
+ } else {
89
+ return cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3(child,passes,opts);
90
+ }
91
+ })());
92
+ }),(function (){var G__119133 = ast;
93
+ if((G__119133 == null)){
94
+ return null;
95
+ } else {
96
+ return cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$3(G__119133,passes,opts);
97
+ }
98
+ })(),new cljs.core.Keyword(null,"children","children",-940561982).cljs$core$IFn$_invoke$arity$1(ast));
99
+ }));
100
+
101
+ (cljs.analyzer.passes.walk.cljs$lang$maxFixedArity = 3);
102
+
103
+
104
+ //# sourceMappingURL=cljs.analyzer.passes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["cljs/analyzer/passes.cljc"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,AAAA,oCAAA,4CAAAA,hFAAME;AAAN,AAAA,IAAAD,YAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,kEAAA,lEAAMD,6EACFE,IAAIC;AADR,AAEG,kFAAA,3EAACC,gEAAaF,IAAIC;;;AAFrB,CAAA,kEAAA,lEAAMH,6EAGFE,IAAIC,OAAOE;AAHf,AAIG,OAACC,+CACC,WAAKJ,QAAIK;AAAT,AACE,IAAAC,YAAM,AAAA,kFAAMN;IAAZO,YAAiBP;IAAjBQ,YAAqBL;AAArB,AAAA,gFAAAG,UAAAC,UAAAC,6BAAAF,UAAAC,UAAAC,7IAACH,qCAAAA,oEAAAA;GACHL,IAAIC;;;AAPT,CAAA,4DAAA,5DAAMH;;AAAN,AASA,AAAA,4BAAA,oCAAAF,hEAAMc;AAAN,AAAA,IAAAD,YAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAX,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,0DAAA,1DAAMW,qEACFV,IAAIC;AADR,AAEG,0EAAA,nEAACU,wDAAKX,IAAIC;;;AAFb,CAAA,0DAAA,1DAAMS,qEAGFV,IAAIC,OAAOE;AAHf,AAIG,OAACC,+CACC,WAAKJ,QAAIY;AAAT,AACE,OAACC,8CAAMb,QACLY,QACA,iBAAME,QAAM,AAACC,4CAAIf,QAAIY;AAArB,AACE,GAAI,AAACI,wBAAQF;AACX,oDAAA,7CAACG,8EAAQ,4CAAA,WAAAC,vDAACC;AAAD,AAAM,+DAAAD,xDAACP,0EAAOV,OAAOE;IAAOW;;AACrC,OAACH,wDAAKG,MAAMb,OAAOE;;;GAC3B,iBAAAiB,YAAQpB;AAAR,AAAA,GAAA,CAAAoB,aAAA;AAAA;;AAAY,uEAAAA,hEAAClB,0EAAaD,OAAOE;;KAAO,AAAA,2FAAWH;;;AAZxD,CAAA,oDAAA,pDAAMU;;AAAN","names":["var_args","G__119116","cljs.analyzer.passes/apply-passes","js/Error","ast","passes","cljs.analyzer.passes.apply_passes","opts","cljs.core.reduce","pass","G__119122","G__119123","G__119124","G__119127","cljs.analyzer.passes/walk","cljs.analyzer.passes.walk","child-k","cljs.core.assoc","child","cljs.core.get","cljs.core/vector?","cljs.core.into","p1__119125#","cljs.core.map","G__119133"],"sourcesContent":[";; Copyright (c) Rich Hickey. All rights reserved.\n;; The use and distribution terms for this software are covered by the\n;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n;; which can be found in the file epl-v10.html at the root of this distribution.\n;; By using this software in any fashion, you are agreeing to be bound by\n;; the terms of this license.\n;; You must not remove this notice, or any other, from this software.\n\n(ns cljs.analyzer.passes)\n\n(defn apply-passes\n ([ast passes]\n (apply-passes ast passes nil))\n ([ast passes opts]\n (reduce\n (fn [ast pass]\n (pass (:env ast) ast opts))\n ast passes)))\n\n(defn walk\n ([ast passes]\n (walk ast passes nil))\n ([ast passes opts]\n (reduce\n (fn [ast child-k]\n (assoc ast\n child-k\n (let [child (get ast child-k)]\n (if (vector? child)\n (into [] (map #(walk % passes opts)) child)\n (walk child passes opts)))))\n (some-> ast (apply-passes passes opts)) (:children ast))))\n"],"x_google_ignoreList":[0]}