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,603 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./fress.util.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("fress.impl.hopmap.js");
27
+
28
+ goog.provide('fress.impl.hopmap');
29
+
30
+ /**
31
+ * @interface
32
+ */
33
+ fress.impl.hopmap.IHopMap = function(){};
34
+
35
+ var fress$impl$hopmap$IHopMap$clear$dyn_48442 = (function (this$){
36
+ var x__5350__auto__ = (((this$ == null))?null:this$);
37
+ var m__5351__auto__ = (fress.impl.hopmap.clear[goog.typeOf(x__5350__auto__)]);
38
+ if((!((m__5351__auto__ == null)))){
39
+ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));
40
+ } else {
41
+ var m__5349__auto__ = (fress.impl.hopmap.clear["_"]);
42
+ if((!((m__5349__auto__ == null)))){
43
+ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));
44
+ } else {
45
+ throw cljs.core.missing_protocol("IHopMap.clear",this$);
46
+ }
47
+ }
48
+ });
49
+ fress.impl.hopmap.clear = (function fress$impl$hopmap$clear(this$){
50
+ if((((!((this$ == null)))) && ((!((this$.fress$impl$hopmap$IHopMap$clear$arity$1 == null)))))){
51
+ return this$.fress$impl$hopmap$IHopMap$clear$arity$1(this$);
52
+ } else {
53
+ return fress$impl$hopmap$IHopMap$clear$dyn_48442(this$);
54
+ }
55
+ });
56
+
57
+ var fress$impl$hopmap$IHopMap$oldIndex$dyn_48445 = (function (this$,k){
58
+ var x__5350__auto__ = (((this$ == null))?null:this$);
59
+ var m__5351__auto__ = (fress.impl.hopmap.oldIndex[goog.typeOf(x__5350__auto__)]);
60
+ if((!((m__5351__auto__ == null)))){
61
+ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,k) : m__5351__auto__.call(null, this$,k));
62
+ } else {
63
+ var m__5349__auto__ = (fress.impl.hopmap.oldIndex["_"]);
64
+ if((!((m__5349__auto__ == null)))){
65
+ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,k) : m__5349__auto__.call(null, this$,k));
66
+ } else {
67
+ throw cljs.core.missing_protocol("IHopMap.oldIndex",this$);
68
+ }
69
+ }
70
+ });
71
+ fress.impl.hopmap.oldIndex = (function fress$impl$hopmap$oldIndex(this$,k){
72
+ if((((!((this$ == null)))) && ((!((this$.fress$impl$hopmap$IHopMap$oldIndex$arity$2 == null)))))){
73
+ return this$.fress$impl$hopmap$IHopMap$oldIndex$arity$2(this$,k);
74
+ } else {
75
+ return fress$impl$hopmap$IHopMap$oldIndex$dyn_48445(this$,k);
76
+ }
77
+ });
78
+
79
+ var fress$impl$hopmap$IHopMap$isEmpty$dyn_48449 = (function (this$){
80
+ var x__5350__auto__ = (((this$ == null))?null:this$);
81
+ var m__5351__auto__ = (fress.impl.hopmap.isEmpty[goog.typeOf(x__5350__auto__)]);
82
+ if((!((m__5351__auto__ == null)))){
83
+ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));
84
+ } else {
85
+ var m__5349__auto__ = (fress.impl.hopmap.isEmpty["_"]);
86
+ if((!((m__5349__auto__ == null)))){
87
+ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));
88
+ } else {
89
+ throw cljs.core.missing_protocol("IHopMap.isEmpty",this$);
90
+ }
91
+ }
92
+ });
93
+ fress.impl.hopmap.isEmpty = (function fress$impl$hopmap$isEmpty(this$){
94
+ if((((!((this$ == null)))) && ((!((this$.fress$impl$hopmap$IHopMap$isEmpty$arity$1 == null)))))){
95
+ return this$.fress$impl$hopmap$IHopMap$isEmpty$arity$1(this$);
96
+ } else {
97
+ return fress$impl$hopmap$IHopMap$isEmpty$dyn_48449(this$);
98
+ }
99
+ });
100
+
101
+ var fress$impl$hopmap$IHopMap$intern$dyn_48453 = (function (this$,k){
102
+ var x__5350__auto__ = (((this$ == null))?null:this$);
103
+ var m__5351__auto__ = (fress.impl.hopmap.intern[goog.typeOf(x__5350__auto__)]);
104
+ if((!((m__5351__auto__ == null)))){
105
+ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,k) : m__5351__auto__.call(null, this$,k));
106
+ } else {
107
+ var m__5349__auto__ = (fress.impl.hopmap.intern["_"]);
108
+ if((!((m__5349__auto__ == null)))){
109
+ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,k) : m__5349__auto__.call(null, this$,k));
110
+ } else {
111
+ throw cljs.core.missing_protocol("IHopMap.intern",this$);
112
+ }
113
+ }
114
+ });
115
+ fress.impl.hopmap.intern = (function fress$impl$hopmap$intern(this$,k){
116
+ if((((!((this$ == null)))) && ((!((this$.fress$impl$hopmap$IHopMap$intern$arity$2 == null)))))){
117
+ return this$.fress$impl$hopmap$IHopMap$intern$arity$2(this$,k);
118
+ } else {
119
+ return fress$impl$hopmap$IHopMap$intern$dyn_48453(this$,k);
120
+ }
121
+ });
122
+
123
+ var fress$impl$hopmap$IHopMap$resize$dyn_48460 = (function (this$){
124
+ var x__5350__auto__ = (((this$ == null))?null:this$);
125
+ var m__5351__auto__ = (fress.impl.hopmap.resize[goog.typeOf(x__5350__auto__)]);
126
+ if((!((m__5351__auto__ == null)))){
127
+ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));
128
+ } else {
129
+ var m__5349__auto__ = (fress.impl.hopmap.resize["_"]);
130
+ if((!((m__5349__auto__ == null)))){
131
+ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));
132
+ } else {
133
+ throw cljs.core.missing_protocol("IHopMap.resize",this$);
134
+ }
135
+ }
136
+ });
137
+ fress.impl.hopmap.resize = (function fress$impl$hopmap$resize(this$){
138
+ if((((!((this$ == null)))) && ((!((this$.fress$impl$hopmap$IHopMap$resize$arity$1 == null)))))){
139
+ return this$.fress$impl$hopmap$IHopMap$resize$arity$1(this$);
140
+ } else {
141
+ return fress$impl$hopmap$IHopMap$resize$dyn_48460(this$);
142
+ }
143
+ });
144
+
145
+ var fress$impl$hopmap$IHopMap$findSlot$dyn_48472 = (function (this$,hash){
146
+ var x__5350__auto__ = (((this$ == null))?null:this$);
147
+ var m__5351__auto__ = (fress.impl.hopmap.findSlot[goog.typeOf(x__5350__auto__)]);
148
+ if((!((m__5351__auto__ == null)))){
149
+ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,hash) : m__5351__auto__.call(null, this$,hash));
150
+ } else {
151
+ var m__5349__auto__ = (fress.impl.hopmap.findSlot["_"]);
152
+ if((!((m__5349__auto__ == null)))){
153
+ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,hash) : m__5349__auto__.call(null, this$,hash));
154
+ } else {
155
+ throw cljs.core.missing_protocol("IHopMap.findSlot",this$);
156
+ }
157
+ }
158
+ });
159
+ fress.impl.hopmap.findSlot = (function fress$impl$hopmap$findSlot(this$,hash){
160
+ if((((!((this$ == null)))) && ((!((this$.fress$impl$hopmap$IHopMap$findSlot$arity$2 == null)))))){
161
+ return this$.fress$impl$hopmap$IHopMap$findSlot$arity$2(this$,hash);
162
+ } else {
163
+ return fress$impl$hopmap$IHopMap$findSlot$dyn_48472(this$,hash);
164
+ }
165
+ });
166
+
167
+ fress.impl.hopmap._hash = (function fress$impl$hopmap$_hash(k){
168
+ var h = cljs.core.hash(k);
169
+ if((h === (0))){
170
+ return (42);
171
+ } else {
172
+ return h;
173
+ }
174
+ });
175
+ /**
176
+ * @param k, non-null
177
+ * @return the integer associated with k, or -1 if not present
178
+ */
179
+ fress.impl.hopmap._get = (function fress$impl$hopmap$_get(this$,k){
180
+ if((!((k == null)))){
181
+ } else {
182
+ throw (new Error("Assert failed: (some? k)"));
183
+ }
184
+
185
+ var hopidx = this$.hopidx;
186
+ var keys = this$.keys;
187
+ var hash = fress.impl.hopmap._hash(k);
188
+ var mask = (this$.cap - (1));
189
+ var bkt = (hash & mask);
190
+ var bhash = (hopidx[(bkt << (2))]);
191
+ if(((cljs.core.int_QMARK_(hash)) && (((cljs.core.int_QMARK_(mask)) && (((cljs.core.int_QMARK_(bkt)) && (cljs.core.int_QMARK_(bhash)))))))){
192
+ } else {
193
+ throw (new Error("Assert failed: (and (int? hash) (int? mask) (int? bkt) (int? bhash))"));
194
+ }
195
+
196
+ var or__5002__auto__ = (function (){var and__5000__auto__ = cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((0),bhash);
197
+ if(and__5000__auto__){
198
+ var key_index = (hopidx[((bkt << (2)) + (1))]);
199
+ var bkey = (keys[key_index]);
200
+ if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(hash,bhash)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,bkey)))){
201
+ return key_index;
202
+ } else {
203
+ var bkt__$1 = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(bkt);
204
+ var increment_bkt = (function (){
205
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(bkt__$1,(function (n){
206
+ return ((n + (1)) & mask);
207
+ }));
208
+ });
209
+ var slot = ((cljs.core.deref(bkt__$1) << (2)) + (2));
210
+ while(true){
211
+ var bhash__$1 = (hopidx[slot]);
212
+ if((bhash__$1 === (0))){
213
+ return null;
214
+ } else {
215
+ var key_index__$1 = (hopidx[((cljs.core.deref(bkt__$1) << (2)) + (3))]);
216
+ var bkey__$1 = (keys[key_index__$1]);
217
+ if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(hash,bhash__$1)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(bkey__$1,k)))){
218
+ return (hopidx[((cljs.core.deref(bkt__$1) << (2)) + (3))]);
219
+ } else {
220
+ increment_bkt();
221
+
222
+ var G__48480 = ((cljs.core.deref(bkt__$1) << (2)) + (2));
223
+ slot = G__48480;
224
+ continue;
225
+ }
226
+ }
227
+ break;
228
+ }
229
+ }
230
+ } else {
231
+ return and__5000__auto__;
232
+ }
233
+ })();
234
+ if(cljs.core.truth_(or__5002__auto__)){
235
+ return or__5002__auto__;
236
+ } else {
237
+ return (-1);
238
+ }
239
+ });
240
+ fress.impl.hopmap._clear = (function fress$impl$hopmap$_clear(this$){
241
+ (this$.count = (0));
242
+
243
+ var n__5593__auto___48484 = this$.cap;
244
+ var i_48485 = (0);
245
+ while(true){
246
+ if((i_48485 < n__5593__auto___48484)){
247
+ (this$.keys[i_48485] = null);
248
+
249
+ var G__48486 = (i_48485 + (1));
250
+ i_48485 = G__48486;
251
+ continue;
252
+ } else {
253
+ }
254
+ break;
255
+ }
256
+
257
+ var cap2 = (this$.cap << (2));
258
+ var n__5593__auto__ = cap2;
259
+ var i = (0);
260
+ while(true){
261
+ if((i < n__5593__auto__)){
262
+ (this$.hopidx[i] = (0));
263
+
264
+ var G__48488 = (i + (1));
265
+ i = G__48488;
266
+ continue;
267
+ } else {
268
+ return null;
269
+ }
270
+ break;
271
+ }
272
+ });
273
+ /**
274
+ * Puts k in the map if it was not already present.
275
+ * Returns -1 if k was freshly added
276
+ * Returns k's index if k was already in the map.
277
+ * @param k, non-null
278
+ * @return the integer associated with k or -1
279
+ */
280
+ fress.impl.hopmap._oldIndex = (function fress$impl$hopmap$_oldIndex(this$,k){
281
+ var countBefore = this$.count;
282
+ var index = fress.impl.hopmap.intern(this$,k);
283
+ if(cljs.core.int_QMARK_(countBefore)){
284
+ } else {
285
+ throw (new Error("Assert failed: (int? countBefore)"));
286
+ }
287
+
288
+ if(cljs.core.int_QMARK_(index)){
289
+ } else {
290
+ throw (new Error("Assert failed: (int? index)"));
291
+ }
292
+
293
+ if((countBefore === this$.count)){
294
+ return index;
295
+ } else {
296
+ return (-1);
297
+ }
298
+ });
299
+ /**
300
+ * Puts k in the map (if not present) and assigns and returns the index associated with it
301
+ * assigns ints monotonically from 0
302
+ * @param k, non-null
303
+ * @return the integer associated with k
304
+ */
305
+ fress.impl.hopmap._intern = (function fress$impl$hopmap$_intern(this$,k){
306
+ if((!((k == null)))){
307
+ } else {
308
+ throw (new Error("Assert failed: (some? k)"));
309
+ }
310
+
311
+ var _PERCENT_ = (function (){var hopidx = this$.hopidx;
312
+ var keys = this$.keys;
313
+ var hash = fress.impl.hopmap._hash(k);
314
+ var mask = (this$.cap - (1));
315
+ var bkt = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((hash & mask));
316
+ var bhash = (hopidx[(cljs.core.deref(bkt) << (2))]);
317
+ var slot = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));
318
+ if((bhash === (0))){
319
+ cljs.core.reset_BANG_(slot,(cljs.core.deref(bkt) << (2)));
320
+ } else {
321
+ }
322
+
323
+ var or__5002__auto__ = (((bhash === (0)))?null:(function (){var or__5002__auto__ = (function (){var and__5000__auto__ = (hash === bhash);
324
+ if(and__5000__auto__){
325
+ var key_index = (hopidx[((cljs.core.deref(bkt) << (2)) + (1))]);
326
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,(keys[key_index]))){
327
+ return key_index;
328
+ } else {
329
+ return null;
330
+ }
331
+ } else {
332
+ return and__5000__auto__;
333
+ }
334
+ })();
335
+ if(cljs.core.truth_(or__5002__auto__)){
336
+ return or__5002__auto__;
337
+ } else {
338
+ var or__5002__auto____$1 = (function (){var increment_bkt = (function (){
339
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(bkt,(function (n){
340
+ return ((n + (1)) & mask);
341
+ }));
342
+ });
343
+ var slot__$1 = ((cljs.core.deref(bkt) << (2)) + (2));
344
+ while(true){
345
+ var bhash__$1 = (hopidx[slot__$1]);
346
+ if((bhash__$1 === (0))){
347
+ return null;
348
+ } else {
349
+ if((hash === bhash__$1)){
350
+ var key_index = (hopidx[((cljs.core.deref(bkt) << (2)) + (3))]);
351
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,(keys[key_index]))){
352
+ return key_index;
353
+ } else {
354
+ increment_bkt();
355
+
356
+ var G__48500 = ((cljs.core.deref(bkt) << (2)) + (2));
357
+ slot__$1 = G__48500;
358
+ continue;
359
+ }
360
+ } else {
361
+ increment_bkt();
362
+
363
+ var G__48501 = ((cljs.core.deref(bkt) << (2)) + (2));
364
+ slot__$1 = G__48501;
365
+ continue;
366
+ }
367
+ }
368
+ break;
369
+ }
370
+ })();
371
+ if(cljs.core.truth_(or__5002__auto____$1)){
372
+ return or__5002__auto____$1;
373
+ } else {
374
+ cljs.core.reset_BANG_(slot,((2) + (cljs.core.deref(bkt) << (2))));
375
+
376
+ return null;
377
+ }
378
+ }
379
+ })());
380
+ if(cljs.core.truth_(or__5002__auto__)){
381
+ return or__5002__auto__;
382
+ } else {
383
+ var i = this$.count;
384
+ (hopidx[cljs.core.deref(slot)] = hash);
385
+
386
+ (hopidx[(cljs.core.deref(slot) + (1))] = i);
387
+
388
+ (keys[i] = k);
389
+
390
+ (this$.count = (this$.count + (1)));
391
+
392
+ if((this$.count === this$.cap)){
393
+ fress.impl.hopmap.resize(this$);
394
+ } else {
395
+ }
396
+
397
+ return i;
398
+ }
399
+ })();
400
+ if(cljs.core.truth_(cljs.core.int_QMARK_)){
401
+ } else {
402
+ throw (new Error("Assert failed: int?"));
403
+ }
404
+
405
+ return _PERCENT_;
406
+ });
407
+ fress.impl.hopmap._findSlot = (function fress$impl$hopmap$_findSlot(this$,hash){
408
+ if(cljs.core.int_QMARK_(hash)){
409
+ } else {
410
+ throw (new Error("Assert failed: (int? hash)"));
411
+ }
412
+
413
+ var _PERCENT_ = (function (){var hopidx = this$.hopidx;
414
+ var cap = this$.cap;
415
+ var mask = (cap - (1));
416
+ var bkt = (hash & mask);
417
+ var bhash = (hopidx[(bkt << (2))]);
418
+ if(((cljs.core.int_QMARK_(mask)) && (((cljs.core.int_QMARK_(bkt)) && (cljs.core.int_QMARK_(bhash)))))){
419
+ } else {
420
+ throw (new Error("Assert failed: (and (int? mask) (int? bkt) (int? bhash))"));
421
+ }
422
+
423
+ if((bhash === (0))){
424
+ return (bkt << (2));
425
+ } else {
426
+ var slot = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));
427
+ var _ = cljs.core.set_validator_BANG_(slot,cljs.core.int_QMARK_);
428
+ var idx = (hopidx[((bkt << (2)) + (2))]);
429
+ var bkt__$1 = ((bkt + (1)) & mask);
430
+ while(true){
431
+ if((bkt__$1 === (0))){
432
+ return cljs.core.deref(slot);
433
+ } else {
434
+ cljs.core.reset_BANG_(slot,((bkt__$1 << (2)) + (2)));
435
+
436
+ var G__48505 = (hopidx[((bkt__$1 << (2)) + (2))]);
437
+ var G__48506 = ((bkt__$1 + (1)) & mask);
438
+ idx = G__48505;
439
+ bkt__$1 = G__48506;
440
+ continue;
441
+ }
442
+ break;
443
+ }
444
+ }
445
+ })();
446
+ if(cljs.core.truth_(cljs.core.int_QMARK_)){
447
+ } else {
448
+ throw (new Error("Assert failed: int?"));
449
+ }
450
+
451
+ return _PERCENT_;
452
+ });
453
+ fress.impl.hopmap._resize = (function fress$impl$hopmap$_resize(this$){
454
+ var oldhops = this$.hopidx;
455
+ (this$.hopidx = fress.util.i32_array.cljs$core$IFn$_invoke$arity$1(((2) * oldhops.length)));
456
+
457
+ (this$.cap = (this$.cap << (1)));
458
+
459
+ (this$.keys.length = this$.cap);
460
+
461
+ var slot = (0);
462
+ while(true){
463
+ if((slot < oldhops.length)){
464
+ var item = (oldhops[slot]);
465
+ var new_slot = fress.impl.hopmap.findSlot(this$,item);
466
+ (this$.hopidx[new_slot] = item);
467
+
468
+ (this$.hopidx[(new_slot + (1))] = (oldhops[(slot + (1))]));
469
+
470
+ var G__48511 = ((2) + slot);
471
+ slot = G__48511;
472
+ continue;
473
+ } else {
474
+ return null;
475
+ }
476
+ break;
477
+ }
478
+ });
479
+
480
+ /**
481
+ * @constructor
482
+ * @implements {fress.impl.hopmap.IHopMap}
483
+ * @implements {cljs.core.ILookup}
484
+ */
485
+ fress.impl.hopmap.InterleavedIndexHopMap = (function (cap,hopidx,keys,count){
486
+ this.cap = cap;
487
+ this.hopidx = hopidx;
488
+ this.keys = keys;
489
+ this.count = count;
490
+ this.cljs$lang$protocol_mask$partition0$ = 256;
491
+ this.cljs$lang$protocol_mask$partition1$ = 0;
492
+ });
493
+ (fress.impl.hopmap.InterleavedIndexHopMap.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this$,k){
494
+ var self__ = this;
495
+ var this$__$1 = this;
496
+ return fress.impl.hopmap._get(this$__$1,k);
497
+ }));
498
+
499
+ (fress.impl.hopmap.InterleavedIndexHopMap.prototype.fress$impl$hopmap$IHopMap$ = cljs.core.PROTOCOL_SENTINEL);
500
+
501
+ (fress.impl.hopmap.InterleavedIndexHopMap.prototype.fress$impl$hopmap$IHopMap$isEmpty$arity$1 = (function (this$){
502
+ var self__ = this;
503
+ var this$__$1 = this;
504
+ return (self__.count === (0));
505
+ }));
506
+
507
+ (fress.impl.hopmap.InterleavedIndexHopMap.prototype.fress$impl$hopmap$IHopMap$clear$arity$1 = (function (this$){
508
+ var self__ = this;
509
+ var this$__$1 = this;
510
+ return fress.impl.hopmap._clear(this$__$1);
511
+ }));
512
+
513
+ (fress.impl.hopmap.InterleavedIndexHopMap.prototype.fress$impl$hopmap$IHopMap$oldIndex$arity$2 = (function (this$,k){
514
+ var self__ = this;
515
+ var this$__$1 = this;
516
+ return fress.impl.hopmap._oldIndex(this$__$1,k);
517
+ }));
518
+
519
+ (fress.impl.hopmap.InterleavedIndexHopMap.prototype.fress$impl$hopmap$IHopMap$intern$arity$2 = (function (this$,k){
520
+ var self__ = this;
521
+ var this$__$1 = this;
522
+ return fress.impl.hopmap._intern(this$__$1,k);
523
+ }));
524
+
525
+ (fress.impl.hopmap.InterleavedIndexHopMap.prototype.fress$impl$hopmap$IHopMap$resize$arity$1 = (function (this$){
526
+ var self__ = this;
527
+ var this$__$1 = this;
528
+ return fress.impl.hopmap._resize(this$__$1);
529
+ }));
530
+
531
+ (fress.impl.hopmap.InterleavedIndexHopMap.prototype.fress$impl$hopmap$IHopMap$findSlot$arity$2 = (function (this$,h){
532
+ var self__ = this;
533
+ var this$__$1 = this;
534
+ return fress.impl.hopmap._findSlot(this$__$1,h);
535
+ }));
536
+
537
+ (fress.impl.hopmap.InterleavedIndexHopMap.getBasis = (function (){
538
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,"cap","cap",822909940,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"tag","tag",-1290361223),new cljs.core.Symbol(null,"number","number",-1084057331,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,"hopidx","hopidx",1029567171,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"tag","tag",-1290361223),new cljs.core.Symbol(null,"array","array",-440182315,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,"keys","keys",-1586012071,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"tag","tag",-1290361223),new cljs.core.Symbol(null,"array","array",-440182315,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,"count","count",-514511684,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"tag","tag",-1290361223),new cljs.core.Symbol(null,"number","number",-1084057331,null)], null))], null);
539
+ }));
540
+
541
+ (fress.impl.hopmap.InterleavedIndexHopMap.cljs$lang$type = true);
542
+
543
+ (fress.impl.hopmap.InterleavedIndexHopMap.cljs$lang$ctorStr = "fress.impl.hopmap/InterleavedIndexHopMap");
544
+
545
+ (fress.impl.hopmap.InterleavedIndexHopMap.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
546
+ return cljs.core._write(writer__5288__auto__,"fress.impl.hopmap/InterleavedIndexHopMap");
547
+ }));
548
+
549
+ /**
550
+ * Positional factory function for fress.impl.hopmap/InterleavedIndexHopMap.
551
+ */
552
+ fress.impl.hopmap.__GT_InterleavedIndexHopMap = (function fress$impl$hopmap$__GT_InterleavedIndexHopMap(cap,hopidx,keys,count){
553
+ return (new fress.impl.hopmap.InterleavedIndexHopMap(cap,hopidx,keys,count));
554
+ });
555
+
556
+ fress.impl.hopmap.hopmap = (function fress$impl$hopmap$hopmap(var_args){
557
+ var G__48410 = arguments.length;
558
+ switch (G__48410) {
559
+ case 0:
560
+ return fress.impl.hopmap.hopmap.cljs$core$IFn$_invoke$arity$0();
561
+
562
+ break;
563
+ case 1:
564
+ return fress.impl.hopmap.hopmap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
565
+
566
+ break;
567
+ default:
568
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
569
+
570
+ }
571
+ });
572
+
573
+ (fress.impl.hopmap.hopmap.cljs$core$IFn$_invoke$arity$0 = (function (){
574
+ return fress.impl.hopmap.hopmap.cljs$core$IFn$_invoke$arity$1((1024));
575
+ }));
576
+
577
+ (fress.impl.hopmap.hopmap.cljs$core$IFn$_invoke$arity$1 = (function (capacity){
578
+ var cap = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((1));
579
+ var _ = (function (){while(true){
580
+ if((cljs.core.deref(cap) < capacity)){
581
+ cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cap,((function (cap){
582
+ return (function (p1__48405_SHARP_){
583
+ return (p1__48405_SHARP_ << (1));
584
+ });})(cap))
585
+ );
586
+
587
+ continue;
588
+ } else {
589
+ return null;
590
+ }
591
+ break;
592
+ }
593
+ })();
594
+ var cap__$1 = cljs.core.deref(cap);
595
+ var hopidx = fress.util.i32_array.cljs$core$IFn$_invoke$arity$1((cap__$1 << (2)));
596
+ var keys = (new Array(cap__$1));
597
+ return (new fress.impl.hopmap.InterleavedIndexHopMap(cap__$1,hopidx,keys,(0)));
598
+ }));
599
+
600
+ (fress.impl.hopmap.hopmap.cljs$lang$maxFixedArity = 1);
601
+
602
+
603
+ //# sourceMappingURL=fress.impl.hopmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["fress/impl/hopmap.cljs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,AAAA;AAAA;;;4BAAA,5BAAaiB;;AAAb,IAAAjB,4CAAA,WACUkB;AADV,AAAA,IAAAjB,kBAAA,EAAA,UAAA,OAAA,hBACUiB,qBAAAA;IADVhB,kBAAA,CAAAC,wBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TACUgB,oCAAAA;;AADV,IAAAb,kBAAA,CAAAF,wBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TACUa,oCAAAA;;AADV,MAAA,AAAAZ,2BAAA,gBACUY;;;;AADV,AAAA,0BAAA,1BACGf,4DAAOe;AADV,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACUA,0BAAAA;AADV,OACUA,8CAAAA;;AADV,OAAAlB,0CACUkB;;;;AADV,IAAAX,+CAAA,WAEaW,MAAKC;AAFlB,AAAA,IAAAlB,kBAAA,EAAA,UAAA,OAAA,hBAEaiB,qBAAAA;IAFbhB,kBAAA,CAAAM,2BAAA,AAAAJ,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XAEagB,sCAAAA,hCAAKC,sCAAAA;;AAFlB,IAAAd,kBAAA,CAAAG,2BAAA;AAAA,AAAA,GAAA,GAAA,CAAAH,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XAEaa,sCAAAA,hCAAKC,sCAAAA;;AAFlB,MAAA,AAAAb,2BAAA,mBAEaY;;;;AAFb,AAAA,6BAAA,7BAEGV,kEAAUU,MAAKC;AAFlB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,oDAAA,9EAEaD,0BAAAA;AAFb,OAEaA,iDAAAA,MAAKC;;AAFlB,OAAAZ,6CAEaW,MAAKC;;;;AAFlB,IAAAV,8CAAA,WAGYS;AAHZ,AAAA,IAAAjB,kBAAA,EAAA,UAAA,OAAA,hBAGYiB,qBAAAA;IAHZhB,kBAAA,CAAAQ,0BAAA,AAAAN,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAGYgB,oCAAAA;;AAHZ,IAAAb,kBAAA,CAAAK,0BAAA;AAAA,AAAA,GAAA,GAAA,CAAAL,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAGYa,oCAAAA;;AAHZ,MAAA,AAAAZ,2BAAA,kBAGYY;;;;AAHZ,AAAA,4BAAA,5BAGGR,gEAASQ;AAHZ,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,mDAAA,7EAGYA,0BAAAA;AAHZ,OAGYA,gDAAAA;;AAHZ,OAAAT,4CAGYS;;;;AAHZ,IAAAP,6CAAA,WAIWO,MAAKC;AAJhB,AAAA,IAAAlB,kBAAA,EAAA,UAAA,OAAA,hBAIWiB,qBAAAA;IAJXhB,kBAAA,CAAAU,yBAAA,AAAAR,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XAIWgB,sCAAAA,hCAAKC,sCAAAA;;AAJhB,IAAAd,kBAAA,CAAAO,yBAAA;AAAA,AAAA,GAAA,GAAA,CAAAP,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XAIWa,sCAAAA,hCAAKC,sCAAAA;;AAJhB,MAAA,AAAAb,2BAAA,iBAIWY;;;;AAJX,AAAA,2BAAA,3BAIGN,8DAAQM,MAAKC;AAJhB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,kDAAA,5EAIWD,0BAAAA;AAJX,OAIWA,+CAAAA,MAAKC;;AAJhB,OAAAR,2CAIWO,MAAKC;;;;AAJhB,IAAAN,6CAAA,WAKWK;AALX,AAAA,IAAAjB,kBAAA,EAAA,UAAA,OAAA,hBAKWiB,qBAAAA;IALXhB,kBAAA,CAAAY,yBAAA,AAAAV,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAKWgB,oCAAAA;;AALX,IAAAb,kBAAA,CAAAS,yBAAA;AAAA,AAAA,GAAA,GAAA,CAAAT,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAKWa,oCAAAA;;AALX,MAAA,AAAAZ,2BAAA,iBAKWY;;;;AALX,AAAA,2BAAA,3BAKGJ,8DAAQI;AALX,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,kDAAA,5EAKWA,0BAAAA;AALX,OAKWA,+CAAAA;;AALX,OAAAL,2CAKWK;;;;AALX,IAAAH,+CAAA,WAMaG,MAAKE;AANlB,AAAA,IAAAnB,kBAAA,EAAA,UAAA,OAAA,hBAMaiB,qBAAAA;IANbhB,kBAAA,CAAAc,2BAAA,AAAAZ,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,4DAAAA,dAMagB,yCAAAA,nCAAKE,yCAAAA;;AANlB,IAAAf,kBAAA,CAAAW,2BAAA;AAAA,AAAA,GAAA,GAAA,CAAAX,mBAAA;AAAA,QAAAA,gDAAAA,4DAAAA,dAMaa,yCAAAA,nCAAKE,yCAAAA;;AANlB,MAAA,AAAAd,2BAAA,mBAMaY;;;;AANb,AAAA,6BAAA,7BAMGF,kEAAUE,MAAKE;AANlB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,oDAAA,9EAMaF,0BAAAA;AANb,OAMaA,iDAAAA,MAAKE;;AANlB,OAAAL,6CAMaG,MAAKE;;;;AANlB,AAQA,0BAAA,1BAAMC,4DAAOF;AAAb,AACE,IAAMG,IAAE,AAACC,eAAKJ;AAAd,AACE,GAAI,OAAA,NAAOG;AAAX;;AAEEA;;;AAEN;;;;yBAAA,zBAAME,0DAGHN,MAAKC;AAHR,AAIE,GAAQ,GAAA,MAAA,LAAOA;AAAf;AAAA,AAAA,MAAA,KAAAM,MAAA;;;AACA,IAAMC,SAAO,AAAUR;IACjBS,OAAK,AAAQT;IACbE,OAAK,AAACC,wBAAMF;IACZS,OAAK,aAAA,ZAAK,AAAOV;IACjBW,MAAI,CAAST,OAAKQ;IAClBE,QAAM,CAAMJ,OAAO,QAAA,PAAIG;AAL7B,AAME,GAAQ,kCAAA,kCAAA,lEAAK,AAACE,qBAAKX,aAAM,AAACW,qBAAKH,aAAM,AAACG,qBAAKF,UAAK,AAACE,qBAAKD;AAAtD;AAAA,AAAA,MAAA,KAAAL,MAAA;;;AACA,IAAAO,mBACE,iBAAAC,oBAAK,gDAAA,hDAACC,oDAAOJ;AAAb,AAAA,GAAAG;AACE,IAAME,YAAU,CAAMT,OAAO,gBAAA,fAAK,QAAA,PAAIG;IAChCO,OAAK,CAAMT,KAAKQ;AADtB,AAEE,GAAI,EAAK,AAACE,6CAAEjB,KAAKU,YAAO,AAACO,6CAAElB,EAAEiB;AAC3BD;;AACA,IAAMN,UAAI,AAACS,6CAAKT;oBAAhB,hBACMU;AADN,AACqB,OAACC,mDAAMX,QAAI,WAAKY;AAAL,AAAQ,QAAS,KAAA,JAAKA,WAAGb;;;AADzD,AAEE,IAAOc,OAAK,qCAAA,pCAAG,CAAA,AAAAC,4BAAA,ZAAKd;;AAApB,AACE,IAAMC,YAAM,CAAMJ,OAAOgB;AAAzB,AAEE,GAAU,eAAA,dAAOZ;AAAjB;;AAAA,AACE,IAAMK,gBAAU,CAAMT,OAAO,qCAAA,pCAAG,CAAA,AAAAiB,4BAAA,ZAAKd;IAC/BO,WAAK,CAAMT,KAAKQ;AADtB,AAEE,GAAI,EAAK,AAACE,6CAAEjB,KAAKU,gBAAO,AAACO,6CAAED,SAAKjB;AAC9B,QAAMO,OAAO,qCAAA,pCAAG,CAAA,AAAAiB,4BAAA,ZAAKd;;AACrB,AACE,AAACU;;AACD,eAAO,qCAAA,pCAAG,CAAA,AAAAI,4BAAA,ZAAKd;;;;;;;;;AAjBnCI;;;AADF,AAAA,oBAAAD;AAAAA;;AAAA;;;AAqBJ,2BAAA,3BAAMY,8DAAQ1B;AAAd,AACE,eAAA,dAAM,AAASA;;AACf,IAAA2B,wBAAY,AAAO3B;AAAnB,AAAA,cAAA,VAAU4B;;AAAV,AAAA,GAAA,WAAAD,VAAUC;AAAV,AACE,uBAAA,tBAAM,AAAQ5B,WAAM4B;;AADtB,eAAA,WAAA,VAAUA;;;;AAAV;;;;AAEA,IAAMC,OAAK,cAAA,bAAI,AAAO7B;AAAtB,AACE,IAAA2B,kBAAYE;AAAZ,AAAA,QAAA,JAAUD;;AAAV,AAAA,GAAA,KAAAD,JAAUC;AAAV,AACE,mBAAA,lBAAM,AAAU5B,aAAM4B;;AADxB,eAAA,KAAA,JAAUA;;;;AAAV;;;;;AAGJ;;;;;;;8BAAA,9BAAcE,oEAMX9B,MAAKC;AANR,AAOE,IAAM8B,cAAY,AAAS/B;IACrBgC,QAAM,AAACtC,yBAAOM,MAAKC;AADzB,AAEE,GAAQ,AAACY,qBAAKkB;AAAd;AAAA,AAAA,MAAA,KAAAxB,MAAA;;;AACA,GAAQ,AAACM,qBAAKmB;AAAd;AAAA,AAAA,MAAA,KAAAzB,MAAA;;;AACA,GAAI,CAAIwB,gBAAY,AAAS/B;AAC3BgC;;AADF;;;AAIJ;;;;;;4BAAA,5BAAcE,gEAKXlC,MAAKC;AALR,AAAA,GAMS,GAAA,MAAA,LAAOA;AANhB;AAAA,AAAA,MAAA,KAAAM,MAAA;;;AAAA,IAAA0B,YAOE,iBAAMzB,SAAO,AAAUR;IACjBS,OAAK,AAAQT;IACbE,OAAK,AAACC,wBAAMF;IACZS,OAAK,aAAA,ZAAK,AAAOV;IACjBW,MAAI,AAACS,6CAAK,CAASlB,OAAKQ;IACxBE,QAAM,CAAMJ,OAAO,CAAA,AAAAiB,wBAAA,RAAKd;IACxBa,OAAK,6CAAA,7CAACJ;AANZ,AAOE,GAAM,WAAA,VAAOR;AAAb,AACE,AAACuB,sBAAOX,KAAK,CAAA,AAAAC,wBAAA,RAAKd;;AADpB;;AAEA,IAAAG,mBACE,mBAAA,KAAA,tBAAU,WAAA,VAAOF,qBACf,iBAAAE,mBAGE,iBAAAC,oBAAK,CAAIb,SAAKU;AAAd,AAAA,GAAAG;AACE,IAAME,YAAU,CAAMT,OAAO,iCAAA,hCAAK,CAAA,AAAAiB,wBAAA,RAAKd;AAAvC,AACE,GAAM,AAACQ,6CAAElB,EAAE,CAAMQ,KAAKQ;AAAtB,AACEA;;AADF;;;AAFJF;;;AAHF,AAAA,oBAAAD;AAAAA;;AAAA,IAAAA,uBAeE,iCAAA,hBAAMO;AAAN,AAAqB,OAACC,mDAAMX,IAAI,WAAKY;AAAL,AAAQ,QAAS,KAAA,JAAKA,WAAGb;;;AAAzD,AACE,IAAOc,WAAK,iCAAA,hCAAG,CAAA,AAAAC,wBAAA,RAAKd;;AAApB,AACE,IAAMC,YAAM,CAAMJ,OAAOgB;AAAzB,AACE,GAAU,eAAA,dAAOZ;AAAjB;;AAAA,AAEE,GAAI,CAAIV,SAAKU;AACX,IAAMK,YAAU,CAAMT,OAAO,iCAAA,hCAAG,CAAA,AAAAiB,wBAAA,RAAKd;AAArC,AACE,GAAI,AAACQ,6CAAElB,EAAE,CAAMQ,KAAKQ;AAClBA;;AACA,AACE,AAACI;;AACD,eAAO,iCAAA,hCAAG,CAAA,AAAAI,wBAAA,RAAKd;;;;;AACrB,AACE,AAACU;;AACD,eAAO,iCAAA,hCAAG,CAAA,AAAAI,wBAAA,RAAKd;;;;;;;;AA7B7B,AAAA,oBAAAG;AAAAA;;AA8BE,AACE,AAACqB,sBAAOX,KAAK,CAAA,MAAK,CAAA,AAAAC,wBAAA,RAAKd;;AADzB;;;;AAhCN,AAAA,oBAAAG;AAAAA;;AAoCC,IAAMc,IAAE,AAAS5B;AAAjB,AACE,QAAA,AAAAyB,PAAMjB,uBAAQgB,SAAKtB;;AACnB,CAAMM,OAAO,CAAA,AAAAiB,wBAAA,RAAMD,gBAAMI;;AACzB,CAAMnB,KAAKmB,KAAE3B;;AACb,CAAM,AAASD,cAAM,eAAA,dAAK,AAASA;;AACnC,GAAM,CAAI,AAASA,gBAAM,AAAOA;AAAhC,AACE,AAACJ,yBAAOI;;AADV;;AAEA4B;;;AA3DP,AAAA,oBAM2Bf;AAN3B;AAAA,AAAA,MAAA,KAAAN,MAAA;;;AAAA0B;;AA8DA,8BAAA,9BAAcG,oEACXpC,MAAKE;AADR,AAAA,GAES,AAACW,qBAAKX;AAFf;AAAA,AAAA,MAAA,KAAAK,MAAA;;;AAAA,IAAA0B,YAGE,iBAAMzB,SAAO,AAAUR;IACjBqC,MAAI,AAAOrC;IACXU,OAAK,OAAA,NAAK2B;IACV1B,MAAI,CAAST,OAAKQ;IAClBE,QAAM,CAAMJ,OAAO,QAAA,PAAIG;AAJ7B,AAKE,GAAQ,kCAAA,hCAAK,AAACE,qBAAKH,aAAM,AAACG,qBAAKF,UAAK,AAACE,qBAAKD;AAA1C;AAAA,AAAA,MAAA,KAAAL,MAAA;;;AACA,GAAI,WAAA,VAAOK;AACT,eAAA,PAAID;;AACJ,IAAMa,OAAK,6CAAA,7CAACJ;IACNkB,IAAC,AAACC,8BAAef,KAAKX;AAD5B,AAEE,IAAO2B,MAAI,CAAMhC,OAAO,gBAAA,fAAG,QAAA,PAAIG;IACxBA,UAAI,CAAS,OAAA,NAAKA,aAAKD;;AAD9B,AAEE,GAAI,aAAA,ZAAOC;AAAX,OAAAc,gBACGD;;AACD,AACE,AAACW,sBAAOX,KAAK,oBAAA,nBAAG,YAAA,XAAIb;;AACpB,eACE,CAAMH,OAAO,oBAAA,nBAAG,YAAA,XAAIG;eACpB,CAAS,WAAA,VAAKA,iBAAKD;;;;;;;;;AArBnC,AAAA,oBAE6BG;AAF7B;AAAA,AAAA,MAAA,KAAAN,MAAA;;;AAAA0B;;AAuBA,4BAAA,5BAAMQ,gEACHzC;AADH,AAEE,IAAM0C,UAAQ,AAAU1C;AAAxB,AACE,CAAM,AAAUA,eAAM,AAAC2C,mDAAU,CAAA,MAAK,AAASD;;AAC/C,CAAM,AAAO1C,YAAM,cAAA,bAAI,AAAOA;;AAC9B,CAAM,AAAU,AAAQA,oBAAO,AAAOA;;AACtC,WAAA,PAAOwB;;AAAP,AACE,GAAM,CAAGA,OAAK,AAASkB;AAAvB,AACE,IAAME,OAAK,CAAMF,QAAQlB;IACnBqB,WAAS,AAAC/C,2BAASE,MAAK4C;AAD9B,AAEE,CAAM,AAAU5C,aAAM6C,YAASD;;AAC/B,CAAM,AAAU5C,aAAM,YAAA,XAAK6C,mBAAU,CAAMH,QAAQ,QAAA,PAAKlB;;AACxD,eAAO,CAAA,MAAKA;;;;AALhB;;;;;AAON,AAAA;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,uFAAA,vFAAS2B,kGAGGnD,MAAKC;;AAHjB,AAAA,gBAAA,ZAGYD;AAHZ,AAGoB,OAACM,uBAAKN,UAAKC;;;AAH/B,CAAA,AAAA,gFAAA6C,hFAASK;;AAAT,CAAA,AAAA,+FAAA,/FAASA,0GAKGnD;;AALZ,AAAA,gBAAA,ZAKYA;AALZ,AAKkB,yBAAA,jBAAOqD;;;AALzB,CAAA,AAAA,6FAAA,7FAASF,wGAMCnD;;AANV,AAAA,gBAAA,ZAMUA;AANV,AAMgB,OAAC0B,yBAAO1B;;;AANxB,CAAA,AAAA,gGAAA,hGAASmD,2GAOYnD,MAAKC;;AAP1B,AAAA,gBAAA,ZAOqBD;AAPrB,AAO6B,OAAC8B,4BAAU9B,UAAKC;;;AAP7C,CAAA,AAAA,8FAAA,9FAASkD,yGAQUnD,MAAKC;;AARxB,AAAA,gBAAA,ZAQmBD;AARnB,AAQ2B,OAACkC,0BAAQlC,UAAKC;;;AARzC,CAAA,AAAA,8FAAA,9FAASkD,yGASEnD;;AATX,AAAA,gBAAA,ZASWA;AATX,AASiB,OAACyC,0BAAQzC;;;AAT1B,CAAA,AAAA,gGAAA,hGAASmD,2GAUYnD,MAAKI;;AAV1B,AAAA,gBAAA,ZAUqBJ;AAVrB,AAU6B,OAACoC,4BAAUpC,UAAKI;;;AAV7C,CAAA,oDAAA,pDAAS+C;AAAT,AAAA,AAAA;;;AAAA,CAAA,0DAAA,1DAASA;;AAAT,CAAA,6DAAA,7DAASA;;AAAT,CAAA,kEAAA,WAAAJ,mBAAAC,qBAAAC,rHAASE;AAAT,AAAA,OAAAD,iBAAAF,qBAAA;;;AAAA;;;gDAAA,hDAASI,wGACEf,IAAW7B,OAAcC,KAAa4C;AADjD,AAAA,YAAAF,yCACWd,IAAW7B,OAAcC,KAAa4C;;;AADxCF,AAYT,AAAA,2BAAA,mCAAAG,9DAAME;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAjD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAMiD;AAAN,AACK,8DAAA,vDAACC;;;AADN,CAAA,yDAAA,zDAAMD,oEAEFE;AAFJ,AAGG,IAAMrB,MAAI,6CAAA,7CAACjB;IACLkB,IAAE;AAAA,AAAA,GAAO,CAAA,AAAAb,gBAAIY,OAAIqB;AAAf,AACE,uDAAA,vDAACpC,mDAAMe;kBAAPsB;AAAA,AAAY,QAAAA,oBAAA;;;;AADd;;AAAA;;;;;cADR,AAAAlC,VAGMY,0BAAKA;IACL7B,SAAO,AAACmC,mDAAU,YAAA,XAAIN;IACtB5B,OAAK,KAAAmD,MAAYvB;AALvB,AAME,YAAAc,6DAAA,pBAAyBd,QAAI7B,OAAOC;;;AATzC,CAAA,mDAAA,nDAAM+C;;AAAN","names":["fress$impl$hopmap$IHopMap$clear$dyn","x__5350__auto__","m__5351__auto__","fress.impl.hopmap/clear","goog/typeOf","m__5349__auto__","cljs.core/missing-protocol","fress$impl$hopmap$IHopMap$oldIndex$dyn","fress.impl.hopmap/oldIndex","fress$impl$hopmap$IHopMap$isEmpty$dyn","fress.impl.hopmap/isEmpty","fress$impl$hopmap$IHopMap$intern$dyn","fress.impl.hopmap/intern","fress$impl$hopmap$IHopMap$resize$dyn","fress.impl.hopmap/resize","fress$impl$hopmap$IHopMap$findSlot$dyn","fress.impl.hopmap/findSlot","fress.impl.hopmap/IHopMap","this","k","hash","fress.impl.hopmap/_hash","h","cljs.core/hash","fress.impl.hopmap/_get","js/Error","hopidx","keys","mask","bkt","bhash","cljs.core/int?","or__5002__auto__","and__5000__auto__","cljs.core.not_EQ_","key-index","bkey","cljs.core._EQ_","cljs.core.atom","increment-bkt","cljs.core.swap_BANG_","n","slot","cljs.core/deref","fress.impl.hopmap/_clear","n__5593__auto__","i","cap2","fress.impl.hopmap/_oldIndex","countBefore","index","%","fress.impl.hopmap/_intern","cljs.core/reset!","fress.impl.hopmap/_findSlot","cap","_","cljs.core/set-validator!","idx","fress.impl.hopmap/_resize","oldhops","fress.util/i32-array","item","new-slot","cljs.core/PROTOCOL_SENTINEL","this__5287__auto__","writer__5288__auto__","opt__5289__auto__","cljs.core/-write","fress.impl.hopmap/InterleavedIndexHopMap","fress.impl.hopmap/->InterleavedIndexHopMap","count","var_args","G__48410","fress.impl.hopmap/hopmap","fress.impl.hopmap.hopmap","capacity","p1__48405#","js/Array"],"sourcesContent":["(ns fress.impl.hopmap\n (:require-macros [fress.macros :refer [<<]])\n (:require [fress.util :refer [i32-array dbg]]))\n\n; a hashmap that uses open-addressing,\n; and the InterleavedIndexHopMap describes how to deal with collisions\n\n(defprotocol IHopMap\n (clear [this])\n (oldIndex [this k])\n (isEmpty [this])\n (intern [this k])\n (resize [this])\n (findSlot [this hash]))\n\n(defn _hash [k]\n (let [h (hash k)]\n (if (zero? h) ; reserve 0 for no-entry\n 42\n h)))\n\n(defn _get\n \"@param k, non-null\n @return the integer associated with k, or -1 if not present\"\n [this k]\n (assert (some? k))\n (let [hopidx (.-hopidx this)\n keys (.-keys this)\n hash (_hash k)\n mask (dec (.-cap this))\n bkt (bit-and hash mask)\n bhash (aget hopidx (<< bkt 2))]\n (assert (and (int? hash) (int? mask) (int? bkt) (int? bhash)))\n (or\n (and (not= 0 bhash)\n (let [key-index (aget hopidx (inc (<< bkt 2)))\n bkey (aget keys key-index)]\n (if (and (= hash bhash) (= k bkey))\n key-index\n (let [bkt (atom bkt)\n increment-bkt #(swap! bkt (fn [n] (bit-and (inc n) mask)))]\n (loop [slot (+ (<< @bkt 2) 2)]\n (let [bhash (aget hopidx slot)]\n ; (dbg \" hopidx[\"slot\"]\" bhash)\n (when-not (zero? bhash)\n (let [key-index (aget hopidx (+ (<< @bkt 2) 3))\n bkey (aget keys key-index)]\n (if (and (= hash bhash) (= bkey k))\n (aget hopidx (+ (<< @bkt 2) 3))\n (do\n (increment-bkt)\n (recur (+ (<< @bkt 2) 2))))))))))))\n -1)))\n\n(defn _clear [this]\n (set! (.-count this) 0)\n (dotimes [i (.-cap this)]\n (aset (.-keys this) i nil))\n (let [cap2 (<< (.-cap this) 2)]\n (dotimes [i cap2]\n (aset (.-hopidx this) i 0))))\n\n(defn ^number _oldIndex\n \"Puts k in the map if it was not already present.\n Returns -1 if k was freshly added\n Returns k's index if k was already in the map.\n @param k, non-null\n @return the integer associated with k or -1\"\n [this k]\n (let [countBefore (.-count this)\n index (intern this k)]\n (assert (int? countBefore))\n (assert (int? index))\n (if (== countBefore (.-count this))\n index ; already present\n -1)))\n\n(defn ^number _intern\n \"Puts k in the map (if not present) and assigns and returns the index associated with it\n assigns ints monotonically from 0\n @param k, non-null\n @return the integer associated with k\"\n [this k]\n {:pre [(some? k)] :post [int?]}\n (let [hopidx (.-hopidx this)\n keys (.-keys this)\n hash (_hash k)\n mask (dec (.-cap this))\n bkt (atom (bit-and hash mask))\n bhash (aget hopidx (<< @bkt 2))\n slot (atom 0)]\n (when (zero? bhash) ; not found hopidx lookup\n (reset! slot (<< @bkt 2)))\n (or\n (when-not (zero? bhash) ; found value at (aget hopidx (<< bkt 2))\n (or\n ;; if hash is identical && stored object is identical\n ;; return key-index of (already) interned object\n (and (== hash bhash)\n (let [key-index (aget hopidx (inc (<< @bkt 2)))]\n (when (= k (aget keys key-index))\n key-index)))\n ;; theres is an item found at (aget hopidx (<< bkt 2)). Either:\n ;; - the hash stored at hopidx[(<< bkt 2)] is not identical to k's hash\n ;; - the hash is identical but the object is not\n ;; so we shift (bit-and hash mask) until zero, looking up the stored\n ;; object for each to see if we already have interned it\n ;;\n ;; Along the way we must 'hop' up bkt to get free address if we end\n ;; up leaving loop and going ahead with internment\n (let [increment-bkt #(swap! bkt (fn [n] (bit-and (inc n) mask)))]\n (loop [slot (+ (<< @bkt 2) 2)]\n (let [bhash (aget hopidx slot)]\n (when-not (zero? bhash)\n ; (dbg \" hopidx[\"slot\"]\" bhash)\n (if (== hash bhash)\n (let [key-index (aget hopidx (+ (<< @bkt 2) 3))]\n (if (= k (aget keys key-index))\n key-index\n (do\n (increment-bkt)\n (recur (+ (<< @bkt 2) 2)))))\n (do\n (increment-bkt)\n (recur (+ (<< @bkt 2) 2))))))))\n (do\n (reset! slot (+ 2 (<< @bkt 2)))\n nil)))\n ;; unique item, proceed with internment\n (let [i (.-count this)]\n (aset hopidx @slot hash)\n (aset hopidx (inc @slot) i)\n (aset keys i k)\n (set! (.-count this) (inc (.-count this)))\n (when (== (.-count this) (.-cap this))\n (resize this))\n i))))\n\n\n(defn ^number _findSlot\n [this hash]\n {:pre [(int? hash)] :post [int?]}\n (let [hopidx (.-hopidx this)\n cap (.-cap this)\n mask (dec cap)\n bkt (bit-and hash mask)\n bhash (aget hopidx (<< bkt 2))]\n (assert (and (int? mask) (int? bkt) (int? bhash)))\n (if (zero? bhash)\n (<< bkt 2)\n (let [slot (atom 0)\n _(set-validator! slot int?)]\n (loop [idx (aget hopidx (+ (<< bkt 2) 2))\n bkt (bit-and (inc bkt) mask)]\n (if (zero? bkt)\n @slot\n (do\n (reset! slot (+ (<< bkt 2) 2))\n (recur\n (aget hopidx (+ (<< bkt 2) 2))\n (bit-and (inc bkt) mask)))))))))\n\n(defn _resize\n [this]\n (let [oldhops (.-hopidx this)]\n (set! (.-hopidx this) (i32-array (* 2 (alength oldhops))))\n (set! (.-cap this) (<< (.-cap this) 1))\n (set! (.-length (.-keys this)) (.-cap this))\n (loop [slot 0]\n (when (< slot (alength oldhops))\n (let [item (aget oldhops slot)\n new-slot (findSlot this item)]\n (aset (.-hopidx this) new-slot item)\n (aset (.-hopidx this) (inc new-slot) (aget oldhops (inc slot)))\n (recur (+ 2 slot)))))))\n\n(deftype InterleavedIndexHopMap\n [^number cap ^array hopidx ^array keys ^number count]\n ILookup\n (-lookup [this k] (_get this k))\n IHopMap\n (isEmpty [this] (zero? count))\n (clear [this] (_clear this))\n (oldIndex ^number [this k] (_oldIndex this k))\n (intern ^number [this k] (_intern this k))\n (resize [this] (_resize this))\n (findSlot ^number [this h] (_findSlot this h)))\n\n(defn hopmap\n ([](hopmap 1024))\n ([capacity]\n (let [cap (atom 1)\n _ (while (< @cap capacity)\n (swap! cap #(<< % 1)))\n cap @cap\n hopidx (i32-array (<< cap 2)) ;; [hash, idx of key, collision hash, collision idx, ...]\n keys (make-array cap)]\n (InterleavedIndexHopMap. cap hopidx keys 0))))"],"x_google_ignoreList":[0]}
@@ -0,0 +1,49 @@
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("fress.impl.ranges.js");
26
+
27
+ goog.provide('fress.impl.ranges');
28
+ fress.impl.ranges.PACKED_1_START = (1);
29
+ fress.impl.ranges.PACKED_1_END = (64);
30
+ fress.impl.ranges.PACKED_2_START = parseInt("0xFFFFFFFFFFFFF000");
31
+ fress.impl.ranges.PACKED_2_END = parseInt("0x0000000000001000");
32
+ fress.impl.ranges.PACKED_3_START = parseInt("0xFFFFFFFFFFF80000");
33
+ fress.impl.ranges.PACKED_3_END = parseInt("0x0000000000080000");
34
+ fress.impl.ranges.PACKED_4_START = parseInt("0xFFFFFFFFFE000000");
35
+ fress.impl.ranges.PACKED_4_END = parseInt("0x0000000002000000");
36
+ fress.impl.ranges.PACKED_5_START = parseInt("0xFFFFFFFE00000000");
37
+ fress.impl.ranges.PACKED_5_END = parseInt("0x0000000200000000");
38
+ fress.impl.ranges.PACKED_6_START = parseInt("0xFFFFFE0000000000");
39
+ fress.impl.ranges.PACKED_6_END = parseInt("0x0000020000000000");
40
+ fress.impl.ranges.PACKED_7_START = parseInt("0xFFFE000000000000");
41
+ fress.impl.ranges.PACKED_7_END = parseInt("0x0002000000000000");
42
+ fress.impl.ranges.PRIORITY_CACHE_PACKED_END = (32);
43
+ fress.impl.ranges.STRUCT_CACHE_PACKED_END = (16);
44
+ fress.impl.ranges.BYTES_PACKED_LENGTH_END = (8);
45
+ fress.impl.ranges.STRING_PACKED_LENGTH_END = (8);
46
+ fress.impl.ranges.LIST_PACKED_LENGTH_END = (8);
47
+ fress.impl.ranges.BYTE_CHUNK_SIZE = (65535);
48
+
49
+ //# sourceMappingURL=fress.impl.ranges.js.map