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.
- package/README.md +226 -0
- package/cljs.analyzer.api.js +427 -0
- package/cljs.analyzer.api.js.map +1 -0
- package/cljs.analyzer.impl.js +86 -0
- package/cljs.analyzer.impl.js.map +1 -0
- package/cljs.analyzer.impl.namespaces.js +219 -0
- package/cljs.analyzer.impl.namespaces.js.map +1 -0
- package/cljs.analyzer.js +7186 -0
- package/cljs.analyzer.js.map +1 -0
- package/cljs.analyzer.passes.and_or.js +141 -0
- package/cljs.analyzer.passes.and_or.js.map +1 -0
- package/cljs.analyzer.passes.js +104 -0
- package/cljs.analyzer.passes.js.map +1 -0
- package/cljs.cache.js +1145 -0
- package/cljs.cache.js.map +1 -0
- package/cljs.cache.wrapped.js +352 -0
- package/cljs.cache.wrapped.js.map +1 -0
- package/cljs.core.async.impl.buffers.js +489 -0
- package/cljs.core.async.impl.buffers.js.map +1 -0
- package/cljs.core.async.impl.channels.js +711 -0
- package/cljs.core.async.impl.channels.js.map +1 -0
- package/cljs.core.async.impl.dispatch.js +81 -0
- package/cljs.core.async.impl.dispatch.js.map +1 -0
- package/cljs.core.async.impl.ioc_helpers.js +192 -0
- package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
- package/cljs.core.async.impl.protocols.js +368 -0
- package/cljs.core.async.impl.protocols.js.map +1 -0
- package/cljs.core.async.impl.timers.js +510 -0
- package/cljs.core.async.impl.timers.js.map +1 -0
- package/cljs.core.async.js +8813 -0
- package/cljs.core.async.js.map +1 -0
- package/cljs.core.js +38764 -0
- package/cljs.core.js.map +1 -0
- package/cljs.env.js +60 -0
- package/cljs.env.js.map +1 -0
- package/cljs.nodejs.js +80 -0
- package/cljs.nodejs.js.map +1 -0
- package/cljs.reader.js +462 -0
- package/cljs.reader.js.map +1 -0
- package/cljs.spec.alpha.js +5312 -0
- package/cljs.spec.alpha.js.map +1 -0
- package/cljs.spec.gen.alpha.js +2020 -0
- package/cljs.spec.gen.alpha.js.map +1 -0
- package/cljs.tagged_literals.js +103 -0
- package/cljs.tagged_literals.js.map +1 -0
- package/cljs.tools.reader.edn.js +960 -0
- package/cljs.tools.reader.edn.js.map +1 -0
- package/cljs.tools.reader.impl.commons.js +217 -0
- package/cljs.tools.reader.impl.commons.js.map +1 -0
- package/cljs.tools.reader.impl.errors.js +441 -0
- package/cljs.tools.reader.impl.errors.js.map +1 -0
- package/cljs.tools.reader.impl.inspect.js +182 -0
- package/cljs.tools.reader.impl.inspect.js.map +1 -0
- package/cljs.tools.reader.impl.utils.js +429 -0
- package/cljs.tools.reader.impl.utils.js.map +1 -0
- package/cljs.tools.reader.js +1830 -0
- package/cljs.tools.reader.js.map +1 -0
- package/cljs.tools.reader.reader_types.js +838 -0
- package/cljs.tools.reader.reader_types.js.map +1 -0
- package/cljs_env.js +18192 -0
- package/cljs_node_io.core.js +1278 -0
- package/cljs_node_io.core.js.map +1 -0
- package/cljs_node_io.file.js +918 -0
- package/cljs_node_io.file.js.map +1 -0
- package/cljs_node_io.fs.js +3911 -0
- package/cljs_node_io.fs.js.map +1 -0
- package/clojure.data.js +319 -0
- package/clojure.data.js.map +1 -0
- package/clojure.edn.js +119 -0
- package/clojure.edn.js.map +1 -0
- package/clojure.set.js +406 -0
- package/clojure.set.js.map +1 -0
- package/clojure.string.js +502 -0
- package/clojure.string.js.map +1 -0
- package/clojure.walk.js +156 -0
- package/clojure.walk.js.map +1 -0
- package/datahike.api.impl.js +621 -0
- package/datahike.api.impl.js.map +1 -0
- package/datahike.api.specification.js +85 -0
- package/datahike.api.specification.js.map +1 -0
- package/datahike.array.js +275 -0
- package/datahike.array.js.map +1 -0
- package/datahike.config.js +437 -0
- package/datahike.config.js.map +1 -0
- package/datahike.connections.js +55 -0
- package/datahike.connections.js.map +1 -0
- package/datahike.connector.js +1248 -0
- package/datahike.connector.js.map +1 -0
- package/datahike.constants.js +66 -0
- package/datahike.constants.js.map +1 -0
- package/datahike.core.js +628 -0
- package/datahike.core.js.map +1 -0
- package/datahike.datom.js +963 -0
- package/datahike.datom.js.map +1 -0
- package/datahike.db.interface.js +819 -0
- package/datahike.db.interface.js.map +1 -0
- package/datahike.db.js +3095 -0
- package/datahike.db.js.map +1 -0
- package/datahike.db.search.js +1004 -0
- package/datahike.db.search.js.map +1 -0
- package/datahike.db.transaction.js +1904 -0
- package/datahike.db.transaction.js.map +1 -0
- package/datahike.db.utils.js +642 -0
- package/datahike.db.utils.js.map +1 -0
- package/datahike.gc.js +1618 -0
- package/datahike.gc.js.map +1 -0
- package/datahike.impl.entity.js +604 -0
- package/datahike.impl.entity.js.map +1 -0
- package/datahike.index.interface.js +484 -0
- package/datahike.index.interface.js.map +1 -0
- package/datahike.index.js +50 -0
- package/datahike.index.js.map +1 -0
- package/datahike.index.persistent_set.js +1250 -0
- package/datahike.index.persistent_set.js.map +1 -0
- package/datahike.js.api.js +2211 -0
- package/datahike.js.api.js.map +1 -0
- package/datahike.lru.js +404 -0
- package/datahike.lru.js.map +1 -0
- package/datahike.pull_api.js +533 -0
- package/datahike.pull_api.js.map +1 -0
- package/datahike.query.js +11891 -0
- package/datahike.query.js.map +1 -0
- package/datahike.query_stats.js +152 -0
- package/datahike.query_stats.js.map +1 -0
- package/datahike.readers.js +166 -0
- package/datahike.readers.js.map +1 -0
- package/datahike.schema.js +251 -0
- package/datahike.schema.js.map +1 -0
- package/datahike.schema_cache.js +66 -0
- package/datahike.schema_cache.js.map +1 -0
- package/datahike.spec.js +70 -0
- package/datahike.spec.js.map +1 -0
- package/datahike.store.js +514 -0
- package/datahike.store.js.map +1 -0
- package/datahike.tools.js +436 -0
- package/datahike.tools.js.map +1 -0
- package/datahike.writer.js +3463 -0
- package/datahike.writer.js.map +1 -0
- package/datahike.writing.js +3168 -0
- package/datahike.writing.js.map +1 -0
- package/datalog.parser.impl.js +1421 -0
- package/datalog.parser.impl.js.map +1 -0
- package/datalog.parser.impl.proto.js +213 -0
- package/datalog.parser.impl.proto.js.map +1 -0
- package/datalog.parser.impl.util.js +117 -0
- package/datalog.parser.impl.util.js.map +1 -0
- package/datalog.parser.js +47 -0
- package/datalog.parser.js.map +1 -0
- package/datalog.parser.pull.js +2603 -0
- package/datalog.parser.pull.js.map +1 -0
- package/datalog.parser.type.js +7502 -0
- package/datalog.parser.type.js.map +1 -0
- package/datalog.parser.util.js +60 -0
- package/datalog.parser.util.js.map +1 -0
- package/environ.core.js +263 -0
- package/environ.core.js.map +1 -0
- package/fress.api.js +607 -0
- package/fress.api.js.map +1 -0
- package/fress.impl.adler32.js +435 -0
- package/fress.impl.adler32.js.map +1 -0
- package/fress.impl.bigint.js +185 -0
- package/fress.impl.bigint.js.map +1 -0
- package/fress.impl.buffer.js +1087 -0
- package/fress.impl.buffer.js.map +1 -0
- package/fress.impl.codes.js +105 -0
- package/fress.impl.codes.js.map +1 -0
- package/fress.impl.hopmap.js +603 -0
- package/fress.impl.hopmap.js.map +1 -0
- package/fress.impl.ranges.js +49 -0
- package/fress.impl.ranges.js.map +1 -0
- package/fress.impl.raw_input.js +837 -0
- package/fress.impl.raw_input.js.map +1 -0
- package/fress.impl.raw_output.js +653 -0
- package/fress.impl.raw_output.js.map +1 -0
- package/fress.impl.table.js +133 -0
- package/fress.impl.table.js.map +1 -0
- package/fress.reader.js +2312 -0
- package/fress.reader.js.map +1 -0
- package/fress.util.js +458 -0
- package/fress.util.js.map +1 -0
- package/fress.writer.js +2141 -0
- package/fress.writer.js.map +1 -0
- package/geheimnis.aes.js +132 -0
- package/geheimnis.aes.js.map +1 -0
- package/hasch.base64.js +42 -0
- package/hasch.base64.js.map +1 -0
- package/hasch.benc.js +201 -0
- package/hasch.benc.js.map +1 -0
- package/hasch.core.js +188 -0
- package/hasch.core.js.map +1 -0
- package/hasch.platform.js +221 -0
- package/hasch.platform.js.map +1 -0
- package/incognito.base.js +276 -0
- package/incognito.base.js.map +1 -0
- package/incognito.edn.js +54 -0
- package/incognito.edn.js.map +1 -0
- package/incognito.fressian.js +330 -0
- package/incognito.fressian.js.map +1 -0
- package/index.d.ts +660 -0
- package/is.simm.partial_cps.async.js +142 -0
- package/is.simm.partial_cps.async.js.map +1 -0
- package/is.simm.partial_cps.runtime.js +65 -0
- package/is.simm.partial_cps.runtime.js.map +1 -0
- package/is.simm.partial_cps.sequence.js +1255 -0
- package/is.simm.partial_cps.sequence.js.map +1 -0
- package/konserve.cache.js +2519 -0
- package/konserve.cache.js.map +1 -0
- package/konserve.compressor.js +502 -0
- package/konserve.compressor.js.map +1 -0
- package/konserve.core.js +8052 -0
- package/konserve.core.js.map +1 -0
- package/konserve.encryptor.js +553 -0
- package/konserve.encryptor.js.map +1 -0
- package/konserve.gc.js +541 -0
- package/konserve.gc.js.map +1 -0
- package/konserve.impl.defaults.js +8290 -0
- package/konserve.impl.defaults.js.map +1 -0
- package/konserve.impl.storage_layout.js +849 -0
- package/konserve.impl.storage_layout.js.map +1 -0
- package/konserve.memory.js +2102 -0
- package/konserve.memory.js.map +1 -0
- package/konserve.node_filestore.js +2951 -0
- package/konserve.node_filestore.js.map +1 -0
- package/konserve.protocols.js +590 -0
- package/konserve.protocols.js.map +1 -0
- package/konserve.serializers.js +562 -0
- package/konserve.serializers.js.map +1 -0
- package/konserve.store.js +2245 -0
- package/konserve.store.js.map +1 -0
- package/konserve.tiered.js +9574 -0
- package/konserve.tiered.js.map +1 -0
- package/konserve.utils.js +180 -0
- package/konserve.utils.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
- package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
- package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
- package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
- package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
- package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.js +890 -0
- package/me.tonsky.persistent_sorted_set.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
- package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.util.js +402 -0
- package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
- package/medley.core.js +1857 -0
- package/medley.core.js.map +1 -0
- package/package.json +38 -0
- package/spec_tools.core.js +1925 -0
- package/spec_tools.core.js.map +1 -0
- package/spec_tools.data_spec.js +1291 -0
- package/spec_tools.data_spec.js.map +1 -0
- package/spec_tools.form.js +185 -0
- package/spec_tools.form.js.map +1 -0
- package/spec_tools.impl.js +362 -0
- package/spec_tools.impl.js.map +1 -0
- package/spec_tools.parse.js +427 -0
- package/spec_tools.parse.js.map +1 -0
- package/spec_tools.transform.js +288 -0
- package/spec_tools.transform.js.map +1 -0
- package/superv.async.js +8617 -0
- package/superv.async.js.map +1 -0
- package/tailrecursion.priority_map.js +994 -0
- package/tailrecursion.priority_map.js.map +1 -0
- package/taoensso.encore.js +12385 -0
- package/taoensso.encore.js.map +1 -0
- package/taoensso.timbre.appenders.core.js +239 -0
- package/taoensso.timbre.appenders.core.js.map +1 -0
- package/taoensso.timbre.js +1264 -0
- package/taoensso.timbre.js.map +1 -0
- package/taoensso.truss.impl.js +442 -0
- package/taoensso.truss.impl.js.map +1 -0
- package/taoensso.truss.js +743 -0
- package/taoensso.truss.js.map +1 -0
- package/test-config-keys.js +33 -0
- package/test-final.js +36 -0
- package/test-key-duplication.js +67 -0
- 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]}
|