@woosh/meep-engine 2.117.17 → 2.117.19

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 (45) hide show
  1. package/build/meep.cjs +115 -112
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +115 -112
  4. package/package.json +1 -1
  5. package/src/core/collection/map/HashMap.d.ts.map +1 -1
  6. package/src/core/collection/map/HashMap.js +110 -108
  7. package/src/engine/graphics/render/frame_graph/RenderGraph.d.ts +6 -9
  8. package/src/engine/graphics/render/frame_graph/RenderGraph.d.ts.map +1 -1
  9. package/src/engine/graphics/render/frame_graph/RenderGraph.js +17 -23
  10. package/src/engine/graphics/render/frame_graph/RenderPass.d.ts +50 -10
  11. package/src/engine/graphics/render/frame_graph/RenderPass.d.ts.map +1 -1
  12. package/src/engine/graphics/render/frame_graph/RenderPass.js +1 -0
  13. package/src/engine/graphics/render/frame_graph/RenderPassNode.d.ts +2 -2
  14. package/src/engine/graphics/render/frame_graph/RenderPassNode.d.ts.map +1 -1
  15. package/src/engine/graphics/render/frame_graph/RenderPassNode.js +4 -2
  16. package/src/engine/graphics/material/manager/ManagedTexture.d.ts +0 -3
  17. package/src/engine/graphics/material/manager/ManagedTexture.d.ts.map +0 -1
  18. package/src/engine/graphics/material/manager/ManagedTexture.js +0 -3
  19. package/src/engine/graphics/material/manager/TextureManager.d.ts +0 -3
  20. package/src/engine/graphics/material/manager/TextureManager.d.ts.map +0 -1
  21. package/src/engine/graphics/material/manager/TextureManager.js +0 -3
  22. package/src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.d.ts +0 -9
  23. package/src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.d.ts.map +0 -1
  24. package/src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.js +0 -21
  25. package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.d.ts +0 -11
  26. package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.d.ts.map +0 -1
  27. package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.js +0 -33
  28. package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.d.ts +0 -9
  29. package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.d.ts.map +0 -1
  30. package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.js +0 -23
  31. package/src/engine/graphics/render/frame_graph/sample/deferred/run.d.ts +0 -2
  32. package/src/engine/graphics/render/frame_graph/sample/deferred/run.d.ts.map +0 -1
  33. package/src/engine/graphics/render/frame_graph/sample/deferred/run.js +0 -59
  34. package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.d.ts +0 -13
  35. package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.d.ts.map +0 -1
  36. package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.js +0 -41
  37. package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.d.ts +0 -6
  38. package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.d.ts.map +0 -1
  39. package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.js +0 -10
  40. package/src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.d.ts +0 -5
  41. package/src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.d.ts.map +0 -1
  42. package/src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.js +0 -5
  43. package/src/engine/graphics/render/frame_graph/sample/meep-v1/render.d.ts +0 -2
  44. package/src/engine/graphics/render/frame_graph/sample/meep-v1/render.d.ts.map +0 -1
  45. package/src/engine/graphics/render/frame_graph/sample/meep-v1/render.js +0 -7
package/build/meep.cjs CHANGED
@@ -59947,20 +59947,6 @@ function invokeObjectHash(object) {
59947
59947
  return object.hash();
59948
59948
  }
59949
59949
 
59950
- /**
59951
- * @template T
59952
- * @param {T[]} array
59953
- * @param {number} index0
59954
- * @param {number} index1
59955
- */
59956
- function array_swap_one(array, index0, index1) {
59957
-
59958
- const t = array[index0];
59959
-
59960
- array[index0] = array[index1];
59961
- array[index1] = t;
59962
- }
59963
-
59964
59950
  /**
59965
59951
  * @example `const my_array = new ( UintArrayForCount(x) )(length);`
59966
59952
  * @param {number} max_value maximum value to be contained in the array
@@ -60110,62 +60096,62 @@ class HashMap {
60110
60096
  * number of bins is always power or two
60111
60097
  * @type {Uint32Array}
60112
60098
  */
60113
- #bins = EMPTY_BINS;
60099
+ __bins = EMPTY_BINS;
60114
60100
 
60115
60101
  /**
60116
60102
  * Note that dead entries are marked as such with a special reserved hash values, so records can be reused for new entries
60117
60103
  * @type {Array<HashMapEntry<K,V>>}
60118
60104
  */
60119
- #entries = new Array(0);
60105
+ __entries = new Array(0);
60120
60106
 
60121
60107
  /**
60122
60108
  * Pointer to the end of allocated entries segment
60123
60109
  * @type {number}
60124
60110
  */
60125
- #entries_bound = 0;
60111
+ __entries_bound = 0;
60126
60112
 
60127
60113
  /**
60128
60114
  *
60129
60115
  * @type {number}
60130
60116
  */
60131
- #entries_start = 0;
60117
+ __entries_start = 0;
60132
60118
 
60133
60119
  /**
60134
60120
  * number of records in the map
60135
60121
  * @type {number}
60136
60122
  */
60137
- #size = 0;
60123
+ __size = 0;
60138
60124
 
60139
- #bin_count = 0;
60125
+ __bin_count = 0;
60140
60126
 
60141
60127
  /**
60142
60128
  * Always exactly half of the number of bins
60143
60129
  * @type {number}
60144
60130
  */
60145
- #entries_allocated_count = 0;
60131
+ __entries_allocated_count = 0;
60146
60132
 
60147
- #bin_count_power_of_two = 0;
60133
+ __bin_count_power_of_two = 0;
60148
60134
 
60149
- #entries_count_power_of_two = 0;
60135
+ __entries_count_power_of_two = 0;
60150
60136
 
60151
60137
  /**
60152
60138
  * Mask used to map from hash to a bin index
60153
60139
  * @type {number}
60154
60140
  */
60155
- #bin_count_mask = 0;
60141
+ __bin_count_mask = 0;
60156
60142
 
60157
60143
  /**
60158
60144
  * How full the table can get before number of buckets is increased
60159
60145
  * @type {number}
60160
60146
  * @private
60161
60147
  */
60162
- #load_factor = DEFAULT_LOAD_FACTOR;
60148
+ __load_factor = DEFAULT_LOAD_FACTOR;
60163
60149
 
60164
60150
  /**
60165
60151
  * Used to track modifications to prevent concurrent changes during iteration
60166
60152
  * @type {number}
60167
60153
  */
60168
- #version = 0;
60154
+ __version = 0;
60169
60155
 
60170
60156
  /**
60171
60157
  * @template K, V
@@ -60196,13 +60182,13 @@ class HashMap {
60196
60182
  */
60197
60183
  this.keyEqualityFunction = keyEqualityFunction;
60198
60184
 
60199
- this.#load_factor = loadFactor;
60185
+ this.__load_factor = loadFactor;
60200
60186
 
60201
60187
  this.#setBinCount(ceilPowerOfTwo(capacity));
60202
60188
  }
60203
60189
 
60204
60190
  get size() {
60205
- return this.#size;
60191
+ return this.__size;
60206
60192
  }
60207
60193
 
60208
60194
  /**
@@ -60210,7 +60196,7 @@ class HashMap {
60210
60196
  * @returns {number}
60211
60197
  */
60212
60198
  getCurrentLoad() {
60213
- return this.#size / this.#bin_count;
60199
+ return this.__size / this.__bin_count;
60214
60200
  }
60215
60201
 
60216
60202
  /**
@@ -60219,33 +60205,33 @@ class HashMap {
60219
60205
  */
60220
60206
  #setBinCount(count) {
60221
60207
 
60222
- if (count < this.#size) {
60223
- throw new Error(`count must be at least equal to must of records in the map (=${this.#size}), instead was ${count}`);
60208
+ if (count < this.__size) {
60209
+ throw new Error(`count must be at least equal to must of records in the map (=${this.__size}), instead was ${count}`);
60224
60210
  }
60225
60211
 
60226
60212
 
60227
- this.#entries_count_power_of_two = ctz32(count);
60228
- this.#bin_count_power_of_two = this.#entries_count_power_of_two + 1;
60213
+ this.__entries_count_power_of_two = ctz32(count);
60214
+ this.__bin_count_power_of_two = this.__entries_count_power_of_two + 1;
60229
60215
 
60230
- this.#bin_count = 2 ** this.#bin_count_power_of_two;
60231
- this.#bin_count_mask = this.#bin_count - 1;
60216
+ this.__bin_count = 2 ** this.__bin_count_power_of_two;
60217
+ this.__bin_count_mask = this.__bin_count - 1;
60232
60218
 
60233
- const old_entry_allocation_count = this.#entries_allocated_count;
60219
+ const old_entry_allocation_count = this.__entries_allocated_count;
60234
60220
 
60235
- this.#entries_allocated_count = 2 ** this.#entries_count_power_of_two;
60221
+ this.__entries_allocated_count = 2 ** this.__entries_count_power_of_two;
60236
60222
 
60237
- const BinsArray = UintArrayForCount(this.#entries_allocated_count + ENTRY_BASE);
60223
+ const BinsArray = UintArrayForCount(this.__entries_allocated_count + ENTRY_BASE);
60238
60224
 
60239
- this.#bins = new BinsArray(this.#bin_count);
60225
+ this.__bins = new BinsArray(this.__bin_count);
60240
60226
 
60241
- const new_entries = new Array(this.#entries_allocated_count);
60242
- const old_entries = this.#entries;
60227
+ const new_entries = new Array(this.__entries_allocated_count);
60228
+ const old_entries = this.__entries;
60243
60229
 
60244
- this.#entries = new_entries;
60230
+ this.__entries = new_entries;
60245
60231
 
60246
- array_copy(old_entries, 0, new_entries, 0, min2(old_entry_allocation_count, this.#entries_allocated_count));
60232
+ array_copy(old_entries, 0, new_entries, 0, min2(old_entry_allocation_count, this.__entries_allocated_count));
60247
60233
 
60248
- if (this.#size > 0) {
60234
+ if (this.__size > 0) {
60249
60235
  // re-hash
60250
60236
  this.rebuild();
60251
60237
  }
@@ -60257,7 +60243,7 @@ class HashMap {
60257
60243
  * @returns {number}
60258
60244
  * @private
60259
60245
  */
60260
- #compute_bin_index(hash) {
60246
+ compute_bin_index(hash) {
60261
60247
 
60262
60248
  // mix the input hash to minimize potential impact of poor hash function spread
60263
60249
  const mixed_hash = (hash >>> 16) ^ hash;
@@ -60265,7 +60251,7 @@ class HashMap {
60265
60251
  // force index to unsigned integer
60266
60252
  const index = mixed_hash >>> 0;
60267
60253
 
60268
- return index & this.#bin_count_mask;
60254
+ return index & this.__bin_count_mask;
60269
60255
  }
60270
60256
 
60271
60257
  /**
@@ -60311,15 +60297,15 @@ class HashMap {
60311
60297
  */
60312
60298
  #allocate_entry(k, v, hash) {
60313
60299
 
60314
- const i = this.#entries_bound;
60300
+ const i = this.__entries_bound;
60315
60301
 
60316
- this.#entries_bound++;
60302
+ this.__entries_bound++;
60317
60303
 
60318
- if (this.#entries[i] !== undefined) {
60304
+ if (this.__entries[i] !== undefined) {
60319
60305
 
60320
60306
  // entry exists, let's reuse it
60321
60307
 
60322
- const entry = this.#entries[i];
60308
+ const entry = this.__entries[i];
60323
60309
 
60324
60310
  entry.hash = hash;
60325
60311
  entry.key = k;
@@ -60329,7 +60315,7 @@ class HashMap {
60329
60315
 
60330
60316
  // entry slot is empty
60331
60317
 
60332
- this.#entries[i] = new HashMapEntry(k, v, hash);
60318
+ this.__entries[i] = new HashMapEntry(k, v, hash);
60333
60319
 
60334
60320
  }
60335
60321
 
@@ -60350,11 +60336,11 @@ class HashMap {
60350
60336
  }
60351
60337
 
60352
60338
  #rebuild_if_necessary() {
60353
- if (this.#entries_bound !== this.#entries_allocated_count) {
60339
+ if (this.__entries_bound !== this.__entries_allocated_count) {
60354
60340
  return;
60355
60341
  }
60356
60342
 
60357
- if (this.#size === this.#entries_allocated_count) {
60343
+ if (this.__size === this.__entries_allocated_count) {
60358
60344
  // used up all allocated entries
60359
60345
  // bin count must always be larger than end of the entries table
60360
60346
  this.#grow();
@@ -60373,18 +60359,18 @@ class HashMap {
60373
60359
  this.#rebuild_if_necessary();
60374
60360
 
60375
60361
  const raw_hash = this.#build_key_hash(key);
60376
- let bin_index = this.#compute_bin_index(raw_hash);
60362
+ let bin_index = this.compute_bin_index(raw_hash);
60377
60363
 
60378
60364
  let first_deleted_bin_index = UNDEFINED_BIN_INDEX;
60379
60365
 
60380
60366
  for (; ;) {
60381
- const bin = this.#bins[bin_index];
60367
+ const bin = this.__bins[bin_index];
60382
60368
 
60383
60369
  if (bin > BIN_RESERVED_VALUE_DELETED) {
60384
60370
  // bin is occupied
60385
60371
 
60386
60372
  // check if it's the entry that we're looking for
60387
- const entry = this.#entries[bin - ENTRY_BASE];
60373
+ const entry = this.__entries[bin - ENTRY_BASE];
60388
60374
 
60389
60375
  if (this.#entry_equality_check(entry, raw_hash, key)) {
60390
60376
  // found the right entry
@@ -60404,7 +60390,7 @@ class HashMap {
60404
60390
 
60405
60391
  const bin_value = entry_index + ENTRY_BASE;
60406
60392
 
60407
- this.#bins[bin_index] = bin_value;
60393
+ this.__bins[bin_index] = bin_value;
60408
60394
 
60409
60395
  break;
60410
60396
 
@@ -60415,19 +60401,19 @@ class HashMap {
60415
60401
  }
60416
60402
 
60417
60403
  // perform secondary hashing
60418
- bin_index = generate_next_linear_congruential_index(bin_index, this.#bin_count_mask);
60404
+ bin_index = generate_next_linear_congruential_index(bin_index, this.__bin_count_mask);
60419
60405
 
60420
60406
  }
60421
60407
 
60422
- const old_size = this.#size;
60408
+ const old_size = this.__size;
60423
60409
  const new_size = old_size + 1;
60424
- this.#size = new_size;
60410
+ this.__size = new_size;
60425
60411
 
60426
60412
  // compute actual current load
60427
- const bucket_count = this.#bin_count;
60413
+ const bucket_count = this.__bin_count;
60428
60414
  const load = new_size / bucket_count;
60429
60415
 
60430
- if (load > this.#load_factor) {
60416
+ if (load > this.__load_factor) {
60431
60417
  // current load is too high, increase table size
60432
60418
  this.#grow();
60433
60419
  }
@@ -60441,16 +60427,16 @@ class HashMap {
60441
60427
  get(key) {
60442
60428
  const raw_hash = this.#build_key_hash(key);
60443
60429
 
60444
- let bin_index = this.#compute_bin_index(raw_hash);
60430
+ let bin_index = this.compute_bin_index(raw_hash);
60445
60431
 
60446
60432
  for (; ;) {
60447
- const bin = this.#bins[bin_index];
60433
+ const bin = this.__bins[bin_index];
60448
60434
 
60449
60435
  if (bin > BIN_RESERVED_VALUE_DELETED) {
60450
60436
  // bin is occupied
60451
60437
 
60452
60438
  // check if the entry is what we're looking for
60453
- const entry = this.#entries[bin - ENTRY_BASE];
60439
+ const entry = this.__entries[bin - ENTRY_BASE];
60454
60440
 
60455
60441
  if (this.#entry_equality_check(entry, raw_hash, key)) {
60456
60442
  // found the right entry
@@ -60463,7 +60449,7 @@ class HashMap {
60463
60449
  }
60464
60450
 
60465
60451
  // perform secondary hashing
60466
- bin_index = generate_next_linear_congruential_index(bin_index, this.#bin_count_mask);
60452
+ bin_index = generate_next_linear_congruential_index(bin_index, this.__bin_count_mask);
60467
60453
 
60468
60454
  }
60469
60455
 
@@ -60512,22 +60498,23 @@ class HashMap {
60512
60498
  }
60513
60499
 
60514
60500
  /**
60515
- *
60516
- * @param {number} bin
60501
+ * Update the entries start of table TAB after removing an entry with index N in the array entries.
60502
+ * @param {number} bin index of deleted entry
60517
60503
  */
60518
60504
  #update_range_for_deleted(bin) {
60519
- if (this.#entries_start === bin) {
60520
- let start = bin + 1;
60521
- let bound = this.#entries_bound;
60522
-
60523
- const entries = this.#entries;
60505
+ if (this.__entries_start !== bin) {
60506
+ return;
60507
+ }
60524
60508
 
60525
- while (start < bound && entries[start].hash === RESERVED_HASH) {
60526
- start++;
60527
- }
60509
+ let start = bin + 1;
60510
+ let bound = this.__entries_bound;
60511
+ const entries = this.__entries;
60528
60512
 
60529
- this.#entries_start = start;
60513
+ while (start < bound && entries[start].hash === RESERVED_HASH) {
60514
+ start++;
60530
60515
  }
60516
+
60517
+ this.__entries_start = start;
60531
60518
  }
60532
60519
 
60533
60520
  /**
@@ -60538,10 +60525,10 @@ class HashMap {
60538
60525
  delete(key) {
60539
60526
 
60540
60527
  const raw_hash = this.#build_key_hash(key);
60541
- let bin_index = this.#compute_bin_index(raw_hash);
60528
+ let bin_index = this.compute_bin_index(raw_hash);
60542
60529
 
60543
- const bins = this.#bins;
60544
- const entries = this.#entries;
60530
+ const bins = this.__bins;
60531
+ const entries = this.__entries;
60545
60532
 
60546
60533
  for (; ;) {
60547
60534
  const bin = bins[bin_index];
@@ -60562,7 +60549,7 @@ class HashMap {
60562
60549
  // mark slot as removed
60563
60550
  bins[bin_index] = BIN_RESERVED_VALUE_DELETED;
60564
60551
 
60565
- this.#size--;
60552
+ this.__size--;
60566
60553
 
60567
60554
  this.#update_range_for_deleted(entry_index);
60568
60555
 
@@ -60575,7 +60562,7 @@ class HashMap {
60575
60562
  }
60576
60563
 
60577
60564
  // perform secondary hashing
60578
- bin_index = generate_next_linear_congruential_index(bin_index, this.#bin_count_mask);
60565
+ bin_index = generate_next_linear_congruential_index(bin_index, this.__bin_count_mask);
60579
60566
 
60580
60567
  }
60581
60568
  }
@@ -60589,9 +60576,9 @@ class HashMap {
60589
60576
  verifyHashes(callback, thisArg) {
60590
60577
  let all_hashes_valid = true;
60591
60578
 
60592
- const count = this.#bin_count;
60579
+ const count = this.__bin_count;
60593
60580
  for (let j = 0; j < count; j++) {
60594
- const bin = this.#bins[j];
60581
+ const bin = this.__bins[j];
60595
60582
 
60596
60583
  if (bin <= BIN_RESERVED_VALUE_DELETED) {
60597
60584
  // unoccupied
@@ -60601,7 +60588,7 @@ class HashMap {
60601
60588
  /**
60602
60589
  * @type {HashMapEntry<K,V>}
60603
60590
  */
60604
- const entry = this.#entries[bin - ENTRY_BASE];
60591
+ const entry = this.__entries[bin - ENTRY_BASE];
60605
60592
 
60606
60593
  //check hash
60607
60594
  const raw_hash = this.#build_key_hash(entry.key);
@@ -60618,7 +60605,7 @@ class HashMap {
60618
60605
  }
60619
60606
 
60620
60607
  #grow() {
60621
- this.#setBinCount(this.#entries_allocated_count * 2);
60608
+ this.#setBinCount(this.__entries_allocated_count * 2);
60622
60609
  }
60623
60610
 
60624
60611
 
@@ -60626,17 +60613,17 @@ class HashMap {
60626
60613
  * Rebuild table, useful for when table is resized
60627
60614
  */
60628
60615
  rebuild() {
60629
- const entries_bound = this.#entries_bound;
60630
- const entries = this.#entries;
60616
+ const entries_bound = this.__entries_bound;
60617
+ const entries = this.__entries;
60631
60618
 
60632
60619
  // reset all bins
60633
- const bins = this.#bins;
60620
+ const bins = this.__bins;
60634
60621
  bins.fill(BIN_RESERVED_VALUE_EMPTY);
60635
60622
 
60636
60623
  let written_entries = 0;
60637
60624
 
60638
60625
  for (
60639
- let existing_entry_index = this.#entries_start;
60626
+ let existing_entry_index = this.__entries_start;
60640
60627
  existing_entry_index < entries_bound;
60641
60628
  existing_entry_index++
60642
60629
  ) {
@@ -60654,11 +60641,13 @@ class HashMap {
60654
60641
 
60655
60642
  if (new_index !== existing_entry_index) {
60656
60643
  // move entries to the new position, compacting holes
60657
- array_swap_one(entries, new_index, existing_entry_index);
60644
+
60645
+ entries[new_index] = entries[existing_entry_index];
60658
60646
  }
60659
60647
 
60660
- let bin_index = this.#compute_bin_index(hash);
60648
+ let bin_index = this.compute_bin_index(hash);
60661
60649
 
60650
+ // search for place for the entry
60662
60651
  for (; ;) {
60663
60652
  const bin = bins[bin_index];
60664
60653
 
@@ -60669,20 +60658,20 @@ class HashMap {
60669
60658
  }
60670
60659
 
60671
60660
  // perform secondary hashing
60672
- bin_index = generate_next_linear_congruential_index(bin_index, this.#bin_count_mask);
60661
+ bin_index = generate_next_linear_congruential_index(bin_index, this.__bin_count_mask);
60673
60662
 
60674
60663
  }
60675
60664
  }
60676
60665
 
60677
- this.#entries_start = 0;
60678
- this.#entries_bound = this.#size;
60679
- this.#version++;
60666
+ this.__entries_start = 0;
60667
+ this.__entries_bound = this.__size;
60668
+ this.__version++;
60680
60669
  }
60681
60670
 
60682
60671
  #count_live_entities() {
60683
60672
  let count = 0;
60684
- for (let i = this.#entries_start; i < this.#entries_bound; i++) {
60685
- const entry = this.#entries[i];
60673
+ for (let i = this.__entries_start; i < this.__entries_bound; i++) {
60674
+ const entry = this.__entries[i];
60686
60675
 
60687
60676
  if (entry.hash !== RESERVED_HASH) {
60688
60677
  count++;
@@ -60694,10 +60683,10 @@ class HashMap {
60694
60683
 
60695
60684
  forEach(callback, thisArg) {
60696
60685
 
60697
- const count = this.#bin_count;
60698
- const entries = this.#entries;
60699
- const bins = this.#bins;
60700
- this.#version;
60686
+ const count = this.__bin_count;
60687
+ const entries = this.__entries;
60688
+ const bins = this.__bins;
60689
+ this.__version;
60701
60690
 
60702
60691
  for (let j = 0; j < count; j++) {
60703
60692
 
@@ -60733,8 +60722,8 @@ class HashMap {
60733
60722
  clear() {
60734
60723
 
60735
60724
  // clear out all
60736
- const bins = this.#bins;
60737
- const count = this.#bin_count;
60725
+ const bins = this.__bins;
60726
+ const count = this.__bin_count;
60738
60727
 
60739
60728
  for (let i = 0; i < count; i++) {
60740
60729
  const bin = bins[i];
@@ -60745,7 +60734,7 @@ class HashMap {
60745
60734
  // occupied, move to deleted
60746
60735
  const entry_index = bin - ENTRY_BASE;
60747
60736
 
60748
- this.#deallocate(this.#entries[entry_index]);
60737
+ this.#deallocate(this.__entries[entry_index]);
60749
60738
  }
60750
60739
 
60751
60740
  // mark as empty
@@ -60755,20 +60744,20 @@ class HashMap {
60755
60744
 
60756
60745
  }
60757
60746
 
60758
- this.#size = 0;
60747
+ this.__size = 0;
60759
60748
 
60760
- this.#entries_start = 0;
60761
- this.#entries_bound = 0;
60749
+ this.__entries_start = 0;
60750
+ this.__entries_bound = 0;
60762
60751
  }
60763
60752
 
60764
60753
  * [Symbol.iterator]() {
60765
60754
 
60766
- const count = this.#bin_count;
60755
+ const count = this.__bin_count;
60767
60756
 
60768
- const bins = this.#bins;
60769
- const entries = this.#entries;
60757
+ const bins = this.__bins;
60758
+ const entries = this.__entries;
60770
60759
 
60771
- this.#version;
60760
+ this.__version;
60772
60761
 
60773
60762
  for (let j = 0; j < count; j++) {
60774
60763
 
@@ -106547,6 +106536,20 @@ function computeBinaryDataTypeByPrecision(type, precision) {
106547
106536
  throw new Error(`Unsupported numeric type(=${type}) and precision(=${precision}) combination`);
106548
106537
  }
106549
106538
 
106539
+ /**
106540
+ * @template T
106541
+ * @param {T[]} array
106542
+ * @param {number} index0
106543
+ * @param {number} index1
106544
+ */
106545
+ function array_swap_one(array, index0, index1) {
106546
+
106547
+ const t = array[index0];
106548
+
106549
+ array[index0] = array[index1];
106550
+ array[index1] = t;
106551
+ }
106552
+
106550
106553
  const stack$1 = [];
106551
106554
 
106552
106555
  /**