@daneren2005/shared-memory-objects 0.0.14 → 0.0.16

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.
@@ -1,6 +1,6 @@
1
- const oe = 20, ae = 12, tt = Math.pow(2, 20), et = Math.pow(2, 12);
1
+ const he = 20, ce = 12, rt = Math.pow(2, 20), it = Math.pow(2, 12);
2
2
  function c(i, t = 0) {
3
- return k(Atomics.load(i, t));
3
+ return g(Atomics.load(i, t));
4
4
  }
5
5
  function O(i, t = 0) {
6
6
  return Atomics.load(i, t);
@@ -8,17 +8,17 @@ function O(i, t = 0) {
8
8
  function m(i, t = 0, e, r) {
9
9
  Atomics.store(i, t, T(e, r));
10
10
  }
11
- function v(i, t = 0, e) {
11
+ function j(i, t = 0, e) {
12
12
  Atomics.store(i, t, e);
13
13
  }
14
- function ne(i, t, e, r, s, o) {
14
+ function ue(i, t, e, r, s, o) {
15
15
  let a = T(s, o);
16
16
  return Atomics.compareExchange(i, t, a, T(e, r)) === a;
17
17
  }
18
- function Y(i, t, e, r) {
18
+ function H(i, t, e, r) {
19
19
  return Atomics.compareExchange(i, t, r, e) === r;
20
20
  }
21
- function k(i) {
21
+ function g(i) {
22
22
  return {
23
23
  bufferPosition: i & 4095,
24
24
  bufferByteOffset: i >>> 12
@@ -60,15 +60,15 @@ class h {
60
60
  };
61
61
  }
62
62
  }
63
- const j = 0, F = 1;
63
+ const q = 0, D = 1;
64
64
  function x(i, t = 0) {
65
- for (; Atomics.compareExchange(i, t, j, F) !== j; )
66
- "WorkerGlobalScope" in self && Atomics.wait(i, t, F);
65
+ for (; Atomics.compareExchange(i, t, q, D) !== q; )
66
+ "WorkerGlobalScope" in self && Atomics.wait(i, t, D);
67
67
  }
68
68
  function A(i, t = 0) {
69
- Atomics.compareExchange(i, t, F, j) !== F && console.warn("We are unlocking when it was not locked!"), Atomics.notify(i, t);
69
+ Atomics.compareExchange(i, t, D, q) !== D && console.warn("We are unlocking when it was not locked!"), Atomics.notify(i, t);
70
70
  }
71
- const fe = 1, Rt = {
71
+ const ye = 1, Vt = {
72
72
  5120: "i8",
73
73
  5121: "u8",
74
74
  5122: "i16",
@@ -76,35 +76,35 @@ const fe = 1, Rt = {
76
76
  5124: "i32",
77
77
  5125: "u32",
78
78
  5126: "f32"
79
- }, $t = {
79
+ }, Kt = {
80
80
  f32: Float32Array,
81
81
  f64: Float64Array
82
- }, zt = {
82
+ }, Gt = {
83
83
  i8: Int8Array,
84
84
  i16: Int16Array,
85
85
  i32: Int32Array
86
- }, Yt = {
86
+ }, Xt = {
87
87
  u8: Uint8Array,
88
88
  u8c: Uint8ClampedArray,
89
89
  u16: Uint16Array,
90
90
  u32: Uint32Array
91
- }, Ht = {
91
+ }, Zt = {
92
92
  i64: BigInt64Array,
93
93
  u64: BigUint64Array
94
- }, Vt = {
95
- ...$t,
96
- ...zt,
97
- ...Yt
98
- }, Kt = (i) => {
99
- const t = Rt[i];
94
+ }, Wt = {
95
+ ...Kt,
96
+ ...Gt,
97
+ ...Xt
98
+ }, vt = (i) => {
99
+ const t = Vt[i];
100
100
  return t !== void 0 ? t : i;
101
101
  };
102
- function Gt(i, ...t) {
103
- const e = Ht[i];
104
- return new (e || Vt[Kt(i)])(...t);
102
+ function jt(i, ...t) {
103
+ const e = Zt[i];
104
+ return new (e || Wt[vt(i)])(...t);
105
105
  }
106
- const rt = 0, it = 1, st = 2, ot = 3, at = 4, g = 5, nt = 6, H = 1, V = 2, ft = 32, K = 0, G = 1, d = 8;
107
- class X {
106
+ const st = 0, ot = 1, at = 2, nt = 3, ft = 4, k = 5, lt = 6, V = 1, K = 2, ht = 32, G = 0, X = 1, y = 8;
107
+ class Z {
108
108
  buf;
109
109
  start;
110
110
  u8;
@@ -112,7 +112,7 @@ class X {
112
112
  state;
113
113
  lock;
114
114
  constructor(t = {}) {
115
- if (this.buf = t.buf ? t.buf : new ArrayBuffer(t.size || 4096), this.start = t.start != null ? N(Math.max(t.start, 0), 4) : 0, this.u8 = new Uint8Array(this.buf), this.u32 = new Uint32Array(this.buf), this.state = new Uint32Array(this.buf, this.start, ft / 4), this.lock = new Int32Array(this.buf, this.start + this.state.byteLength - 4, 1), !t.skipInitialization) {
115
+ if (this.buf = t.buf ? t.buf : new ArrayBuffer(t.size || 4096), this.start = t.start != null ? P(Math.max(t.start, 0), 4) : 0, this.u8 = new Uint8Array(this.buf), this.u32 = new Uint32Array(this.buf), this.state = new Uint32Array(this.buf, this.start, ht / 4), this.lock = new Int32Array(this.buf, this.start + this.state.byteLength - 4, 1), !t.skipInitialization) {
116
116
  const e = t.align || 8;
117
117
  if (e < 8)
118
118
  throw new Error(`invalid alignment: ${e}, must be a pow2 and >= 8`);
@@ -149,8 +149,8 @@ class X {
149
149
  return s && s.fill(r), s;
150
150
  }
151
151
  mallocAs(t, e) {
152
- const r = this.malloc(e * Xt[t]);
153
- return r ? Gt(t, this.buf, r, e) : void 0;
152
+ const r = this.malloc(e * qt[t]);
153
+ return r ? jt(t, this.buf, r, e) : void 0;
154
154
  }
155
155
  calloc(t, e = 0) {
156
156
  const r = this.malloc(t);
@@ -160,7 +160,7 @@ class X {
160
160
  if (t <= 0)
161
161
  return 0;
162
162
  x(this.lock);
163
- const e = N(t + d, this.align), r = this.end;
163
+ const e = P(t + y, this.align), r = this.end;
164
164
  let s = this.top, o = this._free, a = 0;
165
165
  for (; o; ) {
166
166
  const f = this.blockSize(o), n = o + f >= s;
@@ -196,7 +196,7 @@ class X {
196
196
  realloc(t, e) {
197
197
  if (e <= 0)
198
198
  return 0;
199
- const r = P(t);
199
+ const r = I(t);
200
200
  let s = 0, o = this._used, a = 0;
201
201
  for (; o; ) {
202
202
  if (o === r) {
@@ -212,7 +212,7 @@ class X {
212
212
  ), _(s);
213
213
  }
214
214
  reallocBlock(t, e) {
215
- const r = this.blockSize(t), s = t + r, o = s >= this.top, a = N(e + d, this.align);
215
+ const r = this.blockSize(t), s = t + r, o = s >= this.top, a = P(e + y, this.align);
216
216
  if (a <= r) {
217
217
  if (this.doSplit) {
218
218
  const f = r - a;
@@ -220,7 +220,7 @@ class X {
220
220
  } else o && (this.top = t + a);
221
221
  return [t, s];
222
222
  }
223
- return o && t + a < this.end ? (this.top = t + this.setBlockSize(t, a), [t, s]) : (this.free(t), [P(this.malloc(e)), s]);
223
+ return o && t + a < this.end ? (this.top = t + this.setBlockSize(t, a), [t, s]) : (this.free(t), [I(this.malloc(e)), s]);
224
224
  }
225
225
  reallocArray(t, e) {
226
226
  if (t.buffer !== this.buf)
@@ -239,11 +239,11 @@ class X {
239
239
  e = t.byteOffset;
240
240
  } else
241
241
  e = t;
242
- e = P(e);
242
+ e = I(e);
243
243
  let r = this._used;
244
244
  for (; r; ) {
245
245
  if (r === e)
246
- return this.blockSize(e) - d;
246
+ return this.blockSize(e) - y;
247
247
  r = this.blockNext(r);
248
248
  }
249
249
  }
@@ -260,7 +260,7 @@ class X {
260
260
  e = t.byteOffset;
261
261
  } else
262
262
  e = t;
263
- x(this.lock), e = P(e);
263
+ x(this.lock), e = I(e);
264
264
  let r = this._used, s = 0;
265
265
  for (; r; ) {
266
266
  if (r === e)
@@ -276,57 +276,57 @@ class X {
276
276
  return delete this.u8, delete this.u32, delete this.state, delete this.buf, !0;
277
277
  }
278
278
  get align() {
279
- return this.state[at];
279
+ return this.state[ft];
280
280
  }
281
281
  set align(t) {
282
- this.state[at] = t;
282
+ this.state[ft] = t;
283
283
  }
284
284
  get end() {
285
- return this.state[ot];
285
+ return this.state[nt];
286
286
  }
287
287
  set end(t) {
288
- this.state[ot] = t;
288
+ this.state[nt] = t;
289
289
  }
290
290
  get top() {
291
- return Atomics.load(this.state, st);
291
+ return Atomics.load(this.state, at);
292
292
  }
293
293
  set top(t) {
294
- Atomics.store(this.state, st, t);
294
+ Atomics.store(this.state, at, t);
295
295
  }
296
296
  get _free() {
297
- return Atomics.load(this.state, rt);
297
+ return Atomics.load(this.state, st);
298
298
  }
299
299
  set _free(t) {
300
- Atomics.store(this.state, rt, t);
300
+ Atomics.store(this.state, st, t);
301
301
  }
302
302
  get _used() {
303
- return Atomics.load(this.state, it);
303
+ return Atomics.load(this.state, ot);
304
304
  }
305
305
  set _used(t) {
306
- Atomics.store(this.state, it, t);
306
+ Atomics.store(this.state, ot, t);
307
307
  }
308
308
  get doCompact() {
309
- return !!(this.state[g] & H);
309
+ return !!(this.state[k] & V);
310
310
  }
311
311
  set doCompact(t) {
312
- t ? this.state[g] |= 1 << H - 1 : this.state[g] &= ~H;
312
+ t ? this.state[k] |= 1 << V - 1 : this.state[k] &= ~V;
313
313
  }
314
314
  get doSplit() {
315
- return !!(this.state[g] & V);
315
+ return !!(this.state[k] & K);
316
316
  }
317
317
  set doSplit(t) {
318
- t ? this.state[g] |= 1 << V - 1 : this.state[g] &= ~V;
318
+ t ? this.state[k] |= 1 << K - 1 : this.state[k] &= ~K;
319
319
  }
320
320
  get minSplit() {
321
- return this.state[nt];
321
+ return this.state[lt];
322
322
  }
323
323
  set minSplit(t) {
324
- if (t <= d)
325
- throw new Error(`illegal min split threshold: ${t}, require at least ${d + 1}`);
326
- this.state[nt] = t;
324
+ if (t <= y)
325
+ throw new Error(`illegal min split threshold: ${t}, require at least ${y + 1}`);
326
+ this.state[lt] = t;
327
327
  }
328
328
  blockSize(t) {
329
- return Atomics.load(this.u32, (t >> 2) + K);
329
+ return Atomics.load(this.u32, (t >> 2) + G);
330
330
  }
331
331
  /**
332
332
  * Sets & returns given block size.
@@ -335,10 +335,10 @@ class X {
335
335
  * @param size -
336
336
  */
337
337
  setBlockSize(t, e) {
338
- return Atomics.store(this.u32, (t >> 2) + K, e), e;
338
+ return Atomics.store(this.u32, (t >> 2) + G, e), e;
339
339
  }
340
340
  blockNext(t) {
341
- return Atomics.load(this.u32, (t >> 2) + G);
341
+ return Atomics.load(this.u32, (t >> 2) + X);
342
342
  }
343
343
  /**
344
344
  * Sets block next pointer to `next`. Use zero to indicate list end.
@@ -346,7 +346,7 @@ class X {
346
346
  * @param block -
347
347
  */
348
348
  setBlockNext(t, e) {
349
- Atomics.store(this.u32, (t >> 2) + G, e);
349
+ Atomics.store(this.u32, (t >> 2) + X, e);
350
350
  }
351
351
  /**
352
352
  * Initializes block header with given `size` and `next` pointer. Returns `block`.
@@ -357,7 +357,7 @@ class X {
357
357
  */
358
358
  initBlock(t, e, r) {
359
359
  const s = t >>> 2;
360
- return Atomics.store(this.u32, s + K, e), Atomics.store(this.u32, s + G, r), t;
360
+ return Atomics.store(this.u32, s + G, e), Atomics.store(this.u32, s + X, r), t;
361
361
  }
362
362
  unlinkBlock(t, e) {
363
363
  this.setBlockNext(t, this.blockNext(e));
@@ -372,7 +372,7 @@ class X {
372
372
  ), this.doCompact && this.compact();
373
373
  }
374
374
  initialTop(t = this.align) {
375
- return N(this.start + ft + d, t) - d;
375
+ return P(this.start + ht + y, t) - y;
376
376
  }
377
377
  /**
378
378
  * Traverses free list and attempts to recursively merge blocks
@@ -411,7 +411,7 @@ class X {
411
411
  r ? this.setBlockNext(r, t) : this._free = t, this.setBlockNext(t, e);
412
412
  }
413
413
  }
414
- const _ = (i) => i > 0 ? i + d : 0, P = (i) => i > 0 ? i - d : 0, N = (i, t) => (t--, i + t & ~t), Xt = {
414
+ const _ = (i) => i > 0 ? i + y : 0, I = (i) => i > 0 ? i - y : 0, P = (i, t) => (t--, i + t & ~t), qt = {
415
415
  u8: 1,
416
416
  u8c: 1,
417
417
  i8: 1,
@@ -423,7 +423,7 @@ const _ = (i) => i > 0 ? i + d : 0, P = (i) => i > 0 ? i - d : 0, N = (i, t) =>
423
423
  u64: 8,
424
424
  f32: 4,
425
425
  f64: 8
426
- }, Zt = [
426
+ }, Jt = [
427
427
  "B",
428
428
  "kB",
429
429
  "MB",
@@ -433,7 +433,7 @@ const _ = (i) => i > 0 ? i + d : 0, P = (i) => i > 0 ? i - d : 0, N = (i, t) =>
433
433
  "EB",
434
434
  "ZB",
435
435
  "YB"
436
- ], Wt = [
436
+ ], Qt = [
437
437
  "B",
438
438
  "KiB",
439
439
  "MiB",
@@ -443,7 +443,7 @@ const _ = (i) => i > 0 ? i + d : 0, P = (i) => i > 0 ? i - d : 0, N = (i, t) =>
443
443
  "EiB",
444
444
  "ZiB",
445
445
  "YiB"
446
- ], vt = [
446
+ ], te = [
447
447
  "b",
448
448
  "kbit",
449
449
  "Mbit",
@@ -453,7 +453,7 @@ const _ = (i) => i > 0 ? i + d : 0, P = (i) => i > 0 ? i - d : 0, N = (i, t) =>
453
453
  "Ebit",
454
454
  "Zbit",
455
455
  "Ybit"
456
- ], jt = [
456
+ ], ee = [
457
457
  "b",
458
458
  "kibit",
459
459
  "Mibit",
@@ -463,26 +463,26 @@ const _ = (i) => i > 0 ? i + d : 0, P = (i) => i > 0 ? i - d : 0, N = (i, t) =>
463
463
  "Eibit",
464
464
  "Zibit",
465
465
  "Yibit"
466
- ], lt = (i, t, e) => {
466
+ ], ct = (i, t, e) => {
467
467
  let r = i;
468
468
  return typeof t == "string" || Array.isArray(t) ? r = i.toLocaleString(t, e) : (t === !0 || e !== void 0) && (r = i.toLocaleString(void 0, e)), r;
469
- }, Lt = (i) => {
469
+ }, _t = (i) => {
470
470
  if (typeof i == "number")
471
471
  return Math.log10(i);
472
472
  const t = i.toString(10);
473
473
  return t.length + Math.log10(`0.${t.slice(0, 15)}`);
474
- }, qt = (i) => typeof i == "number" ? Math.log(i) : Lt(i) * Math.log(10), Jt = (i, t) => {
474
+ }, re = (i) => typeof i == "number" ? Math.log(i) : _t(i) * Math.log(10), ie = (i, t) => {
475
475
  if (typeof i == "number")
476
476
  return i / t;
477
477
  const e = i / BigInt(t), r = i % BigInt(t);
478
478
  return Number(e) + Number(r) / t;
479
- }, ht = (i, t) => {
479
+ }, ut = (i, t) => {
480
480
  if (t === void 0)
481
481
  return i;
482
482
  if (typeof t != "number" || !Number.isSafeInteger(t) || t < 0)
483
483
  throw new TypeError(`Expected fixedWidth to be a non-negative integer, got ${typeof t}: ${t}`);
484
484
  return t === 0 ? i : i.length < t ? i.padStart(t, " ") : i;
485
- }, Qt = (i) => {
485
+ }, se = (i) => {
486
486
  const { minimumFractionDigits: t, maximumFractionDigits: e } = i;
487
487
  if (!(t === void 0 && e === void 0))
488
488
  return {
@@ -491,7 +491,7 @@ const _ = (i) => i > 0 ? i + d : 0, P = (i) => i > 0 ? i - d : 0, N = (i, t) =>
491
491
  roundingMode: "trunc"
492
492
  };
493
493
  };
494
- function te(i, t) {
494
+ function oe(i, t) {
495
495
  if (typeof i != "bigint" && !Number.isFinite(i))
496
496
  throw new TypeError(`Expected a finite number, got ${typeof i}: ${i}`);
497
497
  t = {
@@ -501,41 +501,41 @@ function te(i, t) {
501
501
  nonBreakingSpace: !1,
502
502
  ...t
503
503
  };
504
- const e = t.bits ? t.binary ? jt : vt : t.binary ? Wt : Zt, r = t.space ? t.nonBreakingSpace ? " " : " " : "", s = typeof i == "number" ? i === 0 : i === 0n;
504
+ const e = t.bits ? t.binary ? ee : te : t.binary ? Qt : Jt, r = t.space ? t.nonBreakingSpace ? " " : " " : "", s = typeof i == "number" ? i === 0 : i === 0n;
505
505
  if (t.signed && s) {
506
506
  const l = ` 0${r}${e[0]}`;
507
- return ht(l, t.fixedWidth);
507
+ return ut(l, t.fixedWidth);
508
508
  }
509
509
  const o = i < 0, a = o ? "-" : t.signed ? "+" : "";
510
510
  o && (i = -i);
511
- const f = Qt(t);
511
+ const f = se(t);
512
512
  let n;
513
513
  if (i < 1) {
514
- const l = lt(i, t.locale, f);
514
+ const l = ct(i, t.locale, f);
515
515
  n = a + l + r + e[0];
516
516
  } else {
517
- const l = Math.min(Math.floor(t.binary ? qt(i) / Math.log(1024) : Lt(i) / 3), e.length - 1);
518
- if (i = Jt(i, (t.binary ? 1024 : 1e3) ** l), !f) {
517
+ const l = Math.min(Math.floor(t.binary ? re(i) / Math.log(1024) : _t(i) / 3), e.length - 1);
518
+ if (i = ie(i, (t.binary ? 1024 : 1e3) ** l), !f) {
519
519
  const M = Math.max(3, Math.floor(i).toString().length);
520
520
  i = i.toPrecision(M);
521
521
  }
522
- const S = lt(Number(i), t.locale, f), z = e[l];
523
- n = a + S + r + z;
522
+ const S = ct(Number(i), t.locale, f), Y = e[l];
523
+ n = a + S + r + Y;
524
524
  }
525
- return ht(n, t.fixedWidth);
525
+ return ut(n, t.fixedWidth);
526
526
  }
527
- const ee = 8192, ct = 0, Z = 1, I = 2;
528
- class le {
527
+ const ae = 8192, yt = 0, W = 1, N = 2;
528
+ class de {
529
529
  buffers;
530
530
  onGrowBufferHandlers = [];
531
531
  isClone;
532
532
  memory;
533
533
  get bufferSize() {
534
- return this.memory.data[ct];
534
+ return this.memory.data[yt];
535
535
  }
536
536
  constructor(t) {
537
537
  if (t && "buffers" in t)
538
- this.buffers = t.buffers.map((e) => new X({
538
+ this.buffers = t.buffers.map((e) => new Z({
539
539
  buf: e,
540
540
  skipInitialization: !0
541
541
  })), this.memory = new h(this, {
@@ -544,9 +544,9 @@ class le {
544
544
  }), this.isClone = !0;
545
545
  else {
546
546
  "SharedArrayBuffer" in globalThis || console.warn("SharedArrayBuffer is not working: falling back to ArrayBuffer");
547
- const e = t?.bufferSize ?? ee;
548
- if (e > tt)
549
- throw new Error(`Buffer size ${e} is greater than max ${tt} that we can reference with pointers`);
547
+ const e = t?.bufferSize ?? ae;
548
+ if (e > rt)
549
+ throw new Error(`Buffer size ${e} is greater than max ${rt} that we can reference with pointers`);
550
550
  let r = this.createBuffer(e);
551
551
  this.buffers = [
552
552
  r
@@ -559,20 +559,20 @@ class le {
559
559
  });
560
560
  else
561
561
  throw new Error("Failed to initialize first byte from buffer");
562
- this.memory.data[ct] = e, this.memory.data[Z] = 1, this.memory.data[I] = t?.autoGrowSize ?? 100, this.isClone = !1;
562
+ this.memory.data[yt] = e, this.memory.data[W] = 1, this.memory.data[N] = t?.autoGrowSize ?? 100, this.isClone = !1;
563
563
  for (let o = 1; o < (t?.initialBuffers ?? 1); o++)
564
564
  this.buffers.push(this.createBuffer(e));
565
565
  }
566
566
  }
567
567
  addSharedBuffer(t) {
568
- this.buffers[t.bufferPosition] = new X({
568
+ this.buffers[t.bufferPosition] = new Z({
569
569
  buf: t.buffer,
570
570
  skipInitialization: !0
571
571
  });
572
572
  }
573
573
  growBuffer() {
574
574
  const t = this.createBuffer();
575
- let e = Atomics.add(this.memory.data, Z, 1);
575
+ let e = Atomics.add(this.memory.data, W, 1);
576
576
  return this.buffers[e] = t, this.onGrowBufferHandlers.forEach((r) => r({
577
577
  bufferPosition: e,
578
578
  buffer: t.buf
@@ -581,7 +581,7 @@ class le {
581
581
  createBuffer(t) {
582
582
  const e = t ?? this.bufferSize;
583
583
  let r;
584
- return "SharedArrayBuffer" in globalThis ? r = new SharedArrayBuffer(e) : r = new ArrayBuffer(e), new X({
584
+ return "SharedArrayBuffer" in globalThis ? r = new SharedArrayBuffer(e) : r = new ArrayBuffer(e), new Z({
585
585
  buf: r,
586
586
  // We can't use this unless we can 100% guarantee that every thread will stop using memory the instant it is freed
587
587
  // ex: Allocate 16 bytes. Thread A frees that allocation and then allocates 12 bytes and 4 bytes, but Thread B is mid-execution on the old allocation can changes the internal state of the 4-byte allocation breaking everything
@@ -601,13 +601,13 @@ class le {
601
601
  continue;
602
602
  const a = o.callocAs("u32", t);
603
603
  if (a)
604
- return s === this.buffers.length - 1 && Atomics.load(this.memory.data, Z) === this.buffers.length && this.memory.data[I] < 100 && this.memory.data[I] > 0 && o.top / o.end > this.memory.data[I] / 100 && this.growBuffer(), new h(this, {
604
+ return s === this.buffers.length - 1 && Atomics.load(this.memory.data, W) === this.buffers.length && this.memory.data[N] < 100 && this.memory.data[N] > 0 && o.top / o.end > this.memory.data[N] / 100 && this.growBuffer(), new h(this, {
605
605
  data: a,
606
606
  buffer: o
607
607
  });
608
608
  }
609
- if (this.buffers.length >= et)
610
- throw new Error(`Can't initialize a new buffer since it would have a position greater than the max of ${et}`);
609
+ if (this.buffers.length >= it)
610
+ throw new Error(`Can't initialize a new buffer since it would have a position greater than the max of ${it}`);
611
611
  let e = this.growBuffer();
612
612
  const r = e.callocAs("u32", t);
613
613
  if (r)
@@ -628,7 +628,7 @@ class le {
628
628
  return this.buffers[0].buf.byteLength * this.buffers.length;
629
629
  }
630
630
  prettyMemory() {
631
- return `${ut(this.currentUsed)} / ${ut(this.totalAllocated)}`;
631
+ return `${dt(this.currentUsed)} / ${dt(this.totalAllocated)}`;
632
632
  }
633
633
  getSharedMemory() {
634
634
  return {
@@ -636,16 +636,16 @@ class le {
636
636
  };
637
637
  }
638
638
  }
639
- function ut(i) {
640
- return te(i, {
639
+ function dt(i) {
640
+ return oe(i, {
641
641
  binary: !0,
642
642
  minimumFractionDigits: 1,
643
643
  maximumFractionDigits: 1
644
644
  });
645
645
  }
646
- const dt = 4, yt = 1, E = 2;
646
+ const Bt = 4, mt = 1, E = 2;
647
647
  class u {
648
- static ALLOCATE_COUNT = dt;
648
+ static ALLOCATE_COUNT = Bt;
649
649
  memory;
650
650
  /* First block
651
651
  32 index 0
@@ -688,7 +688,7 @@ class u {
688
688
  if (this.memory = t, e && "firstBlock" in e)
689
689
  this.firstBlock = new h(t, e.firstBlock), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + (E + 1) * Uint32Array.BYTES_PER_ELEMENT, 2);
690
690
  else {
691
- e && e.initWithBlock ? this.firstBlock = new h(t, e.initWithBlock) : this.firstBlock = t.allocUI32(dt), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + (E + 1) * Uint32Array.BYTES_PER_ELEMENT, 2);
691
+ e && e.initWithBlock ? this.firstBlock = new h(t, e.initWithBlock) : this.firstBlock = t.allocUI32(Bt), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + (E + 1) * Uint32Array.BYTES_PER_ELEMENT, 2);
692
692
  const r = e?.type ?? Uint32Array;
693
693
  r === Uint32Array ? this.type = 0 : r === Int32Array ? this.type = 1 : r === Float32Array && (this.type = 2), this.dataLength = e?.dataLength ?? 1;
694
694
  }
@@ -698,17 +698,17 @@ class u {
698
698
  let e = this.dataLength;
699
699
  if (t.length > e)
700
700
  throw new Error(`Can't insert ${t.length} array into shared list of ${e} dataLength`);
701
- let r = this.memory.allocUI32(yt + e), s = this.getDataBlock(r.data), o = r.pointer;
701
+ let r = this.memory.allocUI32(mt + e), s = this.getDataBlock(r.data), o = r.pointer;
702
702
  for (let n = 0; n < t.length; n++)
703
703
  s instanceof Int32Array || s instanceof Uint32Array ? Atomics.store(s, n, t[n]) : s[n] = t[n];
704
704
  let a, f = !1;
705
705
  for (; !f; )
706
- a = O(this.firstBlock.data, 1), f = Y(this.firstBlock.data, 1, o, a);
706
+ a = O(this.firstBlock.data, 1), f = H(this.firstBlock.data, 1, o, a);
707
707
  if (a) {
708
- let { bufferPosition: n, bufferByteOffset: l } = k(a), S = new Uint32Array(this.memory.buffers[n].buf, l, 1);
709
- v(S, 0, o);
708
+ let { bufferPosition: n, bufferByteOffset: l } = g(a), S = new Uint32Array(this.memory.buffers[n].buf, l, 1);
709
+ j(S, 0, o);
710
710
  } else
711
- v(this.firstBlock.data, 0, o);
711
+ j(this.firstBlock.data, 0, o);
712
712
  Atomics.add(this.firstBlock.data, E, 1);
713
713
  }
714
714
  deleteMatch(t) {
@@ -735,14 +735,14 @@ class u {
735
735
  for (; !r; ) {
736
736
  if (t = O(this.firstBlock.data, 0), e = O(this.firstBlock.data, 1), !e)
737
737
  return;
738
- r = Y(this.firstBlock.data, 1, 0, e);
738
+ r = H(this.firstBlock.data, 1, 0, e);
739
739
  }
740
740
  if (!t)
741
741
  return;
742
- Y(this.firstBlock.data, 0, 0, t);
742
+ H(this.firstBlock.data, 0, 0, t);
743
743
  let s = 0, o = t;
744
744
  for (; o; ) {
745
- let { bufferPosition: a, bufferByteOffset: f } = k(o), n = this.memory.buffers[a];
745
+ let { bufferPosition: a, bufferByteOffset: f } = g(o), n = this.memory.buffers[a];
746
746
  if (!n)
747
747
  break;
748
748
  let l = new Uint32Array(n.buf, f, 2);
@@ -756,7 +756,7 @@ class u {
756
756
  let f = this.memory.buffers[e];
757
757
  if (!f)
758
758
  return;
759
- let n = new Uint32Array(f.buf, r, 2), l = this.getDataBlock(n), S = e, z = r;
759
+ let n = new Uint32Array(f.buf, r, 2), l = this.getDataBlock(n), S = e, Y = r;
760
760
  ({ bufferPosition: e, bufferByteOffset: r } = c(n, 0));
761
761
  let M = !0;
762
762
  yield {
@@ -765,7 +765,7 @@ class u {
765
765
  deleteCurrent: () => {
766
766
  m(s, 0, e, r), r || m(this.firstBlock.data, 1, o, a), this.onDelete && this.onDelete(this.getDataBlock(n)), f.free(n.byteOffset), Atomics.sub(this.firstBlock.data, E, 1), M = !1;
767
767
  }
768
- }, M && (s = n, o = S, a = z, t++);
768
+ }, M && (s = n, o = S, a = Y, t++);
769
769
  }
770
770
  }
771
771
  forEach(t) {
@@ -778,7 +778,7 @@ class u {
778
778
  };
779
779
  }
780
780
  getDataBlock(t) {
781
- const e = t.byteOffset + yt * t.BYTES_PER_ELEMENT;
781
+ const e = t.byteOffset + mt * t.BYTES_PER_ELEMENT;
782
782
  switch (this.type) {
783
783
  case 1:
784
784
  return new Int32Array(t.buffer, e, this.dataLength);
@@ -802,8 +802,8 @@ class u {
802
802
  this.firstBlock.free();
803
803
  }
804
804
  }
805
- const Bt = 10;
806
- class St {
805
+ const bt = 10;
806
+ class Ot {
807
807
  static ALLOCATE_COUNT = 4;
808
808
  memory;
809
809
  // Memory order: Pointer, Lock, Length, MaxHash
@@ -822,15 +822,15 @@ class St {
822
822
  if (this.memory = t, e)
823
823
  this.pointerMemory = new h(t, e.firstBlock);
824
824
  else {
825
- this.pointerMemory = t.allocUI32(St.ALLOCATE_COUNT);
826
- let r = t.allocUI32(Bt);
827
- m(this.pointerMemory.data, 0, r.bufferPosition, r.bufferByteOffset), Atomics.store(this.pointerMemory.data, 3, Bt);
825
+ this.pointerMemory = t.allocUI32(Ot.ALLOCATE_COUNT);
826
+ let r = t.allocUI32(bt);
827
+ m(this.pointerMemory.data, 0, r.bufferPosition, r.bufferByteOffset), Atomics.store(this.pointerMemory.data, 3, bt);
828
828
  }
829
829
  this.lock = new Int32Array(this.pointerMemory.data.buffer, this.pointerMemory.bufferByteOffset + Uint32Array.BYTES_PER_ELEMENT, 1);
830
830
  }
831
831
  set(t, e) {
832
832
  this.length >= this.maxHash * 2 && this.growHashTable();
833
- let r = U(t);
833
+ let r = C(t);
834
834
  this.setHashKey(this.hashMemory, this.maxHash, r, e) && Atomics.add(this.pointerMemory.data, 2, 1);
835
835
  }
836
836
  setHashKey(t, e, r, s) {
@@ -849,7 +849,7 @@ class St {
849
849
  return a.deleteValue(r) && (n = !1), a.insert([r, s]), n;
850
850
  }
851
851
  get(t) {
852
- let e = U(t), r = this.hash(e, this.maxHash), s = c(this.hashMemory.data, r);
852
+ let e = C(t), r = this.hash(e, this.maxHash), s = c(this.hashMemory.data, r);
853
853
  if (s.bufferByteOffset === 0)
854
854
  return;
855
855
  let o = new u(this.memory, {
@@ -860,7 +860,7 @@ class St {
860
860
  return a[1];
861
861
  }
862
862
  has(t) {
863
- let e = U(t), r = this.hash(e, this.maxHash), s = c(this.hashMemory.data, r);
863
+ let e = C(t), r = this.hash(e, this.maxHash), s = c(this.hashMemory.data, r);
864
864
  if (s.bufferByteOffset === 0)
865
865
  return !1;
866
866
  let o = new u(this.memory, {
@@ -872,7 +872,7 @@ class St {
872
872
  return !1;
873
873
  }
874
874
  delete(t) {
875
- let e = U(t), r = this.hash(e, this.maxHash), s = c(this.hashMemory.data, r);
875
+ let e = C(t), r = this.hash(e, this.maxHash), s = c(this.hashMemory.data, r);
876
876
  if (s.bufferByteOffset === 0)
877
877
  return !1;
878
878
  let o = new u(this.memory, {
@@ -917,10 +917,10 @@ class St {
917
917
  };
918
918
  }
919
919
  }
920
- function U(i) {
921
- return typeof i == "number" ? i : typeof i == "string" ? re(i) : i;
920
+ function C(i) {
921
+ return typeof i == "number" ? i : typeof i == "string" ? ne(i) : i;
922
922
  }
923
- function re(i) {
923
+ function ne(i) {
924
924
  let t = i.length, e = 17 ^ t, r = 0, s;
925
925
  for (; t >= 4; )
926
926
  s = i.charCodeAt(r) & 255 | (i.charCodeAt(++r) & 255) << 8 | (i.charCodeAt(++r) & 255) << 16 | (i.charCodeAt(++r) & 255) << 14, s = (s & 65535) * 1540483477 + (((s >>> 16) * 1540483477 & 65535) << 16), s ^= s >>> 14, s = (s & 65535) * 1540483477 + (((s >>> 16) * 1540483477 & 65535) << 16), e = (e & 65535) * 1540483477 + (((e >>> 16) * 1540483477 & 65535) << 16) ^ s, t -= 4, ++r;
@@ -934,7 +934,7 @@ function re(i) {
934
934
  }
935
935
  return e ^= e >>> 13, e = (e & 65535) * 1540483477 + (((e >>> 16) * 1540483477 & 65535) << 16), e ^= e >>> 15, e = e >>> 0, e;
936
936
  }
937
- class he {
937
+ class Be {
938
938
  memory;
939
939
  list;
940
940
  constructor(t, e) {
@@ -977,11 +977,11 @@ class he {
977
977
  this.list.free();
978
978
  }
979
979
  }
980
- const mt = {
980
+ const At = {
981
981
  1: Uint8Array,
982
982
  2: Uint16Array
983
- }, C = 0, bt = 1, At = 2, kt = 3;
984
- class _t {
983
+ }, U = 0, gt = 1, kt = 2, Et = 3;
984
+ class Mt {
985
985
  static ALLOCATE_COUNT = 4;
986
986
  memory;
987
987
  allocatedMemory;
@@ -989,11 +989,11 @@ class _t {
989
989
  cachedPointer;
990
990
  cachedString;
991
991
  constructor(t, e) {
992
- this.memory = t, typeof e == "string" ? (this.allocatedMemory = this.memory.allocUI32(_t.ALLOCATE_COUNT), this.lock = new Int32Array(this.allocatedMemory.data.buffer, this.allocatedMemory.bufferByteOffset + kt * this.allocatedMemory.data.BYTES_PER_ELEMENT), this.updateString(e)) : (this.allocatedMemory = new h(t, e), this.lock = new Int32Array(this.allocatedMemory.data.buffer, this.allocatedMemory.bufferByteOffset + kt * this.allocatedMemory.data.BYTES_PER_ELEMENT), "value" in e && this.updateString(e.value));
992
+ this.memory = t, typeof e == "string" ? (this.allocatedMemory = this.memory.allocUI32(Mt.ALLOCATE_COUNT), this.lock = new Int32Array(this.allocatedMemory.data.buffer, this.allocatedMemory.bufferByteOffset + Et * this.allocatedMemory.data.BYTES_PER_ELEMENT), this.updateString(e)) : (this.allocatedMemory = new h(t, e), this.lock = new Int32Array(this.allocatedMemory.data.buffer, this.allocatedMemory.bufferByteOffset + Et * this.allocatedMemory.data.BYTES_PER_ELEMENT), "value" in e && this.updateString(e.value));
993
993
  }
994
994
  updateString(t) {
995
995
  let e = this.createString(t);
996
- x(this.lock), v(this.allocatedMemory.data, C, e.pointer), Atomics.store(this.allocatedMemory.data, bt, t.length), Atomics.store(this.allocatedMemory.data, At, e.charType), A(this.lock), this.cachedPointer = e.pointer, this.cachedString = t;
996
+ x(this.lock), j(this.allocatedMemory.data, U, e.pointer), Atomics.store(this.allocatedMemory.data, gt, t.length), Atomics.store(this.allocatedMemory.data, kt, e.charType), A(this.lock), this.cachedPointer = e.pointer, this.cachedString = t;
997
997
  }
998
998
  createString(t) {
999
999
  if (t === "")
@@ -1005,7 +1005,7 @@ class _t {
1005
1005
  let e = [];
1006
1006
  for (let n = 0; n < t.length; n++)
1007
1007
  e.push(t.charCodeAt(n));
1008
- let s = Math.max(...e) > 255 ? 2 : 1, o = mt[s], a = this.memory.allocUI32(Math.ceil(t.length / (4 / o.BYTES_PER_ELEMENT))), f = new o(a.data.buffer, a.data.byteOffset, t.length);
1008
+ let s = Math.max(...e) > 255 ? 2 : 1, o = At[s], a = this.memory.allocUI32(Math.ceil(t.length / (4 / o.BYTES_PER_ELEMENT))), f = new o(a.data.buffer, a.data.byteOffset, t.length);
1009
1009
  for (let n = 0; n < t.length; n++)
1010
1010
  f[n] = t.charCodeAt(n);
1011
1011
  return {
@@ -1014,18 +1014,18 @@ class _t {
1014
1014
  };
1015
1015
  }
1016
1016
  get value() {
1017
- let t = O(this.allocatedMemory.data, C);
1017
+ let t = O(this.allocatedMemory.data, U);
1018
1018
  if (this.cachedPointer === t && this.cachedString !== void 0)
1019
1019
  return this.cachedString;
1020
1020
  if (t === 0)
1021
1021
  return "";
1022
- let { bufferPosition: e, bufferByteOffset: r } = k(t);
1022
+ let { bufferPosition: e, bufferByteOffset: r } = g(t);
1023
1023
  x(this.lock);
1024
- let s = Atomics.load(this.allocatedMemory.data, At), o = mt[s], a = Atomics.load(this.allocatedMemory.data, bt), f = new o(this.memory.buffers[e].buf, r, a), n = String.fromCharCode.apply(null, f);
1024
+ let s = Atomics.load(this.allocatedMemory.data, kt), o = At[s], a = Atomics.load(this.allocatedMemory.data, gt), f = new o(this.memory.buffers[e].buf, r, a), n = String.fromCharCode.apply(null, f);
1025
1025
  return A(this.lock), this.cachedPointer = t, this.cachedString = n, n;
1026
1026
  }
1027
1027
  set value(t) {
1028
- let { bufferPosition: e, bufferByteOffset: r } = c(this.allocatedMemory.data, C);
1028
+ let { bufferPosition: e, bufferByteOffset: r } = c(this.allocatedMemory.data, U);
1029
1029
  this.updateString(t), r && this.memory.buffers[e].free(r);
1030
1030
  }
1031
1031
  getSharedMemory() {
@@ -1035,12 +1035,12 @@ class _t {
1035
1035
  return this.allocatedMemory.pointer;
1036
1036
  }
1037
1037
  free() {
1038
- let { bufferPosition: t, bufferByteOffset: e } = c(this.allocatedMemory.data, C);
1038
+ let { bufferPosition: t, bufferByteOffset: e } = c(this.allocatedMemory.data, U);
1039
1039
  e && this.memory.buffers[t].free(e), this.allocatedMemory.free();
1040
1040
  }
1041
1041
  }
1042
- const w = 0, b = 1, gt = 2, Et = 3, W = 4;
1043
- class y {
1042
+ const w = 0, b = 1, wt = 2, pt = 3, v = 4;
1043
+ class d {
1044
1044
  static ALLOCATE_COUNT = 4;
1045
1045
  memory;
1046
1046
  // Pointer, List Length, Buffer Length, Type/DataLength
@@ -1062,10 +1062,10 @@ class y {
1062
1062
  Atomics.store(this.uint16Array, 1, t);
1063
1063
  }
1064
1064
  get bufferLength() {
1065
- return Atomics.load(this.firstBlock.data, gt);
1065
+ return Atomics.load(this.firstBlock.data, wt);
1066
1066
  }
1067
1067
  set bufferLength(t) {
1068
- Atomics.store(this.firstBlock.data, gt, t);
1068
+ Atomics.store(this.firstBlock.data, wt, t);
1069
1069
  }
1070
1070
  get pointer() {
1071
1071
  return this.firstBlock.pointer;
@@ -1074,17 +1074,17 @@ class y {
1074
1074
  cachedPointer;
1075
1075
  constructor(t, e) {
1076
1076
  if (this.memory = t, e && "firstBlock" in e) {
1077
- if (this.firstBlock = new h(t, e.firstBlock), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + Et * Uint32Array.BYTES_PER_ELEMENT, 2), "type" in e || "dataLength" in e) {
1078
- let r = t.allocUI32(W * (e.dataLength ?? 1));
1079
- m(this.firstBlock.data, w, r.bufferPosition, r.bufferByteOffset), this.bufferLength = W, this.dataLength = e.dataLength ?? 1;
1077
+ if (this.firstBlock = new h(t, e.firstBlock), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + pt * Uint32Array.BYTES_PER_ELEMENT, 2), "type" in e || "dataLength" in e) {
1078
+ let r = t.allocUI32(v * (e.dataLength ?? 1));
1079
+ m(this.firstBlock.data, w, r.bufferPosition, r.bufferByteOffset), this.bufferLength = v, this.dataLength = e.dataLength ?? 1;
1080
1080
  }
1081
1081
  if ("type" in e) {
1082
1082
  const r = e?.type ?? Uint32Array;
1083
1083
  r === Uint32Array ? this.type = 0 : r === Int32Array ? this.type = 1 : r === Float32Array && (this.type = 2);
1084
1084
  }
1085
1085
  } else {
1086
- this.firstBlock = t.allocUI32(y.ALLOCATE_COUNT), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + Et * Uint32Array.BYTES_PER_ELEMENT, 2);
1087
- let r = e?.dataLength ?? 1, s = e?.bufferLength ?? W, o = t.allocUI32(s * r);
1086
+ this.firstBlock = t.allocUI32(d.ALLOCATE_COUNT), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + pt * Uint32Array.BYTES_PER_ELEMENT, 2);
1087
+ let r = e?.dataLength ?? 1, s = e?.bufferLength ?? v, o = t.allocUI32(s * r);
1088
1088
  m(this.firstBlock.data, w, o.bufferPosition, o.bufferByteOffset), this.bufferLength = s;
1089
1089
  const a = e?.type ?? Uint32Array;
1090
1090
  a === Uint32Array ? this.type = 0 : a === Int32Array ? this.type = 1 : a === Float32Array && (this.type = 2), this.dataLength = r;
@@ -1139,7 +1139,7 @@ class y {
1139
1139
  let t = Atomics.load(this.firstBlock.data, w);
1140
1140
  if (this.cachedPointer === t && this.cachedFullDataBlock)
1141
1141
  return this.cachedFullDataBlock;
1142
- let e = k(t), r = new h(this.memory, e), s;
1142
+ let e = g(t), r = new h(this.memory, e), s;
1143
1143
  switch (this.type) {
1144
1144
  case 1:
1145
1145
  s = new Int32Array(r.data.buffer, r.bufferByteOffset, this.dataLength * this.bufferLength);
@@ -1186,7 +1186,7 @@ class y {
1186
1186
  };
1187
1187
  }
1188
1188
  }
1189
- class ce {
1189
+ class me {
1190
1190
  static ALLOCATE_COUNT = u.ALLOCATE_COUNT;
1191
1191
  heap;
1192
1192
  list;
@@ -1257,9 +1257,9 @@ class ce {
1257
1257
  this.list.free(), this.cache.clear();
1258
1258
  }
1259
1259
  }
1260
- const D = 0, wt = 1, pt = 2, q = 3, Tt = q + y.ALLOCATE_COUNT;
1261
- class Ot {
1262
- static ALLOCATE_COUNT = 3 + y.ALLOCATE_COUNT * 2;
1260
+ const F = 0, Tt = 1, Lt = 2, J = 3, St = J + d.ALLOCATE_COUNT;
1261
+ class It {
1262
+ static ALLOCATE_COUNT = 3 + d.ALLOCATE_COUNT * 2;
1263
1263
  memory;
1264
1264
  // Current Length, Type/DataLength, MaxChunkLength, Pointer vector, Recycle vector
1265
1265
  firstBlock;
@@ -1268,13 +1268,13 @@ class Ot {
1268
1268
  recycleVector;
1269
1269
  cachedFullDataBlock = {};
1270
1270
  get length() {
1271
- return Atomics.load(this.firstBlock.data, D) - this.recycleVector.length;
1271
+ return Atomics.load(this.firstBlock.data, F) - this.recycleVector.length;
1272
1272
  }
1273
1273
  get maxChunkSize() {
1274
- return this.firstBlock.data[pt];
1274
+ return this.firstBlock.data[Lt];
1275
1275
  }
1276
1276
  set maxChunkSize(t) {
1277
- Atomics.store(this.firstBlock.data, pt, t);
1277
+ Atomics.store(this.firstBlock.data, Lt, t);
1278
1278
  }
1279
1279
  get type() {
1280
1280
  return this.uint16Array[0];
@@ -1291,39 +1291,43 @@ class Ot {
1291
1291
  get bufferLength() {
1292
1292
  return this.maxChunkSize * this.pointerVector.length;
1293
1293
  }
1294
+ get byteMultipler() {
1295
+ return this.type === 3 ? 2 : 1;
1296
+ }
1294
1297
  constructor(t, e) {
1295
1298
  if (this.memory = t, e && "firstBlock" in e)
1296
- this.firstBlock = new h(t, e.firstBlock), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + wt * Uint32Array.BYTES_PER_ELEMENT, 2), this.pointerVector = new y(t, {
1299
+ this.firstBlock = new h(t, e.firstBlock), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + Tt * Uint32Array.BYTES_PER_ELEMENT, 2), this.pointerVector = new d(t, {
1297
1300
  firstBlock: {
1298
1301
  bufferPosition: this.firstBlock.bufferPosition,
1299
- bufferByteOffset: this.firstBlock.bufferByteOffset + q * Uint32Array.BYTES_PER_ELEMENT
1302
+ bufferByteOffset: this.firstBlock.bufferByteOffset + J * Uint32Array.BYTES_PER_ELEMENT
1300
1303
  }
1301
- }), this.recycleVector = new y(t, {
1304
+ }), this.recycleVector = new d(t, {
1302
1305
  firstBlock: {
1303
1306
  bufferPosition: this.firstBlock.bufferPosition,
1304
- bufferByteOffset: this.firstBlock.bufferByteOffset + Tt * Uint32Array.BYTES_PER_ELEMENT
1307
+ bufferByteOffset: this.firstBlock.bufferByteOffset + St * Uint32Array.BYTES_PER_ELEMENT
1305
1308
  }
1306
1309
  });
1307
1310
  else {
1308
- this.firstBlock = t.allocUI32(Ot.ALLOCATE_COUNT), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + wt * Uint32Array.BYTES_PER_ELEMENT, 2);
1311
+ this.firstBlock = t.allocUI32(It.ALLOCATE_COUNT), this.uint16Array = new Uint16Array(this.firstBlock.data.buffer, this.firstBlock.bufferByteOffset + Tt * Uint32Array.BYTES_PER_ELEMENT, 2);
1309
1312
  let r = e?.dataLength ?? 1, s = e?.maxChunkSize ?? 100;
1310
- this.pointerVector = new y(t, {
1313
+ this.pointerVector = new d(t, {
1311
1314
  type: Uint32Array,
1312
1315
  firstBlock: {
1313
1316
  bufferPosition: this.firstBlock.bufferPosition,
1314
- bufferByteOffset: this.firstBlock.bufferByteOffset + q * Uint32Array.BYTES_PER_ELEMENT
1317
+ bufferByteOffset: this.firstBlock.bufferByteOffset + J * Uint32Array.BYTES_PER_ELEMENT
1315
1318
  }
1316
- }), this.recycleVector = new y(t, {
1319
+ }), this.recycleVector = new d(t, {
1317
1320
  type: Uint32Array,
1318
1321
  firstBlock: {
1319
1322
  bufferPosition: this.firstBlock.bufferPosition,
1320
- bufferByteOffset: this.firstBlock.bufferByteOffset + Tt * Uint32Array.BYTES_PER_ELEMENT
1321
- }
1323
+ bufferByteOffset: this.firstBlock.bufferByteOffset + St * Uint32Array.BYTES_PER_ELEMENT
1324
+ },
1325
+ bufferLength: e?.recycleBufferLength
1322
1326
  });
1323
- let o = t.allocUI32(s * r);
1324
- this.pointerVector.push(o.pointer);
1325
- const a = e?.type ?? Uint32Array;
1326
- a === Uint32Array ? this.type = 0 : a === Int32Array ? this.type = 1 : a === Float32Array && (this.type = 2), this.dataLength = r, this.maxChunkSize = s;
1327
+ const o = e?.type ?? Uint32Array;
1328
+ o === Uint32Array ? this.type = 0 : o === Int32Array ? this.type = 1 : o === Float32Array ? this.type = 2 : o === Float64Array && (this.type = 3), this.dataLength = r, this.maxChunkSize = s;
1329
+ let a = t.allocUI32(s * r * this.byteMultipler);
1330
+ this.pointerVector.push(a.pointer);
1327
1331
  }
1328
1332
  }
1329
1333
  at(t) {
@@ -1342,7 +1346,7 @@ class Ot {
1342
1346
  if (t.length > e)
1343
1347
  throw new Error(`Can't insert ${t.length} array into shared list of ${e} dataLength`);
1344
1348
  let r;
1345
- this.recycleVector.length ? r = this.recycleVector.pop()[0] : r = Atomics.add(this.firstBlock.data, D, 1);
1349
+ this.recycleVector.length ? r = this.recycleVector.pop()[0] : r = Atomics.add(this.firstBlock.data, F, 1);
1346
1350
  let s = this.getFullDataBlock(r), o = r % this.maxChunkSize;
1347
1351
  return s.set(t, e * o), r;
1348
1352
  }
@@ -1350,12 +1354,15 @@ class Ot {
1350
1354
  this.recycleVector.push(t);
1351
1355
  }
1352
1356
  clear() {
1353
- this.firstBlock.data[D] = 0;
1357
+ this.firstBlock.data[F] = 0, this.recycleVector.clear();
1354
1358
  }
1355
1359
  *[Symbol.iterator]() {
1356
- let t = [...this.recycleVector].reduce((s, o) => (s.push(...o), s), []), e = this.getFullDataBlock(0), r = 0;
1357
- for (let s = 0; s < Atomics.load(this.firstBlock.data, D); s++)
1358
- if (!t.includes(s)) {
1360
+ const t = {};
1361
+ for (let s of this.recycleVector)
1362
+ t[s[0]] = !0;
1363
+ let e = this.getFullDataBlock(0), r = 0;
1364
+ for (let s = 0; s < Atomics.load(this.firstBlock.data, F); s++)
1365
+ if (!t[s]) {
1359
1366
  let o = Math.floor(s / this.maxChunkSize);
1360
1367
  o !== r && (e = this.getFullDataBlock(s), r = o), yield this.getDataBlock(e, s % this.maxChunkSize);
1361
1368
  }
@@ -1365,10 +1372,10 @@ class Ot {
1365
1372
  if (r)
1366
1373
  return r;
1367
1374
  if (e >= this.pointerVector.length) {
1368
- let a = this.memory.allocUI32(this.maxChunkSize * this.dataLength);
1375
+ let a = this.memory.allocUI32(this.maxChunkSize * this.dataLength * this.byteMultipler);
1369
1376
  this.pointerVector.push(a.pointer);
1370
1377
  }
1371
- let s = new h(this.memory, k(this.pointerVector.get(e))), o;
1378
+ let s = new h(this.memory, g(this.pointerVector.get(e))), o;
1372
1379
  switch (this.type) {
1373
1380
  case 1:
1374
1381
  o = new Int32Array(s.data.buffer, s.bufferByteOffset, this.dataLength * this.maxChunkSize);
@@ -1379,6 +1386,9 @@ class Ot {
1379
1386
  case 2:
1380
1387
  o = new Float32Array(s.data.buffer, s.bufferByteOffset, this.dataLength * this.maxChunkSize);
1381
1388
  break;
1389
+ case 3:
1390
+ o = new Float64Array(s.data.buffer, s.bufferByteOffset, this.dataLength * this.maxChunkSize);
1391
+ break;
1382
1392
  default:
1383
1393
  throw new Error(`Unknown data block type ${this.type}`);
1384
1394
  }
@@ -1392,7 +1402,7 @@ class Ot {
1392
1402
  this.recycleVector.free();
1393
1403
  for (let t of this.pointerVector) {
1394
1404
  let e = t[0];
1395
- new h(this.memory, k(e)).free();
1405
+ new h(this.memory, g(e)).free();
1396
1406
  }
1397
1407
  this.pointerVector.free(), this.firstBlock.free();
1398
1408
  }
@@ -1402,133 +1412,158 @@ class Ot {
1402
1412
  };
1403
1413
  }
1404
1414
  }
1405
- const Mt = new ArrayBuffer(4), Pt = new Uint32Array(Mt), R = new Uint16Array(Mt);
1406
- function ue(i, t) {
1407
- return ie(Atomics.load(i, t));
1415
+ const Pt = new ArrayBuffer(4), Nt = new Uint32Array(Pt), R = new Uint16Array(Pt);
1416
+ function be(i, t) {
1417
+ return fe(Atomics.load(i, t));
1408
1418
  }
1409
- function de(i, t, e, r) {
1410
- Atomics.store(i, t, se(e, r));
1419
+ function Ae(i, t, e, r) {
1420
+ Atomics.store(i, t, le(e, r));
1411
1421
  }
1412
- function ie(i) {
1413
- return Pt[0] = i, [R[0], R[1]];
1422
+ function fe(i) {
1423
+ return Nt[0] = i, [R[0], R[1]];
1414
1424
  }
1415
- function se(i, t) {
1416
- return R[0] = i, R[1] = t, Pt[0];
1425
+ function le(i, t) {
1426
+ return R[0] = i, R[1] = t, Nt[0];
1417
1427
  }
1418
- const Nt = new ArrayBuffer(8), It = new BigUint64Array(Nt), B = new Uint16Array(Nt);
1419
- function ye(i, t) {
1420
- return It[0] = Atomics.load(i, t), [B[0], B[1], B[2], B[3]];
1428
+ const Ct = new ArrayBuffer(8), Ut = new BigUint64Array(Ct), B = new Uint16Array(Ct);
1429
+ function ge(i, t) {
1430
+ return Ut[0] = Atomics.load(i, t), [B[0], B[1], B[2], B[3]];
1421
1431
  }
1422
- function Be(i, t, e, r, s, o = 0) {
1423
- B[0] = e, B[1] = r, B[2] = s, B[3] = o, Atomics.store(i, t, It[0]);
1432
+ function ke(i, t, e, r, s, o = 0) {
1433
+ B[0] = e, B[1] = r, B[2] = s, B[3] = o, Atomics.store(i, t, Ut[0]);
1424
1434
  }
1425
- const Ut = new ArrayBuffer(4), Ct = new Float32Array(Ut), Dt = new Int32Array(Ut);
1426
- function Ft(i, t) {
1427
- return i instanceof Float32Array && (i = new Int32Array(i.buffer, i.byteOffset, i.length)), Q(Atomics.load(i, t));
1435
+ const Ft = new ArrayBuffer(4), Dt = new Float32Array(Ft), xt = new Int32Array(Ft);
1436
+ function Rt(i, t) {
1437
+ return i instanceof Float32Array && (i = new Int32Array(i.buffer, i.byteOffset, i.length)), tt(Atomics.load(i, t));
1428
1438
  }
1429
- function me(i, t, e) {
1439
+ function Ee(i, t, e) {
1430
1440
  i instanceof Float32Array && (i = new Int32Array(i.buffer, i.byteOffset, i.length)), Atomics.store(i, t, $(e));
1431
1441
  }
1432
- function Q(i) {
1433
- return Dt[0] = i, Ct[0];
1442
+ function tt(i) {
1443
+ return xt[0] = i, Dt[0];
1434
1444
  }
1435
1445
  function $(i) {
1436
- return Ct[0] = i, Dt[0];
1446
+ return Dt[0] = i, xt[0];
1437
1447
  }
1438
- function be(i, t, e) {
1439
- return i instanceof Float32Array && (i = new Int32Array(i.buffer, i.byteOffset, i.length)), Q(Atomics.exchange(i, t, $(e)));
1448
+ function we(i, t, e) {
1449
+ return i instanceof Float32Array && (i = new Int32Array(i.buffer, i.byteOffset, i.length)), tt(Atomics.exchange(i, t, $(e)));
1440
1450
  }
1441
- function xt(i, t, e, r) {
1442
- return i instanceof Float32Array && (i = new Int32Array(i.buffer, i.byteOffset, i.length)), Q(Atomics.compareExchange(i, t, $(e), $(r)));
1451
+ function $t(i, t, e, r) {
1452
+ return i instanceof Float32Array && (i = new Int32Array(i.buffer, i.byteOffset, i.length)), tt(Atomics.compareExchange(i, t, $(e), $(r)));
1443
1453
  }
1444
- function Ae(i, t, e, r) {
1454
+ function pe(i, t, e, r) {
1445
1455
  let s, o;
1446
1456
  do
1447
1457
  s = Atomics.load(i, t), o = Math.min(s + e, r);
1448
1458
  while (Atomics.compareExchange(i, t, s, o) !== s);
1449
1459
  }
1450
- function ke(i, t, e, r) {
1460
+ function Te(i, t, e, r) {
1451
1461
  let s, o;
1452
1462
  do
1453
1463
  s = Atomics.load(i, t), o = Math.max(s - e, r);
1454
1464
  while (Atomics.compareExchange(i, t, s, o) !== s);
1455
1465
  }
1456
- function ge(i, t, e, r) {
1466
+ function Le(i, t, e, r) {
1457
1467
  let s, o;
1458
1468
  do
1459
- s = Ft(i, t), o = Math.min(s + e, r);
1460
- while (xt(i, t, s, o) !== s);
1469
+ s = Rt(i, t), o = Math.min(s + e, r);
1470
+ while ($t(i, t, s, o) !== s);
1461
1471
  }
1462
- function Ee(i, t, e, r) {
1472
+ function Se(i, t, e, r) {
1463
1473
  let s, o;
1464
1474
  do
1465
- s = Ft(i, t), o = Math.max(s - e, r);
1466
- while (xt(i, t, s, o) !== s);
1475
+ s = Rt(i, t), o = Math.max(s - e, r);
1476
+ while ($t(i, t, s, o) !== s);
1477
+ }
1478
+ const zt = new ArrayBuffer(8), Yt = new Float64Array(zt), Ht = new BigInt64Array(zt);
1479
+ function _e(i, t) {
1480
+ return i instanceof Float64Array && (i = new BigInt64Array(i.buffer, i.byteOffset, i.length)), et(Atomics.load(i, t));
1481
+ }
1482
+ function Oe(i, t, e) {
1483
+ i instanceof Float64Array && (i = new BigInt64Array(i.buffer, i.byteOffset, i.length)), Atomics.store(i, t, z(e));
1484
+ }
1485
+ function et(i) {
1486
+ return Ht[0] = i, Yt[0];
1487
+ }
1488
+ function z(i) {
1489
+ return Yt[0] = i, Ht[0];
1490
+ }
1491
+ function Me(i, t, e) {
1492
+ return i instanceof Float64Array && (i = new BigInt64Array(i.buffer, i.byteOffset, i.length)), et(Atomics.exchange(i, t, z(e)));
1493
+ }
1494
+ function Ie(i, t, e, r) {
1495
+ return i instanceof Float64Array && (i = new BigInt64Array(i.buffer, i.byteOffset, i.length)), et(Atomics.compareExchange(i, t, z(e), z(r)));
1467
1496
  }
1468
- const p = 0, J = 1, L = 2;
1469
- function we(i, t = 0) {
1470
- for (; Atomics.compareExchange(i, t, p, J) === L; )
1497
+ const p = 0, Q = 1, L = 2;
1498
+ function Pe(i, t = 0) {
1499
+ for (; Atomics.compareExchange(i, t, p, Q) === L; )
1471
1500
  Atomics.wait(i, t, L);
1472
1501
  Atomics.add(i, t + 1, 1);
1473
1502
  }
1474
- function pe(i, t = 0) {
1503
+ function Ne(i, t = 0) {
1475
1504
  let e = Atomics.compareExchange(i, t, p, L);
1476
1505
  for (; e !== p; )
1477
1506
  Atomics.wait(i, t, e), e = Atomics.compareExchange(i, t, p, L);
1478
1507
  }
1479
- function Te(i, t = 0) {
1480
- Atomics.sub(i, t + 1, 1) - 1 <= 0 && (Atomics.compareExchange(i, t, J, p) !== J && console.warn("We are unlocking when it was not read locked!"), Atomics.notify(i, t));
1508
+ function Ce(i, t = 0) {
1509
+ Atomics.sub(i, t + 1, 1) - 1 <= 0 && (Atomics.compareExchange(i, t, Q, p) !== Q && console.warn("We are unlocking when it was not read locked!"), Atomics.notify(i, t));
1481
1510
  }
1482
- function Le(i, t = 0) {
1511
+ function Ue(i, t = 0) {
1483
1512
  Atomics.compareExchange(i, t, L, p) !== L && console.warn("We are unlocking when it was not write locked!"), Atomics.notify(i, t);
1484
1513
  }
1485
- const Se = 2;
1514
+ const Fe = 2;
1486
1515
  export {
1487
1516
  h as AllocatedMemory,
1488
- oe as BYTE_OFFSET_BIT_COUNT,
1489
- ce as CachedItemList,
1490
- tt as MAX_BYTE_OFFSET_LENGTH,
1491
- et as MAX_POSITION_LENGTH,
1492
- X as MemoryBuffer,
1493
- le as MemoryHeap,
1494
- ae as POSITION_BIT_COUNT,
1495
- Se as READ_WRITE_LOCK_ALLOCATE_COUNT,
1496
- fe as SIMPLE_LOCK_ALLOCATE_COUNT,
1517
+ he as BYTE_OFFSET_BIT_COUNT,
1518
+ me as CachedItemList,
1519
+ rt as MAX_BYTE_OFFSET_LENGTH,
1520
+ it as MAX_POSITION_LENGTH,
1521
+ Z as MemoryBuffer,
1522
+ de as MemoryHeap,
1523
+ ce as POSITION_BIT_COUNT,
1524
+ Fe as READ_WRITE_LOCK_ALLOCATE_COUNT,
1525
+ ye as SIMPLE_LOCK_ALLOCATE_COUNT,
1497
1526
  u as SharedList,
1498
- St as SharedMap,
1499
- he as SharedPointerList,
1500
- Ot as SharedPool,
1501
- _t as SharedString,
1502
- y as SharedVector,
1503
- ge as addAtomicFloat32,
1504
- Ae as addAtomicInt,
1505
- xt as compareExchangeFloat32,
1506
- se as convert16To32,
1507
- ie as convert32To16,
1527
+ Ot as SharedMap,
1528
+ Be as SharedPointerList,
1529
+ It as SharedPool,
1530
+ Mt as SharedString,
1531
+ d as SharedVector,
1532
+ Le as addAtomicFloat32,
1533
+ pe as addAtomicInt,
1534
+ $t as compareExchangeFloat32,
1535
+ Ie as compareExchangeFloat64,
1536
+ le as convert16To32,
1537
+ fe as convert32To16,
1508
1538
  $ as convertFloat32ToInt32,
1509
- Q as convertInt32ToFloat32,
1539
+ z as convertFloat64ToInt64,
1540
+ tt as convertInt32ToFloat32,
1541
+ et as convertInt64ToFloat64,
1510
1542
  T as createPointer,
1511
- be as exchangeFloat32,
1512
- k as getPointer,
1513
- ue as load16From32,
1514
- ye as load16From64,
1515
- Ft as loadFloat32,
1543
+ we as exchangeFloat32,
1544
+ Me as exchangeFloat64,
1545
+ g as getPointer,
1546
+ be as load16From32,
1547
+ ge as load16From64,
1548
+ Rt as loadFloat32,
1549
+ _e as loadFloat64,
1516
1550
  c as loadPointer,
1517
1551
  O as loadRawPointer,
1518
1552
  x as lock,
1519
- we as readLock,
1520
- Te as readUnlock,
1521
- ne as replacePointer,
1522
- Y as replaceRawPointer,
1523
- de as store16In32,
1524
- Be as store16In64,
1525
- me as storeFloat32,
1553
+ Pe as readLock,
1554
+ Ce as readUnlock,
1555
+ ue as replacePointer,
1556
+ H as replaceRawPointer,
1557
+ Ae as store16In32,
1558
+ ke as store16In64,
1559
+ Ee as storeFloat32,
1560
+ Oe as storeFloat64,
1526
1561
  m as storePointer,
1527
- v as storeRawPointer,
1528
- Ee as subtractAtomicFloat,
1529
- ke as subtractAtomicInt,
1562
+ j as storeRawPointer,
1563
+ Se as subtractAtomicFloat,
1564
+ Te as subtractAtomicInt,
1530
1565
  A as unlock,
1531
- pe as writeLock,
1532
- Le as writeUnlock
1566
+ Ne as writeLock,
1567
+ Ue as writeUnlock
1533
1568
  };
1534
1569
  //# sourceMappingURL=shared-memory-objects.js.map