libpag 4.4.35 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/libpag.cjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // Tencent is pleased to support the open source community by making libpag available.
4
4
  //
5
- // Copyright (C) 2025 THL A29 Limited, a Tencent company. All rights reserved.
5
+ // Copyright (C) 2025 Tencent. All rights reserved.
6
6
  //
7
7
  // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
8
8
  // except in compliance with the License. You may obtain a copy of the License at
@@ -198,7 +198,7 @@ var types = /*#__PURE__*/Object.freeze({
198
198
  AlphaType: AlphaType
199
199
  });
200
200
 
201
- var __defProp$e = Object.defineProperty;
201
+ var __defProp$d = Object.defineProperty;
202
202
  var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
203
203
  var __decorateClass$c = (decorators, target, key, kind) => {
204
204
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
@@ -206,7 +206,7 @@ var __decorateClass$c = (decorators, target, key, kind) => {
206
206
  if (decorator = decorators[i])
207
207
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
208
208
  if (kind && result)
209
- __defProp$e(target, key, result);
209
+ __defProp$d(target, key, result);
210
210
  return result;
211
211
  };
212
212
  let Matrix$1 = class {
@@ -417,7 +417,7 @@ const getWasmIns = (value) => {
417
417
  };
418
418
  const isInstanceOf$1 = (value, type) => typeof type !== "undefined" && value instanceof type;
419
419
 
420
- var __defProp$d = Object.defineProperty;
420
+ var __defProp$c = Object.defineProperty;
421
421
  var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
422
422
  var __decorateClass$b = (decorators, target, key, kind) => {
423
423
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
@@ -425,7 +425,7 @@ var __decorateClass$b = (decorators, target, key, kind) => {
425
425
  if (decorator = decorators[i])
426
426
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
427
427
  if (kind && result)
428
- __defProp$d(target, key, result);
428
+ __defProp$c(target, key, result);
429
429
  return result;
430
430
  };
431
431
  let PAGLayer = class {
@@ -557,7 +557,7 @@ PAGLayer = __decorateClass$b([
557
557
  wasmAwaitRewind$1
558
558
  ], PAGLayer);
559
559
 
560
- var __defProp$c = Object.defineProperty;
560
+ var __defProp$b = Object.defineProperty;
561
561
  var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
562
562
  var __decorateClass$a = (decorators, target, key, kind) => {
563
563
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
@@ -565,7 +565,7 @@ var __decorateClass$a = (decorators, target, key, kind) => {
565
565
  if (decorator = decorators[i])
566
566
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
567
567
  if (kind && result)
568
- __defProp$c(target, key, result);
568
+ __defProp$b(target, key, result);
569
569
  return result;
570
570
  };
571
571
  let PAGComposition = class extends PAGLayer {
@@ -680,28 +680,7 @@ const transferToArrayBuffer = (data) => {
680
680
  return Promise.resolve(null);
681
681
  };
682
682
 
683
- const writeBufferToWasm = (module, data) => {
684
- const uint8Array = new Uint8Array(data);
685
- const numBytes = uint8Array.byteLength;
686
- const dataPtr = module._malloc(numBytes);
687
- const dataOnHeap = new Uint8Array(module.HEAPU8.buffer, dataPtr, numBytes);
688
- dataOnHeap.set(uint8Array);
689
- return { byteOffset: dataPtr, length: numBytes, free: () => module._free(dataPtr) };
690
- };
691
- const readBufferFromWasm = (module, data, handle) => {
692
- const uint8Array = new Uint8Array(data);
693
- const dataPtr = module._malloc(uint8Array.byteLength);
694
- if (!handle(dataPtr, uint8Array.byteLength))
695
- return {
696
- data: null,
697
- free: () => module._free(dataPtr)
698
- };
699
- const dataOnHeap = new Uint8Array(module.HEAPU8.buffer, dataPtr, uint8Array.byteLength);
700
- uint8Array.set(dataOnHeap);
701
- return { data: uint8Array, free: () => module._free(dataPtr) };
702
- };
703
-
704
- var __defProp$b = Object.defineProperty;
683
+ var __defProp$a = Object.defineProperty;
705
684
  var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
706
685
  var __decorateClass$9 = (decorators, target, key, kind) => {
707
686
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
@@ -709,7 +688,7 @@ var __decorateClass$9 = (decorators, target, key, kind) => {
709
688
  if (decorator = decorators[i])
710
689
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
711
690
  if (kind && result)
712
- __defProp$b(target, key, result);
691
+ __defProp$a(target, key, result);
713
692
  return result;
714
693
  };
715
694
  let PAGFile = class extends PAGComposition {
@@ -724,9 +703,8 @@ let PAGFile = class extends PAGComposition {
724
703
  static loadFromBuffer(buffer) {
725
704
  if (!buffer || !(buffer.byteLength > 0))
726
705
  throw new Error("Initialize PAGFile data not be empty!");
727
- const { byteOffset, length, free } = writeBufferToWasm(PAGModule, buffer);
728
- const wasmIns = PAGModule._PAGFile._Load(byteOffset, length);
729
- free();
706
+ const uint8Buffer = new Uint8Array(buffer);
707
+ const wasmIns = PAGModule._PAGFile._Load(uint8Buffer);
730
708
  if (!wasmIns)
731
709
  throw new Error("Load PAGFile fail!");
732
710
  const pagFile = new PAGFile(wasmIns);
@@ -789,7 +767,7 @@ PAGFile = __decorateClass$9([
789
767
  wasmAwaitRewind$1
790
768
  ], PAGFile);
791
769
 
792
- var __defProp$a = Object.defineProperty;
770
+ var __defProp$9 = Object.defineProperty;
793
771
  var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
794
772
  var __decorateClass$8 = (decorators, target, key, kind) => {
795
773
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
@@ -797,7 +775,7 @@ var __decorateClass$8 = (decorators, target, key, kind) => {
797
775
  if (decorator = decorators[i])
798
776
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
799
777
  if (kind && result)
800
- __defProp$a(target, key, result);
778
+ __defProp$9(target, key, result);
801
779
  return result;
802
780
  };
803
781
  let PAGSurface = class {
@@ -841,14 +819,8 @@ let PAGSurface = class {
841
819
  readPixels(colorType, alphaType) {
842
820
  if (colorType === ColorType.Unknown)
843
821
  return null;
844
- const rowBytes = this.width() * (colorType === ColorType.ALPHA_8 ? 1 : 4);
845
- const length = rowBytes * this.height();
846
- const dataUint8Array = new Uint8Array(length);
847
- const { data, free } = readBufferFromWasm(PAGModule, dataUint8Array, (dataPtr) => {
848
- return this.wasmIns._readPixels(colorType, alphaType, dataPtr, rowBytes);
849
- });
850
- free();
851
- return data;
822
+ const rowBytes = this.wasmIns._width() * (colorType === ColorType.ALPHA_8 ? 1 : 4);
823
+ return this.wasmIns._readPixels(colorType, alphaType, rowBytes);
852
824
  }
853
825
  destroy() {
854
826
  this.wasmIns.delete();
@@ -860,7 +832,7 @@ PAGSurface = __decorateClass$8([
860
832
  wasmAwaitRewind$1
861
833
  ], PAGSurface);
862
834
 
863
- var __defProp$9 = Object.defineProperty;
835
+ var __defProp$8 = Object.defineProperty;
864
836
  var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
865
837
  var __decorateClass$7 = (decorators, target, key, kind) => {
866
838
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
@@ -868,7 +840,7 @@ var __decorateClass$7 = (decorators, target, key, kind) => {
868
840
  if (decorator = decorators[i])
869
841
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
870
842
  if (kind && result)
871
- __defProp$9(target, key, result);
843
+ __defProp$8(target, key, result);
872
844
  return result;
873
845
  };
874
846
  let PAGPlayer = class {
@@ -1042,7 +1014,7 @@ PAGPlayer = __decorateClass$7([
1042
1014
  wasmAwaitRewind$1
1043
1015
  ], PAGPlayer);
1044
1016
 
1045
- var __defProp$8 = Object.defineProperty;
1017
+ var __defProp$7 = Object.defineProperty;
1046
1018
  var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
1047
1019
  var __decorateClass$6 = (decorators, target, key, kind) => {
1048
1020
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
@@ -1050,7 +1022,7 @@ var __decorateClass$6 = (decorators, target, key, kind) => {
1050
1022
  if (decorator = decorators[i])
1051
1023
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1052
1024
  if (kind && result)
1053
- __defProp$8(target, key, result);
1025
+ __defProp$7(target, key, result);
1054
1026
  return result;
1055
1027
  };
1056
1028
  let PAGImage = class {
@@ -1078,9 +1050,7 @@ let PAGImage = class {
1078
1050
  }
1079
1051
  static fromPixels(pixels, width, height, colorType, alphaType) {
1080
1052
  const rowBytes = width * (colorType === ColorType.ALPHA_8 ? 1 : 4);
1081
- const { byteOffset, free } = writeBufferToWasm(PAGModule, pixels);
1082
- const wasmIns = PAGModule._PAGImage._FromPixels(byteOffset, width, height, rowBytes, colorType, alphaType);
1083
- free();
1053
+ const wasmIns = PAGModule._PAGImage._FromPixels(pixels, width, height, rowBytes, colorType, alphaType);
1084
1054
  if (!wasmIns)
1085
1055
  throw new Error("Make PAGImage from pixels fail!");
1086
1056
  return new PAGImage(wasmIns);
@@ -1363,7 +1333,7 @@ const CANVAS_POOL_MAX_SIZE = 10;
1363
1333
 
1364
1334
  const isInstanceOf = (value, type) => typeof type !== "undefined" && value instanceof type;
1365
1335
 
1366
- const nav = (navigator == null ? void 0 : navigator.userAgent) || "";
1336
+ const nav = navigator?.userAgent || "";
1367
1337
  const ANDROID = /android|adr/i.test(nav);
1368
1338
  const MOBILE = /(mobile)/i.test(nav) && ANDROID;
1369
1339
  !(/(mobile)/i.test(nav) || MOBILE) && /Mac OS X/i.test(nav);
@@ -1426,7 +1396,7 @@ const calculateDisplaySize = (canvas) => {
1426
1396
  }
1427
1397
  };
1428
1398
 
1429
- var __defProp$7 = Object.defineProperty;
1399
+ var __defProp$6 = Object.defineProperty;
1430
1400
  var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
1431
1401
  var __decorateClass$5 = (decorators, target, key, kind) => {
1432
1402
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
@@ -1434,7 +1404,7 @@ var __decorateClass$5 = (decorators, target, key, kind) => {
1434
1404
  if (decorator = decorators[i])
1435
1405
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1436
1406
  if (kind && result)
1437
- __defProp$7(target, key, result);
1407
+ __defProp$6(target, key, result);
1438
1408
  return result;
1439
1409
  };
1440
1410
  let PAGView = class {
@@ -1844,7 +1814,7 @@ const getFontFamilies = (name, style = "") => {
1844
1814
  return fontFamilies;
1845
1815
  };
1846
1816
 
1847
- var __defProp$6 = Object.defineProperty;
1817
+ var __defProp$5 = Object.defineProperty;
1848
1818
  var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
1849
1819
  var __decorateClass$4 = (decorators, target, key, kind) => {
1850
1820
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
@@ -1852,7 +1822,7 @@ var __decorateClass$4 = (decorators, target, key, kind) => {
1852
1822
  if (decorator = decorators[i])
1853
1823
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1854
1824
  if (kind && result)
1855
- __defProp$6(target, key, result);
1825
+ __defProp$5(target, key, result);
1856
1826
  return result;
1857
1827
  };
1858
1828
  let PAGFont = class {
@@ -2346,7 +2316,7 @@ class GlobalCanvas {
2346
2316
  }
2347
2317
  }
2348
2318
 
2349
- var __defProp$5 = Object.defineProperty;
2319
+ var __defProp$4 = Object.defineProperty;
2350
2320
  var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
2351
2321
  var __decorateClass$3 = (decorators, target, key, kind) => {
2352
2322
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
@@ -2354,7 +2324,7 @@ var __decorateClass$3 = (decorators, target, key, kind) => {
2354
2324
  if (decorator = decorators[i])
2355
2325
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2356
2326
  if (kind && result)
2357
- __defProp$5(target, key, result);
2327
+ __defProp$4(target, key, result);
2358
2328
  return result;
2359
2329
  };
2360
2330
  let PAGTextLayer = class extends PAGLayer {
@@ -2404,7 +2374,7 @@ PAGTextLayer = __decorateClass$3([
2404
2374
  wasmAwaitRewind$1
2405
2375
  ], PAGTextLayer);
2406
2376
 
2407
- var __defProp$4 = Object.defineProperty;
2377
+ var __defProp$3 = Object.defineProperty;
2408
2378
  var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
2409
2379
  var __decorateClass$2 = (decorators, target, key, kind) => {
2410
2380
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
@@ -2412,7 +2382,7 @@ var __decorateClass$2 = (decorators, target, key, kind) => {
2412
2382
  if (decorator = decorators[i])
2413
2383
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2414
2384
  if (kind && result)
2415
- __defProp$4(target, key, result);
2385
+ __defProp$3(target, key, result);
2416
2386
  return result;
2417
2387
  };
2418
2388
  let PAGImageLayer = class extends PAGLayer {
@@ -2449,7 +2419,7 @@ PAGImageLayer = __decorateClass$2([
2449
2419
  wasmAwaitRewind$1
2450
2420
  ], PAGImageLayer);
2451
2421
 
2452
- var __defProp$3 = Object.defineProperty;
2422
+ var __defProp$2 = Object.defineProperty;
2453
2423
  var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
2454
2424
  var __decorateClass$1 = (decorators, target, key, kind) => {
2455
2425
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
@@ -2457,7 +2427,7 @@ var __decorateClass$1 = (decorators, target, key, kind) => {
2457
2427
  if (decorator = decorators[i])
2458
2428
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2459
2429
  if (kind && result)
2460
- __defProp$3(target, key, result);
2430
+ __defProp$2(target, key, result);
2461
2431
  return result;
2462
2432
  };
2463
2433
  let PAGSolidLayer = class extends PAGLayer {
@@ -2517,7 +2487,8 @@ const createImage = (source) => {
2517
2487
  });
2518
2488
  };
2519
2489
  const createImageFromBytes = (bytes) => {
2520
- const blob = new Blob([bytes], { type: "image/*" });
2490
+ const uint8Array = new Uint8Array(bytes);
2491
+ const blob = new Blob([uint8Array], { type: "image/*" });
2521
2492
  return createImage(URL.createObjectURL(blob));
2522
2493
  };
2523
2494
  const readImagePixels = (module, image, width, height) => {
@@ -2535,7 +2506,7 @@ const readImagePixels = (module, image, width, height) => {
2535
2506
  if (data.length === 0) {
2536
2507
  return null;
2537
2508
  }
2538
- return writeBufferToWasm(module, data);
2509
+ return new Uint8Array(data);
2539
2510
  };
2540
2511
  const hasWebpSupport = () => {
2541
2512
  try {
@@ -2554,11 +2525,10 @@ const getSourceSize = (source) => {
2554
2525
  return { width: source.width, height: source.height };
2555
2526
  };
2556
2527
  const uploadToTexture = (GL, source, textureID, alphaOnly) => {
2557
- var _a;
2558
2528
  let renderSource = source instanceof BitmapImage ? source.bitmap : source;
2559
2529
  if (!renderSource)
2560
2530
  return;
2561
- const gl = (_a = GL.currentContext) == null ? void 0 : _a.GLctx;
2531
+ const gl = GL.currentContext?.GLctx;
2562
2532
  gl.bindTexture(gl.TEXTURE_2D, GL.textures[textureID]);
2563
2533
  if (alphaOnly) {
2564
2534
  gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
@@ -2584,7 +2554,7 @@ const releaseNativeImage = (source) => {
2584
2554
  };
2585
2555
  const getBytesFromPath = async (module, path) => {
2586
2556
  const buffer = await fetch(path).then((res) => res.arrayBuffer());
2587
- return writeBufferToWasm(module, buffer);
2557
+ return new Uint8Array(buffer);
2588
2558
  };
2589
2559
 
2590
2560
  var tgfx = /*#__PURE__*/Object.freeze({
@@ -2659,7 +2629,7 @@ var MatrixIndex = /* @__PURE__ */ ((MatrixIndex2) => {
2659
2629
  return MatrixIndex2;
2660
2630
  })(MatrixIndex || {});
2661
2631
 
2662
- var __defProp$2 = Object.defineProperty;
2632
+ var __defProp$1 = Object.defineProperty;
2663
2633
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
2664
2634
  var __decorateClass = (decorators, target, key, kind) => {
2665
2635
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
@@ -2667,7 +2637,7 @@ var __decorateClass = (decorators, target, key, kind) => {
2667
2637
  if (decorator = decorators[i])
2668
2638
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2669
2639
  if (kind && result)
2670
- __defProp$2(target, key, result);
2640
+ __defProp$1(target, key, result);
2671
2641
  return result;
2672
2642
  };
2673
2643
  let Matrix = class {
@@ -2679,50 +2649,43 @@ let Matrix = class {
2679
2649
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.a) : 0;
2680
2650
  }
2681
2651
  set a(value) {
2682
- var _a;
2683
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.a, value);
2652
+ this.wasmIns?._set(MatrixIndex.a, value);
2684
2653
  }
2685
2654
  get b() {
2686
2655
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.b) : 0;
2687
2656
  }
2688
2657
  set b(value) {
2689
- var _a;
2690
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.b, value);
2658
+ this.wasmIns?._set(MatrixIndex.b, value);
2691
2659
  }
2692
2660
  get c() {
2693
2661
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.c) : 0;
2694
2662
  }
2695
2663
  set c(value) {
2696
- var _a;
2697
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.c, value);
2664
+ this.wasmIns?._set(MatrixIndex.c, value);
2698
2665
  }
2699
2666
  get d() {
2700
2667
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.d) : 0;
2701
2668
  }
2702
2669
  set d(value) {
2703
- var _a;
2704
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.d, value);
2670
+ this.wasmIns?._set(MatrixIndex.d, value);
2705
2671
  }
2706
2672
  get tx() {
2707
2673
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.tx) : 0;
2708
2674
  }
2709
2675
  set tx(value) {
2710
- var _a;
2711
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.tx, value);
2676
+ this.wasmIns?._set(MatrixIndex.tx, value);
2712
2677
  }
2713
2678
  get ty() {
2714
2679
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.ty) : 0;
2715
2680
  }
2716
2681
  set ty(value) {
2717
- var _a;
2718
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.ty, value);
2682
+ this.wasmIns?._set(MatrixIndex.ty, value);
2719
2683
  }
2720
2684
  get(index) {
2721
2685
  return this.wasmIns ? this.wasmIns._get(index) : 0;
2722
2686
  }
2723
2687
  set(index, value) {
2724
- var _a;
2725
- (_a = this.wasmIns) == null ? void 0 : _a._set(index, value);
2688
+ this.wasmIns?._set(index, value);
2726
2689
  }
2727
2690
  destroy() {
2728
2691
  this.wasmIns.delete();
@@ -2792,7 +2755,7 @@ const getBottomPixel = (imageDataArray, width, height) => {
2792
2755
  return 0;
2793
2756
  };
2794
2757
 
2795
- class ScalerContext {
2758
+ const _ScalerContext = class {
2796
2759
  constructor(fontName, fontStyle, size) {
2797
2760
  this.fontBoundingBoxMap = [];
2798
2761
  this.fontName = fontName;
@@ -2801,10 +2764,10 @@ class ScalerContext {
2801
2764
  this.loadCanvas();
2802
2765
  }
2803
2766
  static setCanvas(canvas) {
2804
- ScalerContext.canvas = canvas;
2767
+ _ScalerContext.canvas = canvas;
2805
2768
  }
2806
2769
  static setContext(context) {
2807
- ScalerContext.context = context;
2770
+ _ScalerContext.context = context;
2808
2771
  }
2809
2772
  static isUnicodePropertyEscapeSupported() {
2810
2773
  try {
@@ -2817,12 +2780,19 @@ class ScalerContext {
2817
2780
  static isEmoji(text) {
2818
2781
  let emojiRegExp;
2819
2782
  if (this.isUnicodePropertyEscapeSupported()) {
2820
- emojiRegExp = new RegExp("\\p{Extended_Pictographic}|[#*0-9]\\uFE0F?\\u20E3|[\\uD83C\\uDDE6-\\uD83C\\uDDFF]", "u");
2783
+ emojiRegExp = /\p{Extended_Pictographic}|[#*0-9]\uFE0F?\u20E3|[\uD83C\uDDE6-\uD83C\uDDFF]/u;
2821
2784
  } else {
2822
2785
  emojiRegExp = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/;
2823
2786
  }
2824
2787
  return emojiRegExp.test(text);
2825
2788
  }
2789
+ static measureDirectly(ctx) {
2790
+ if (_ScalerContext.hasMeasureBoundsAPI === void 0) {
2791
+ const metrics = ctx.measureText("x");
2792
+ _ScalerContext.hasMeasureBoundsAPI = metrics && metrics.actualBoundingBoxAscent > 0;
2793
+ }
2794
+ return _ScalerContext.hasMeasureBoundsAPI;
2795
+ }
2826
2796
  fontString(fauxBold, fauxItalic) {
2827
2797
  const attributes = [];
2828
2798
  if (fauxItalic) {
@@ -2841,7 +2811,7 @@ class ScalerContext {
2841
2811
  if (this.fontMetrics) {
2842
2812
  return this.fontMetrics;
2843
2813
  }
2844
- const { context } = ScalerContext;
2814
+ const { context } = _ScalerContext;
2845
2815
  context.font = this.fontString(false, false);
2846
2816
  const metrics = this.measureText(context, "H");
2847
2817
  const capHeight = metrics.actualBoundingBoxAscent;
@@ -2856,7 +2826,7 @@ class ScalerContext {
2856
2826
  return this.fontMetrics;
2857
2827
  }
2858
2828
  getBounds(text, fauxBold, fauxItalic) {
2859
- const { context } = ScalerContext;
2829
+ const { context } = _ScalerContext;
2860
2830
  context.font = this.fontString(fauxBold, fauxItalic);
2861
2831
  const metrics = this.measureText(context, text);
2862
2832
  const bounds = {
@@ -2874,7 +2844,7 @@ class ScalerContext {
2874
2844
  return bounds;
2875
2845
  }
2876
2846
  getAdvance(text) {
2877
- const { context } = ScalerContext;
2847
+ const { context } = _ScalerContext;
2878
2848
  context.font = this.fontString(false, false);
2879
2849
  return context.measureText(text).width;
2880
2850
  }
@@ -2886,17 +2856,16 @@ class ScalerContext {
2886
2856
  return canvas;
2887
2857
  }
2888
2858
  loadCanvas() {
2889
- if (!ScalerContext.canvas) {
2890
- ScalerContext.setCanvas(getCanvas2D(10, 10));
2891
- ScalerContext.setContext(
2892
- ScalerContext.canvas.getContext("2d", { willReadFrequently: true })
2859
+ if (!_ScalerContext.canvas) {
2860
+ _ScalerContext.setCanvas(getCanvas2D(10, 10));
2861
+ _ScalerContext.setContext(
2862
+ _ScalerContext.canvas.getContext("2d", { willReadFrequently: true })
2893
2863
  );
2894
2864
  }
2895
2865
  }
2896
2866
  measureText(ctx, text) {
2897
- const metrics = ctx.measureText(text);
2898
- if (metrics && (metrics.actualBoundingBoxAscent > 0 || metrics.width === 0)) {
2899
- return metrics;
2867
+ if (_ScalerContext.measureDirectly(ctx)) {
2868
+ return ctx.measureText(text);
2900
2869
  }
2901
2870
  ctx.canvas.width = this.size * 1.5;
2902
2871
  ctx.canvas.height = this.size * 1.5;
@@ -2927,7 +2896,9 @@ class ScalerContext {
2927
2896
  width: fontMeasure.right - fontMeasure.left
2928
2897
  };
2929
2898
  }
2930
- }
2899
+ };
2900
+ let ScalerContext = _ScalerContext;
2901
+ ScalerContext.hasMeasureBoundsAPI = void 0;
2931
2902
 
2932
2903
  class WebMask {
2933
2904
  static create(canvas) {
@@ -3001,29 +2972,13 @@ class WebMask {
3001
2972
  }
3002
2973
  }
3003
2974
 
3004
- var __defProp$1 = Object.defineProperty;
3005
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3006
- var __hasOwnProp = Object.prototype.hasOwnProperty;
3007
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
3008
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3009
- var __spreadValues = (a, b) => {
3010
- for (var prop in b || (b = {}))
3011
- if (__hasOwnProp.call(b, prop))
3012
- __defNormalProp$1(a, prop, b[prop]);
3013
- if (__getOwnPropSymbols)
3014
- for (var prop of __getOwnPropSymbols(b)) {
3015
- if (__propIsEnum.call(b, prop))
3016
- __defNormalProp$1(a, prop, b[prop]);
3017
- }
3018
- return a;
3019
- };
3020
2975
  const TGFXBind = (module) => {
3021
2976
  setTGFXModule(module);
3022
2977
  module.module = module;
3023
2978
  module.ScalerContext = ScalerContext;
3024
2979
  module.WebMask = WebMask;
3025
2980
  module.Matrix = Matrix;
3026
- module.tgfx = __spreadValues({}, tgfx);
2981
+ module.tgfx = { ...tgfx };
3027
2982
  };
3028
2983
 
3029
2984
  const PAGBind = (module) => {
@@ -3055,17 +3010,23 @@ var __publicField = (obj, key, value) => {
3055
3010
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
3056
3011
  return value;
3057
3012
  };
3058
- var Hello2D = (() => {
3013
+ var PAGInit$1 = (() => {
3014
+ var _scriptName = typeof document != "undefined" ? document.currentScript?.src : void 0;
3059
3015
  return async function(moduleArg = {}) {
3060
3016
  var moduleRtn;
3061
3017
  var Module = moduleArg;
3018
+ var readyPromiseResolve, readyPromiseReject;
3019
+ var readyPromise = new Promise((resolve, reject) => {
3020
+ readyPromiseResolve = resolve;
3021
+ readyPromiseReject = reject;
3022
+ });
3062
3023
  var ENVIRONMENT_IS_WEB = typeof window == "object";
3063
3024
  var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
3064
- typeof process == "object" && process.versions?.node && process.type != "renderer";
3025
+ typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
3026
+ var moduleOverrides = Object.assign({}, Module);
3065
3027
  var quit_ = (status, toThrow) => {
3066
3028
  throw toThrow;
3067
3029
  };
3068
- var _scriptName = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || new URL('libpag.cjs.js', document.baseURI).href));
3069
3030
  var scriptDirectory = "";
3070
3031
  function locateFile(path) {
3071
3032
  if (Module["locateFile"]) {
@@ -3075,9 +3036,18 @@ var Hello2D = (() => {
3075
3036
  }
3076
3037
  var readAsync, readBinary;
3077
3038
  if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
3078
- try {
3079
- scriptDirectory = new URL(".", _scriptName).href;
3080
- } catch {
3039
+ if (ENVIRONMENT_IS_WORKER) {
3040
+ scriptDirectory = self.location.href;
3041
+ } else if (typeof document != "undefined" && document.currentScript) {
3042
+ scriptDirectory = document.currentScript.src;
3043
+ }
3044
+ if (_scriptName) {
3045
+ scriptDirectory = _scriptName;
3046
+ }
3047
+ if (scriptDirectory.startsWith("blob:")) {
3048
+ scriptDirectory = "";
3049
+ } else {
3050
+ scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
3081
3051
  }
3082
3052
  {
3083
3053
  if (ENVIRONMENT_IS_WORKER) {
@@ -3098,29 +3068,37 @@ var Hello2D = (() => {
3098
3068
  };
3099
3069
  }
3100
3070
  }
3101
- var out = console.log.bind(console);
3102
- var err = console.error.bind(console);
3103
- var wasmBinary;
3071
+ var out = Module["print"] || console.log.bind(console);
3072
+ var err = Module["printErr"] || console.error.bind(console);
3073
+ Object.assign(Module, moduleOverrides);
3074
+ moduleOverrides = null;
3075
+ if (Module["arguments"])
3076
+ Module["arguments"];
3077
+ if (Module["thisProgram"])
3078
+ Module["thisProgram"];
3079
+ var wasmBinary = Module["wasmBinary"];
3080
+ var wasmMemory;
3104
3081
  var ABORT = false;
3105
3082
  var EXITSTATUS;
3106
- var readyPromiseResolve, readyPromiseReject;
3107
- var wasmMemory;
3108
- var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
3109
- var HEAP64, HEAPU64;
3110
- var runtimeInitialized = false;
3083
+ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64;
3084
+ var dataURIPrefix = "data:application/octet-stream;base64,";
3085
+ var isDataURI = (filename) => filename.startsWith(dataURIPrefix);
3111
3086
  function updateMemoryViews() {
3112
3087
  var b = wasmMemory.buffer;
3113
- HEAP8 = new Int8Array(b);
3114
- HEAP16 = new Int16Array(b);
3088
+ Module["HEAP8"] = HEAP8 = new Int8Array(b);
3089
+ Module["HEAP16"] = HEAP16 = new Int16Array(b);
3115
3090
  Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
3116
- HEAPU16 = new Uint16Array(b);
3117
- HEAP32 = new Int32Array(b);
3118
- HEAPU32 = new Uint32Array(b);
3119
- HEAPF32 = new Float32Array(b);
3120
- HEAPF64 = new Float64Array(b);
3121
- HEAP64 = new BigInt64Array(b);
3122
- HEAPU64 = new BigUint64Array(b);
3123
- }
3091
+ Module["HEAPU16"] = HEAPU16 = new Uint16Array(b);
3092
+ Module["HEAP32"] = HEAP32 = new Int32Array(b);
3093
+ Module["HEAPU32"] = HEAPU32 = new Uint32Array(b);
3094
+ Module["HEAPF32"] = HEAPF32 = new Float32Array(b);
3095
+ Module["HEAPF64"] = HEAPF64 = new Float64Array(b);
3096
+ Module["HEAP64"] = HEAP64 = new BigInt64Array(b);
3097
+ Module["HEAPU64"] = HEAPU64 = new BigUint64Array(b);
3098
+ }
3099
+ var __ATPRERUN__ = [];
3100
+ var __ATINIT__ = [];
3101
+ var __ATPOSTRUN__ = [];
3124
3102
  function preRun() {
3125
3103
  if (Module["preRun"]) {
3126
3104
  if (typeof Module["preRun"] == "function")
@@ -3129,14 +3107,13 @@ var Hello2D = (() => {
3129
3107
  addOnPreRun(Module["preRun"].shift());
3130
3108
  }
3131
3109
  }
3132
- callRuntimeCallbacks(onPreRuns);
3110
+ callRuntimeCallbacks(__ATPRERUN__);
3133
3111
  }
3134
3112
  function initRuntime() {
3135
- runtimeInitialized = true;
3136
3113
  if (!Module["noFSInit"] && !FS.initialized)
3137
3114
  FS.init();
3138
- wasmExports["ic"]();
3139
3115
  FS.ignorePermissions = false;
3116
+ callRuntimeCallbacks(__ATINIT__);
3140
3117
  }
3141
3118
  function postRun() {
3142
3119
  if (Module["postRun"]) {
@@ -3146,7 +3123,16 @@ var Hello2D = (() => {
3146
3123
  addOnPostRun(Module["postRun"].shift());
3147
3124
  }
3148
3125
  }
3149
- callRuntimeCallbacks(onPostRuns);
3126
+ callRuntimeCallbacks(__ATPOSTRUN__);
3127
+ }
3128
+ function addOnPreRun(cb) {
3129
+ __ATPRERUN__.unshift(cb);
3130
+ }
3131
+ function addOnInit(cb) {
3132
+ __ATINIT__.unshift(cb);
3133
+ }
3134
+ function addOnPostRun(cb) {
3135
+ __ATPOSTRUN__.unshift(cb);
3150
3136
  }
3151
3137
  var runDependencies = 0;
3152
3138
  var dependenciesFulfilled = null;
@@ -3172,15 +3158,16 @@ var Hello2D = (() => {
3172
3158
  ABORT = true;
3173
3159
  what += ". Build with -sASSERTIONS for more info.";
3174
3160
  var e = new WebAssembly.RuntimeError(what);
3175
- readyPromiseReject?.(e);
3161
+ readyPromiseReject(e);
3176
3162
  throw e;
3177
3163
  }
3178
3164
  var wasmBinaryFile;
3179
3165
  function findWasmBinary() {
3180
- if (Module["locateFile"]) {
3181
- return locateFile("libpag.wasm");
3166
+ var f = "libpag.wasm";
3167
+ if (!isDataURI(f)) {
3168
+ return locateFile(f);
3182
3169
  }
3183
- return new URL("libpag.wasm", (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || new URL('libpag.cjs.js', document.baseURI).href))).href;
3170
+ return f;
3184
3171
  }
3185
3172
  function getBinarySync(file) {
3186
3173
  if (file == wasmBinaryFile && wasmBinary) {
@@ -3212,7 +3199,7 @@ var Hello2D = (() => {
3212
3199
  }
3213
3200
  }
3214
3201
  async function instantiateAsync(binary, binaryFile, imports) {
3215
- if (!binary && typeof WebAssembly.instantiateStreaming == "function") {
3202
+ if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile)) {
3216
3203
  try {
3217
3204
  var response = fetch(binaryFile, { credentials: "same-origin" });
3218
3205
  var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);
@@ -3233,7 +3220,8 @@ var Hello2D = (() => {
3233
3220
  wasmExports = Asyncify.instrumentWasmExports(wasmExports);
3234
3221
  wasmMemory = wasmExports["hc"];
3235
3222
  updateMemoryViews();
3236
- assignWasmExports(wasmExports);
3223
+ wasmExports["kc"];
3224
+ addOnInit(wasmExports["ic"]);
3237
3225
  removeRunDependency();
3238
3226
  return wasmExports;
3239
3227
  }
@@ -3243,16 +3231,22 @@ var Hello2D = (() => {
3243
3231
  }
3244
3232
  var info = getWasmImports();
3245
3233
  if (Module["instantiateWasm"]) {
3246
- return new Promise((resolve, reject) => {
3247
- Module["instantiateWasm"](info, (mod, inst) => {
3248
- resolve(receiveInstance(mod));
3249
- });
3250
- });
3234
+ try {
3235
+ return Module["instantiateWasm"](info, receiveInstance);
3236
+ } catch (e) {
3237
+ err(`Module.instantiateWasm callback failed with error: ${e}`);
3238
+ readyPromiseReject(e);
3239
+ }
3251
3240
  }
3252
3241
  wasmBinaryFile ?? (wasmBinaryFile = findWasmBinary());
3253
- var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
3254
- var exports = receiveInstantiationResult(result);
3255
- return exports;
3242
+ try {
3243
+ var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
3244
+ var exports = receiveInstantiationResult(result);
3245
+ return exports;
3246
+ } catch (e) {
3247
+ readyPromiseReject(e);
3248
+ return Promise.reject(e);
3249
+ }
3256
3250
  }
3257
3251
  class ExitStatus {
3258
3252
  constructor(status) {
@@ -3266,24 +3260,7 @@ var Hello2D = (() => {
3266
3260
  callbacks.shift()(Module);
3267
3261
  }
3268
3262
  };
3269
- var onPostRuns = [];
3270
- var addOnPostRun = (cb) => onPostRuns.push(cb);
3271
- var onPreRuns = [];
3272
- var addOnPreRun = (cb) => onPreRuns.push(cb);
3273
- var dynCalls = {};
3274
- var dynCallLegacy = (sig, ptr, args) => {
3275
- sig = sig.replace(/p/g, "i");
3276
- var f = dynCalls[sig];
3277
- return f(ptr, ...args);
3278
- };
3279
- var dynCall = (sig, ptr, args = [], promising = false) => {
3280
- var rtn = dynCallLegacy(sig, ptr, args);
3281
- function convert(rtn2) {
3282
- return rtn2;
3283
- }
3284
- return convert(rtn);
3285
- };
3286
- var noExitRuntime = true;
3263
+ var noExitRuntime = Module["noExitRuntime"] || true;
3287
3264
  class ExceptionInfo {
3288
3265
  constructor(excPtr) {
3289
3266
  this.excPtr = excPtr;
@@ -3364,7 +3341,7 @@ var Hello2D = (() => {
3364
3341
  }
3365
3342
  return parts;
3366
3343
  }, normalize: (path) => {
3367
- var isAbsolute = PATH.isAbs(path), trailingSlash = path.slice(-1) === "/";
3344
+ var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/";
3368
3345
  path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/");
3369
3346
  if (!path && !isAbsolute) {
3370
3347
  path = ".";
@@ -3379,7 +3356,7 @@ var Hello2D = (() => {
3379
3356
  return ".";
3380
3357
  }
3381
3358
  if (dir) {
3382
- dir = dir.slice(0, -1);
3359
+ dir = dir.substr(0, dir.length - 1);
3383
3360
  }
3384
3361
  return root + dir;
3385
3362
  }, basename: (path) => path && path.match(/([^\/]+|\/)\/*$/)[1], join: (...paths) => PATH.normalize(paths.join("/")), join2: (l, r) => PATH.normalize(l + "/" + r) };
@@ -3402,8 +3379,8 @@ var Hello2D = (() => {
3402
3379
  resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/");
3403
3380
  return (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
3404
3381
  }, relative: (from, to) => {
3405
- from = PATH_FS.resolve(from).slice(1);
3406
- to = PATH_FS.resolve(to).slice(1);
3382
+ from = PATH_FS.resolve(from).substr(1);
3383
+ to = PATH_FS.resolve(to).substr(1);
3407
3384
  function trim(arr) {
3408
3385
  var start = 0;
3409
3386
  for (; start < arr.length; start++) {
@@ -3436,13 +3413,41 @@ var Hello2D = (() => {
3436
3413
  outputParts = outputParts.concat(toParts.slice(samePartsLength));
3437
3414
  return outputParts.join("/");
3438
3415
  } };
3439
- var UTF8Decoder = new TextDecoder();
3416
+ var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : void 0;
3440
3417
  var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {
3441
3418
  var endIdx = idx + maxBytesToRead;
3442
3419
  var endPtr = idx;
3443
3420
  while (heapOrArray[endPtr] && !(endPtr >= endIdx))
3444
3421
  ++endPtr;
3445
- return UTF8Decoder.decode(heapOrArray.buffer ? heapOrArray.subarray(idx, endPtr) : new Uint8Array(heapOrArray.slice(idx, endPtr)));
3422
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
3423
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
3424
+ }
3425
+ var str = "";
3426
+ while (idx < endPtr) {
3427
+ var u0 = heapOrArray[idx++];
3428
+ if (!(u0 & 128)) {
3429
+ str += String.fromCharCode(u0);
3430
+ continue;
3431
+ }
3432
+ var u1 = heapOrArray[idx++] & 63;
3433
+ if ((u0 & 224) == 192) {
3434
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
3435
+ continue;
3436
+ }
3437
+ var u2 = heapOrArray[idx++] & 63;
3438
+ if ((u0 & 240) == 224) {
3439
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
3440
+ } else {
3441
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
3442
+ }
3443
+ if (u0 < 65536) {
3444
+ str += String.fromCharCode(u0);
3445
+ } else {
3446
+ var ch = u0 - 65536;
3447
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
3448
+ }
3449
+ }
3450
+ return str;
3446
3451
  };
3447
3452
  var FS_stdin_getChar_buffer = [];
3448
3453
  var lengthBytesUTF8 = (str) => {
@@ -3468,7 +3473,11 @@ var Hello2D = (() => {
3468
3473
  var startIdx = outIdx;
3469
3474
  var endIdx = outIdx + maxBytesToWrite - 1;
3470
3475
  for (var i2 = 0; i2 < str.length; ++i2) {
3471
- var u = str.codePointAt(i2);
3476
+ var u = str.charCodeAt(i2);
3477
+ if (u >= 55296 && u <= 57343) {
3478
+ var u1 = str.charCodeAt(++i2);
3479
+ u = 65536 + ((u & 1023) << 10) | u1 & 1023;
3480
+ }
3472
3481
  if (u <= 127) {
3473
3482
  if (outIdx >= endIdx)
3474
3483
  break;
@@ -3491,20 +3500,19 @@ var Hello2D = (() => {
3491
3500
  heap[outIdx++] = 128 | u >> 12 & 63;
3492
3501
  heap[outIdx++] = 128 | u >> 6 & 63;
3493
3502
  heap[outIdx++] = 128 | u & 63;
3494
- i2++;
3495
3503
  }
3496
3504
  }
3497
3505
  heap[outIdx] = 0;
3498
3506
  return outIdx - startIdx;
3499
3507
  };
3500
- var intArrayFromString = (stringy, dontAddNull, length) => {
3508
+ function intArrayFromString(stringy, dontAddNull, length) {
3501
3509
  var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
3502
3510
  var u8array = new Array(len);
3503
3511
  var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
3504
3512
  if (dontAddNull)
3505
3513
  u8array.length = numBytesWritten;
3506
3514
  return u8array;
3507
- };
3515
+ }
3508
3516
  var FS_stdin_getChar = () => {
3509
3517
  if (!FS_stdin_getChar_buffer.length) {
3510
3518
  var result = null;
@@ -3587,7 +3595,7 @@ var Hello2D = (() => {
3587
3595
  tty.output.push(val);
3588
3596
  }
3589
3597
  }, fsync(tty) {
3590
- if (tty.output?.length > 0) {
3598
+ if (tty.output && tty.output.length > 0) {
3591
3599
  out(UTF8ArrayToString(tty.output));
3592
3600
  tty.output = [];
3593
3601
  }
@@ -3606,11 +3614,12 @@ var Hello2D = (() => {
3606
3614
  tty.output.push(val);
3607
3615
  }
3608
3616
  }, fsync(tty) {
3609
- if (tty.output?.length > 0) {
3617
+ if (tty.output && tty.output.length > 0) {
3610
3618
  err(UTF8ArrayToString(tty.output));
3611
3619
  tty.output = [];
3612
3620
  }
3613
3621
  } } };
3622
+ var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
3614
3623
  var mmapAlloc = (size) => {
3615
3624
  abort();
3616
3625
  };
@@ -3620,7 +3629,7 @@ var Hello2D = (() => {
3620
3629
  if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
3621
3630
  throw new FS.ErrnoError(63);
3622
3631
  }
3623
- MEMFS.ops_table || (MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } });
3632
+ MEMFS.ops_table || (MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } });
3624
3633
  var node = FS.createNode(parent, name, mode, dev);
3625
3634
  if (FS.isDir(node.mode)) {
3626
3635
  node.node_ops = MEMFS.ops_table.dir.node;
@@ -3809,6 +3818,9 @@ var Hello2D = (() => {
3809
3818
  throw new FS.ErrnoError(28);
3810
3819
  }
3811
3820
  return position;
3821
+ }, allocate(stream, offset, length) {
3822
+ MEMFS.expandFileStorage(stream.node, offset + length);
3823
+ stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
3812
3824
  }, mmap(stream, length, position, prot, flags) {
3813
3825
  if (!FS.isFile(stream.node.mode)) {
3814
3826
  throw new FS.ErrnoError(43);
@@ -3846,8 +3858,10 @@ var Hello2D = (() => {
3846
3858
  return new Uint8Array(arrayBuffer);
3847
3859
  };
3848
3860
  asyncLoad.isAsync = true;
3849
- var FS_createDataFile = (...args) => FS.createDataFile(...args);
3850
- var preloadPlugins = [];
3861
+ var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => {
3862
+ FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn);
3863
+ };
3864
+ var preloadPlugins = Module["preloadPlugins"] || [];
3851
3865
  var FS_handledByPreloadPlugin = (byteArray, fullname, finish, onerror) => {
3852
3866
  if (typeof Browser != "undefined")
3853
3867
  Browser.init();
@@ -3904,12 +3918,12 @@ var Hello2D = (() => {
3904
3918
  mode |= 146;
3905
3919
  return mode;
3906
3920
  };
3907
- var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, filesystems: null, syncFSRequests: 0, readFiles: {}, ErrnoError: class {
3921
+ var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: class {
3908
3922
  constructor(errno) {
3909
3923
  __publicField(this, "name", "ErrnoError");
3910
3924
  this.errno = errno;
3911
3925
  }
3912
- }, FSStream: class {
3926
+ }, filesystems: null, syncFSRequests: 0, readFiles: {}, FSStream: class {
3913
3927
  constructor() {
3914
3928
  __publicField(this, "shared", {});
3915
3929
  }
@@ -3999,12 +4013,7 @@ var Hello2D = (() => {
3999
4013
  }
4000
4014
  if (parts[i2] === "..") {
4001
4015
  current_path = PATH.dirname(current_path);
4002
- if (FS.isRoot(current)) {
4003
- path = current_path + "/" + parts.slice(i2 + 1).join("/");
4004
- continue linkloop;
4005
- } else {
4006
- current = current.parent;
4007
- }
4016
+ current = current.parent;
4008
4017
  continue;
4009
4018
  }
4010
4019
  current_path = PATH.join2(current_path, parts[i2]);
@@ -4212,12 +4221,6 @@ var Hello2D = (() => {
4212
4221
  var stream = FS.createStream(origStream, fd);
4213
4222
  stream.stream_ops?.dup?.(stream);
4214
4223
  return stream;
4215
- }, doSetAttr(stream, node, attr) {
4216
- var setattr = stream?.stream_ops.setattr;
4217
- var arg = setattr ? stream : node;
4218
- setattr ?? (setattr = node.node_ops.setattr);
4219
- FS.checkOpExists(setattr, 63);
4220
- setattr(arg, attr);
4221
4224
  }, chrdev_stream_ops: { open(stream) {
4222
4225
  var device = FS.getDevice(stream.node.rdev);
4223
4226
  stream.stream_ops = device.stream_ops;
@@ -4360,12 +4363,10 @@ var Hello2D = (() => {
4360
4363
  }, mkdirTree(path, mode) {
4361
4364
  var dirs = path.split("/");
4362
4365
  var d = "";
4363
- for (var dir of dirs) {
4364
- if (!dir)
4366
+ for (var i2 = 0; i2 < dirs.length; ++i2) {
4367
+ if (!dirs[i2])
4365
4368
  continue;
4366
- if (d || PATH.isAbs(path))
4367
- d += "/";
4368
- d += dir;
4369
+ d += "/" + dirs[i2];
4369
4370
  try {
4370
4371
  FS.mkdir(d, mode);
4371
4372
  } catch (e) {
@@ -4517,18 +4518,8 @@ var Hello2D = (() => {
4517
4518
  var node = lookup.node;
4518
4519
  var getattr = FS.checkOpExists(node.node_ops.getattr, 63);
4519
4520
  return getattr(node);
4520
- }, fstat(fd) {
4521
- var stream = FS.getStreamChecked(fd);
4522
- var node = stream.node;
4523
- var getattr = stream.stream_ops.getattr;
4524
- var arg = getattr ? stream : node;
4525
- getattr ?? (getattr = node.node_ops.getattr);
4526
- FS.checkOpExists(getattr, 63);
4527
- return getattr(arg);
4528
4521
  }, lstat(path) {
4529
4522
  return FS.stat(path, true);
4530
- }, doChmod(stream, node, mode, dontFollow) {
4531
- FS.doSetAttr(stream, node, { mode: mode & 4095 | node.mode & ~4095, ctime: Date.now(), dontFollow });
4532
4523
  }, chmod(path, mode, dontFollow) {
4533
4524
  var node;
4534
4525
  if (typeof path == "string") {
@@ -4537,14 +4528,13 @@ var Hello2D = (() => {
4537
4528
  } else {
4538
4529
  node = path;
4539
4530
  }
4540
- FS.doChmod(null, node, mode, dontFollow);
4531
+ var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
4532
+ setattr(node, { mode: mode & 4095 | node.mode & ~4095, ctime: Date.now(), dontFollow });
4541
4533
  }, lchmod(path, mode) {
4542
4534
  FS.chmod(path, mode, true);
4543
4535
  }, fchmod(fd, mode) {
4544
4536
  var stream = FS.getStreamChecked(fd);
4545
- FS.doChmod(stream, stream.node, mode, false);
4546
- }, doChown(stream, node, dontFollow) {
4547
- FS.doSetAttr(stream, node, { timestamp: Date.now(), dontFollow });
4537
+ FS.chmod(stream.node, mode);
4548
4538
  }, chown(path, uid, gid, dontFollow) {
4549
4539
  var node;
4550
4540
  if (typeof path == "string") {
@@ -4553,24 +4543,13 @@ var Hello2D = (() => {
4553
4543
  } else {
4554
4544
  node = path;
4555
4545
  }
4556
- FS.doChown(null, node, dontFollow);
4546
+ var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
4547
+ setattr(node, { timestamp: Date.now(), dontFollow });
4557
4548
  }, lchown(path, uid, gid) {
4558
4549
  FS.chown(path, uid, gid, true);
4559
4550
  }, fchown(fd, uid, gid) {
4560
4551
  var stream = FS.getStreamChecked(fd);
4561
- FS.doChown(stream, stream.node, false);
4562
- }, doTruncate(stream, node, len) {
4563
- if (FS.isDir(node.mode)) {
4564
- throw new FS.ErrnoError(31);
4565
- }
4566
- if (!FS.isFile(node.mode)) {
4567
- throw new FS.ErrnoError(28);
4568
- }
4569
- var errCode = FS.nodePermissions(node, "w");
4570
- if (errCode) {
4571
- throw new FS.ErrnoError(errCode);
4572
- }
4573
- FS.doSetAttr(stream, node, { size: len, timestamp: Date.now() });
4552
+ FS.chown(stream.node, uid, gid);
4574
4553
  }, truncate(path, len) {
4575
4554
  if (len < 0) {
4576
4555
  throw new FS.ErrnoError(28);
@@ -4582,13 +4561,24 @@ var Hello2D = (() => {
4582
4561
  } else {
4583
4562
  node = path;
4584
4563
  }
4585
- FS.doTruncate(null, node, len);
4564
+ if (FS.isDir(node.mode)) {
4565
+ throw new FS.ErrnoError(31);
4566
+ }
4567
+ if (!FS.isFile(node.mode)) {
4568
+ throw new FS.ErrnoError(28);
4569
+ }
4570
+ var errCode = FS.nodePermissions(node, "w");
4571
+ if (errCode) {
4572
+ throw new FS.ErrnoError(errCode);
4573
+ }
4574
+ var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
4575
+ setattr(node, { size: len, timestamp: Date.now() });
4586
4576
  }, ftruncate(fd, len) {
4587
4577
  var stream = FS.getStreamChecked(fd);
4588
- if (len < 0 || (stream.flags & 2097155) === 0) {
4578
+ if ((stream.flags & 2097155) === 0) {
4589
4579
  throw new FS.ErrnoError(28);
4590
4580
  }
4591
- FS.doTruncate(stream, stream.node, len);
4581
+ FS.truncate(stream.node, len);
4592
4582
  }, utime(path, atime, mtime) {
4593
4583
  var lookup = FS.lookupPath(path, { follow: true });
4594
4584
  var node = lookup.node;
@@ -4745,6 +4735,23 @@ var Hello2D = (() => {
4745
4735
  if (!seeking)
4746
4736
  stream.position += bytesWritten;
4747
4737
  return bytesWritten;
4738
+ }, allocate(stream, offset, length) {
4739
+ if (FS.isClosed(stream)) {
4740
+ throw new FS.ErrnoError(8);
4741
+ }
4742
+ if (offset < 0 || length <= 0) {
4743
+ throw new FS.ErrnoError(28);
4744
+ }
4745
+ if ((stream.flags & 2097155) === 0) {
4746
+ throw new FS.ErrnoError(8);
4747
+ }
4748
+ if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
4749
+ throw new FS.ErrnoError(43);
4750
+ }
4751
+ if (!stream.stream_ops.allocate) {
4752
+ throw new FS.ErrnoError(138);
4753
+ }
4754
+ stream.stream_ops.allocate(stream, offset, length);
4748
4755
  }, mmap(stream, length, position, prot, flags) {
4749
4756
  if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {
4750
4757
  throw new FS.ErrnoError(2);
@@ -4775,23 +4782,27 @@ var Hello2D = (() => {
4775
4782
  if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
4776
4783
  throw new Error(`Invalid encoding type "${opts.encoding}"`);
4777
4784
  }
4785
+ var ret;
4778
4786
  var stream = FS.open(path, opts.flags);
4779
4787
  var stat = FS.stat(path);
4780
4788
  var length = stat.size;
4781
4789
  var buf = new Uint8Array(length);
4782
4790
  FS.read(stream, buf, 0, length, 0);
4783
4791
  if (opts.encoding === "utf8") {
4784
- buf = UTF8ArrayToString(buf);
4792
+ ret = UTF8ArrayToString(buf);
4793
+ } else if (opts.encoding === "binary") {
4794
+ ret = buf;
4785
4795
  }
4786
4796
  FS.close(stream);
4787
- return buf;
4797
+ return ret;
4788
4798
  }, writeFile(path, data, opts = {}) {
4789
4799
  opts.flags = opts.flags || 577;
4790
4800
  var stream = FS.open(path, opts.flags, opts.mode);
4791
4801
  if (typeof data == "string") {
4792
- data = new Uint8Array(intArrayFromString(data, true));
4793
- }
4794
- if (ArrayBuffer.isView(data)) {
4802
+ var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
4803
+ var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
4804
+ FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);
4805
+ } else if (ArrayBuffer.isView(data)) {
4795
4806
  FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);
4796
4807
  } else {
4797
4808
  throw new Error("Unsupported data type");
@@ -4886,10 +4897,12 @@ var Hello2D = (() => {
4886
4897
  FS.createStandardStreams(input, output, error);
4887
4898
  }, quit() {
4888
4899
  FS.initialized = false;
4889
- for (var stream of FS.streams) {
4890
- if (stream) {
4891
- FS.close(stream);
4900
+ for (var i2 = 0; i2 < FS.streams.length; i2++) {
4901
+ var stream = FS.streams[i2];
4902
+ if (!stream) {
4903
+ continue;
4892
4904
  }
4905
+ FS.close(stream);
4893
4906
  }
4894
4907
  }, findObject(path, dontResolveLastLink) {
4895
4908
  var ret = FS.analyzePath(path, dontResolveLastLink);
@@ -4931,8 +4944,6 @@ var Hello2D = (() => {
4931
4944
  try {
4932
4945
  FS.mkdir(current);
4933
4946
  } catch (e) {
4934
- if (e.errno != 20)
4935
- throw e;
4936
4947
  }
4937
4948
  parent = current;
4938
4949
  }
@@ -5167,14 +5178,7 @@ var Hello2D = (() => {
5167
5178
  node.stream_ops = stream_ops;
5168
5179
  return node;
5169
5180
  } };
5170
- var UTF8ToString = (ptr, maxBytesToRead) => {
5171
- if (!ptr)
5172
- return "";
5173
- var maxPtr = ptr + maxBytesToRead;
5174
- for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; )
5175
- ++end;
5176
- return UTF8Decoder.decode(HEAPU8.subarray(ptr, end));
5177
- };
5181
+ var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
5178
5182
  var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt(dirfd, path, allowEmpty) {
5179
5183
  if (PATH.isAbs(path)) {
5180
5184
  return path;
@@ -5483,12 +5487,12 @@ var Hello2D = (() => {
5483
5487
  try {
5484
5488
  path = SYSCALLS.getStr(path);
5485
5489
  path = SYSCALLS.calculateAt(dirfd, path);
5486
- if (!flags) {
5490
+ if (flags === 0) {
5487
5491
  FS.unlink(path);
5488
5492
  } else if (flags === 512) {
5489
5493
  FS.rmdir(path);
5490
5494
  } else {
5491
- return -28;
5495
+ abort("Invalid flags passed to unlinkat");
5492
5496
  }
5493
5497
  return 0;
5494
5498
  } catch (e) {
@@ -5512,12 +5516,7 @@ var Hello2D = (() => {
5512
5516
  var awaitingDependencies = {};
5513
5517
  var registeredTypes = {};
5514
5518
  var typeDependencies = {};
5515
- var InternalError = class InternalError extends Error {
5516
- constructor(message) {
5517
- super(message);
5518
- this.name = "InternalError";
5519
- }
5520
- };
5519
+ var InternalError;
5521
5520
  var throwInternalError = (message) => {
5522
5521
  throw new InternalError(message);
5523
5522
  };
@@ -5568,7 +5567,6 @@ var Hello2D = (() => {
5568
5567
  fieldRecords.forEach((field, i2) => {
5569
5568
  var fieldName = field.fieldName;
5570
5569
  var getterReturnType = fieldTypes2[i2];
5571
- var optional = fieldTypes2[i2].optional;
5572
5570
  var getter = field.getter;
5573
5571
  var getterContext = field.getterContext;
5574
5572
  var setterArgumentType = fieldTypes2[i2 + fieldRecords.length];
@@ -5578,7 +5576,7 @@ var Hello2D = (() => {
5578
5576
  var destructors = [];
5579
5577
  setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
5580
5578
  runDestructors(destructors);
5581
- }, optional };
5579
+ } };
5582
5580
  });
5583
5581
  return [{ name: reg.name, fromWireType: (ptr) => {
5584
5582
  var rv = {};
@@ -5589,7 +5587,7 @@ var Hello2D = (() => {
5589
5587
  return rv;
5590
5588
  }, toWireType: (destructors, o) => {
5591
5589
  for (var fieldName in fields) {
5592
- if (!(fieldName in o) && !fields[fieldName].optional) {
5590
+ if (!(fieldName in o)) {
5593
5591
  throw new TypeError(`Missing field: "${fieldName}"`);
5594
5592
  }
5595
5593
  }
@@ -5604,21 +5602,34 @@ var Hello2D = (() => {
5604
5602
  }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: readPointer, destructorFunction: rawDestructor }];
5605
5603
  });
5606
5604
  };
5607
- var AsciiToString = (ptr) => {
5608
- var str = "";
5609
- while (1) {
5610
- var ch = HEAPU8[ptr++];
5611
- if (!ch)
5612
- return str;
5613
- str += String.fromCharCode(ch);
5605
+ var embindRepr = (v) => {
5606
+ if (v === null) {
5607
+ return "null";
5608
+ }
5609
+ var t = typeof v;
5610
+ if (t === "object" || t === "array" || t === "function") {
5611
+ return v.toString();
5612
+ } else {
5613
+ return "" + v;
5614
5614
  }
5615
5615
  };
5616
- var BindingError = class BindingError extends Error {
5617
- constructor(message) {
5618
- super(message);
5619
- this.name = "BindingError";
5616
+ var embind_init_charCodes = () => {
5617
+ var codes = new Array(256);
5618
+ for (var i2 = 0; i2 < 256; ++i2) {
5619
+ codes[i2] = String.fromCharCode(i2);
5620
+ }
5621
+ embind_charCodes = codes;
5622
+ };
5623
+ var embind_charCodes;
5624
+ var readLatin1String = (ptr) => {
5625
+ var ret = "";
5626
+ var c = ptr;
5627
+ while (HEAPU8[c]) {
5628
+ ret += embind_charCodes[HEAPU8[c++]];
5620
5629
  }
5630
+ return ret;
5621
5631
  };
5632
+ var BindingError;
5622
5633
  var throwBindingError = (message) => {
5623
5634
  throw new BindingError(message);
5624
5635
  };
@@ -5660,15 +5671,12 @@ var Hello2D = (() => {
5660
5671
  }
5661
5672
  };
5662
5673
  var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {
5663
- name = AsciiToString(name);
5664
- const isUnsignedType = minRange === 0n;
5665
- let fromWireType = (value) => value;
5666
- if (isUnsignedType) {
5667
- const bitSize = size * 8;
5668
- fromWireType = (value) => BigInt.asUintN(bitSize, value);
5669
- maxRange = fromWireType(maxRange);
5670
- }
5671
- registerType(primitiveType, { name, fromWireType, toWireType: (destructors, value) => {
5674
+ name = readLatin1String(name);
5675
+ var isUnsignedType = name.indexOf("u") != -1;
5676
+ registerType(primitiveType, { name, fromWireType: (value) => value, toWireType: function(destructors, value) {
5677
+ if (typeof value != "bigint" && typeof value != "number") {
5678
+ throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`);
5679
+ }
5672
5680
  if (typeof value == "number") {
5673
5681
  value = BigInt(value);
5674
5682
  }
@@ -5677,7 +5685,7 @@ var Hello2D = (() => {
5677
5685
  };
5678
5686
  var GenericWireTypeSize = 8;
5679
5687
  var __embind_register_bool = (rawType, name, trueValue, falseValue) => {
5680
- name = AsciiToString(name);
5688
+ name = readLatin1String(name);
5681
5689
  registerType(rawType, { name, fromWireType: function(wt) {
5682
5690
  return !!wt;
5683
5691
  }, toWireType: function(destructors, o) {
@@ -5710,6 +5718,93 @@ var Hello2D = (() => {
5710
5718
  runDestructor($$);
5711
5719
  }
5712
5720
  };
5721
+ var downcastPointer = (ptr, ptrClass, desiredClass) => {
5722
+ if (ptrClass === desiredClass) {
5723
+ return ptr;
5724
+ }
5725
+ if (void 0 === desiredClass.baseClass) {
5726
+ return null;
5727
+ }
5728
+ var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
5729
+ if (rv === null) {
5730
+ return null;
5731
+ }
5732
+ return desiredClass.downcast(rv);
5733
+ };
5734
+ var registeredPointers = {};
5735
+ var registeredInstances = {};
5736
+ var getBasestPointer = (class_, ptr) => {
5737
+ if (ptr === void 0) {
5738
+ throwBindingError("ptr should not be undefined");
5739
+ }
5740
+ while (class_.baseClass) {
5741
+ ptr = class_.upcast(ptr);
5742
+ class_ = class_.baseClass;
5743
+ }
5744
+ return ptr;
5745
+ };
5746
+ var getInheritedInstance = (class_, ptr) => {
5747
+ ptr = getBasestPointer(class_, ptr);
5748
+ return registeredInstances[ptr];
5749
+ };
5750
+ var makeClassHandle = (prototype, record) => {
5751
+ if (!record.ptrType || !record.ptr) {
5752
+ throwInternalError("makeClassHandle requires ptr and ptrType");
5753
+ }
5754
+ var hasSmartPtrType = !!record.smartPtrType;
5755
+ var hasSmartPtr = !!record.smartPtr;
5756
+ if (hasSmartPtrType !== hasSmartPtr) {
5757
+ throwInternalError("Both smartPtrType and smartPtr must be specified");
5758
+ }
5759
+ record.count = { value: 1 };
5760
+ return attachFinalizer(Object.create(prototype, { $$: { value: record, writable: true } }));
5761
+ };
5762
+ function RegisteredPointer_fromWireType(ptr) {
5763
+ var rawPointer = this.getPointee(ptr);
5764
+ if (!rawPointer) {
5765
+ this.destructor(ptr);
5766
+ return null;
5767
+ }
5768
+ var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
5769
+ if (void 0 !== registeredInstance) {
5770
+ if (0 === registeredInstance.$$.count.value) {
5771
+ registeredInstance.$$.ptr = rawPointer;
5772
+ registeredInstance.$$.smartPtr = ptr;
5773
+ return registeredInstance["clone"]();
5774
+ } else {
5775
+ var rv = registeredInstance["clone"]();
5776
+ this.destructor(ptr);
5777
+ return rv;
5778
+ }
5779
+ }
5780
+ function makeDefaultHandle() {
5781
+ if (this.isSmartPointer) {
5782
+ return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });
5783
+ } else {
5784
+ return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });
5785
+ }
5786
+ }
5787
+ var actualType = this.registeredClass.getActualType(rawPointer);
5788
+ var registeredPointerRecord = registeredPointers[actualType];
5789
+ if (!registeredPointerRecord) {
5790
+ return makeDefaultHandle.call(this);
5791
+ }
5792
+ var toType;
5793
+ if (this.isConst) {
5794
+ toType = registeredPointerRecord.constPointerType;
5795
+ } else {
5796
+ toType = registeredPointerRecord.pointerType;
5797
+ }
5798
+ var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
5799
+ if (dp === null) {
5800
+ return makeDefaultHandle.call(this);
5801
+ }
5802
+ if (this.isSmartPointer) {
5803
+ return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });
5804
+ } else {
5805
+ return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });
5806
+ }
5807
+ }
5713
5808
  var attachFinalizer = (handle) => {
5714
5809
  if ("undefined" === typeof FinalizationRegistry) {
5715
5810
  attachFinalizer = (handle2) => handle2;
@@ -5740,8 +5835,7 @@ var Hello2D = (() => {
5740
5835
  };
5741
5836
  var delayFunction;
5742
5837
  var init_ClassHandle = () => {
5743
- let proto = ClassHandle.prototype;
5744
- Object.assign(proto, { isAliasOf(other) {
5838
+ Object.assign(ClassHandle.prototype, { isAliasOf(other) {
5745
5839
  if (!(this instanceof ClassHandle)) {
5746
5840
  return false;
5747
5841
  }
@@ -5804,15 +5898,10 @@ var Hello2D = (() => {
5804
5898
  this.$$.deleteScheduled = true;
5805
5899
  return this;
5806
5900
  } });
5807
- const symbolDispose = Symbol.dispose;
5808
- if (symbolDispose) {
5809
- proto[symbolDispose] = proto["delete"];
5810
- }
5811
5901
  };
5812
5902
  function ClassHandle() {
5813
5903
  }
5814
- var createNamedFunction = (name, func) => Object.defineProperty(func, "name", { value: name });
5815
- var registeredPointers = {};
5904
+ var createNamedFunction = (name, body) => Object.defineProperty(body, "name", { value: name });
5816
5905
  var ensureOverloadTable = (proto, methodName, humanName) => {
5817
5906
  if (void 0 === proto[methodName].overloadTable) {
5818
5907
  var prevFunc = proto[methodName];
@@ -5872,17 +5961,6 @@ var Hello2D = (() => {
5872
5961
  }
5873
5962
  return ptr;
5874
5963
  };
5875
- var embindRepr = (v) => {
5876
- if (v === null) {
5877
- return "null";
5878
- }
5879
- var t = typeof v;
5880
- if (t === "object" || t === "array" || t === "function") {
5881
- return v.toString();
5882
- } else {
5883
- return "" + v;
5884
- }
5885
- };
5886
5964
  function constNoSmartPtrRawPointerToWireType(destructors, handle) {
5887
5965
  if (handle === null) {
5888
5966
  if (this.isReference) {
@@ -5979,92 +6057,6 @@ var Hello2D = (() => {
5979
6057
  var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
5980
6058
  return ptr;
5981
6059
  }
5982
- var downcastPointer = (ptr, ptrClass, desiredClass) => {
5983
- if (ptrClass === desiredClass) {
5984
- return ptr;
5985
- }
5986
- if (void 0 === desiredClass.baseClass) {
5987
- return null;
5988
- }
5989
- var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
5990
- if (rv === null) {
5991
- return null;
5992
- }
5993
- return desiredClass.downcast(rv);
5994
- };
5995
- var registeredInstances = {};
5996
- var getBasestPointer = (class_, ptr) => {
5997
- if (ptr === void 0) {
5998
- throwBindingError("ptr should not be undefined");
5999
- }
6000
- while (class_.baseClass) {
6001
- ptr = class_.upcast(ptr);
6002
- class_ = class_.baseClass;
6003
- }
6004
- return ptr;
6005
- };
6006
- var getInheritedInstance = (class_, ptr) => {
6007
- ptr = getBasestPointer(class_, ptr);
6008
- return registeredInstances[ptr];
6009
- };
6010
- var makeClassHandle = (prototype, record) => {
6011
- if (!record.ptrType || !record.ptr) {
6012
- throwInternalError("makeClassHandle requires ptr and ptrType");
6013
- }
6014
- var hasSmartPtrType = !!record.smartPtrType;
6015
- var hasSmartPtr = !!record.smartPtr;
6016
- if (hasSmartPtrType !== hasSmartPtr) {
6017
- throwInternalError("Both smartPtrType and smartPtr must be specified");
6018
- }
6019
- record.count = { value: 1 };
6020
- return attachFinalizer(Object.create(prototype, { $$: { value: record, writable: true } }));
6021
- };
6022
- function RegisteredPointer_fromWireType(ptr) {
6023
- var rawPointer = this.getPointee(ptr);
6024
- if (!rawPointer) {
6025
- this.destructor(ptr);
6026
- return null;
6027
- }
6028
- var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
6029
- if (void 0 !== registeredInstance) {
6030
- if (0 === registeredInstance.$$.count.value) {
6031
- registeredInstance.$$.ptr = rawPointer;
6032
- registeredInstance.$$.smartPtr = ptr;
6033
- return registeredInstance["clone"]();
6034
- } else {
6035
- var rv = registeredInstance["clone"]();
6036
- this.destructor(ptr);
6037
- return rv;
6038
- }
6039
- }
6040
- function makeDefaultHandle() {
6041
- if (this.isSmartPointer) {
6042
- return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });
6043
- } else {
6044
- return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });
6045
- }
6046
- }
6047
- var actualType = this.registeredClass.getActualType(rawPointer);
6048
- var registeredPointerRecord = registeredPointers[actualType];
6049
- if (!registeredPointerRecord) {
6050
- return makeDefaultHandle.call(this);
6051
- }
6052
- var toType;
6053
- if (this.isConst) {
6054
- toType = registeredPointerRecord.constPointerType;
6055
- } else {
6056
- toType = registeredPointerRecord.pointerType;
6057
- }
6058
- var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
6059
- if (dp === null) {
6060
- return makeDefaultHandle.call(this);
6061
- }
6062
- if (this.isSmartPointer) {
6063
- return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });
6064
- } else {
6065
- return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });
6066
- }
6067
- }
6068
6060
  var init_RegisteredPointer = () => {
6069
6061
  Object.assign(RegisteredPointer.prototype, { getPointee(ptr) {
6070
6062
  if (this.rawGetPointee) {
@@ -6110,9 +6102,18 @@ var Hello2D = (() => {
6110
6102
  Module[name].argCount = numArguments;
6111
6103
  }
6112
6104
  };
6113
- var getDynCaller = (sig, ptr, promising = false) => (...args) => dynCall(sig, ptr, args, promising);
6114
- var embind__requireFunction = (signature, rawFunction, isAsync = false) => {
6115
- signature = AsciiToString(signature);
6105
+ var dynCallLegacy = (sig, ptr, args) => {
6106
+ sig = sig.replace(/p/g, "i");
6107
+ var f = Module["dynCall_" + sig];
6108
+ return f(ptr, ...args);
6109
+ };
6110
+ var dynCall = (sig, ptr, args = []) => {
6111
+ var rtn = dynCallLegacy(sig, ptr, args);
6112
+ return rtn;
6113
+ };
6114
+ var getDynCaller = (sig, ptr) => (...args) => dynCall(sig, ptr, args);
6115
+ var embind__requireFunction = (signature, rawFunction) => {
6116
+ signature = readLatin1String(signature);
6116
6117
  function makeDynCaller() {
6117
6118
  return getDynCaller(signature, rawFunction);
6118
6119
  }
@@ -6122,11 +6123,30 @@ var Hello2D = (() => {
6122
6123
  }
6123
6124
  return fp;
6124
6125
  };
6125
- class UnboundTypeError extends Error {
6126
- }
6126
+ var extendError = (baseErrorType, errorName) => {
6127
+ var errorClass = createNamedFunction(errorName, function(message) {
6128
+ this.name = errorName;
6129
+ this.message = message;
6130
+ var stack = new Error(message).stack;
6131
+ if (stack !== void 0) {
6132
+ this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, "");
6133
+ }
6134
+ });
6135
+ errorClass.prototype = Object.create(baseErrorType.prototype);
6136
+ errorClass.prototype.constructor = errorClass;
6137
+ errorClass.prototype.toString = function() {
6138
+ if (this.message === void 0) {
6139
+ return this.name;
6140
+ } else {
6141
+ return `${this.name}: ${this.message}`;
6142
+ }
6143
+ };
6144
+ return errorClass;
6145
+ };
6146
+ var UnboundTypeError;
6127
6147
  var getTypeName = (type) => {
6128
6148
  var ptr = ___getTypeName(type);
6129
- var rv = AsciiToString(ptr);
6149
+ var rv = readLatin1String(ptr);
6130
6150
  _free(ptr);
6131
6151
  return rv;
6132
6152
  };
@@ -6151,7 +6171,7 @@ var Hello2D = (() => {
6151
6171
  throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([", "]));
6152
6172
  };
6153
6173
  var __embind_register_class = (rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) => {
6154
- name = AsciiToString(name);
6174
+ name = readLatin1String(name);
6155
6175
  getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
6156
6176
  upcast && (upcast = embind__requireFunction(upcastSignature, upcast));
6157
6177
  downcast && (downcast = embind__requireFunction(downcastSignature, downcast));
@@ -6173,10 +6193,10 @@ var Hello2D = (() => {
6173
6193
  }
6174
6194
  var constructor = createNamedFunction(name, function(...args) {
6175
6195
  if (Object.getPrototypeOf(this) !== instancePrototype) {
6176
- throw new BindingError(`Use 'new' to construct ${name}`);
6196
+ throw new BindingError("Use 'new' to construct " + name);
6177
6197
  }
6178
6198
  if (void 0 === registeredClass.constructor_body) {
6179
- throw new BindingError(`${name} has no accessible constructor`);
6199
+ throw new BindingError(name + " has no accessible constructor");
6180
6200
  }
6181
6201
  var body = registeredClass.constructor_body[args.length];
6182
6202
  if (void 0 === body) {
@@ -6207,6 +6227,17 @@ var Hello2D = (() => {
6207
6227
  }
6208
6228
  return false;
6209
6229
  }
6230
+ function newFunc(constructor, argumentList) {
6231
+ if (!(constructor instanceof Function)) {
6232
+ throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`);
6233
+ }
6234
+ var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() {
6235
+ });
6236
+ dummy.prototype = constructor.prototype;
6237
+ var obj = new dummy();
6238
+ var r = constructor.apply(obj, argumentList);
6239
+ return r instanceof Object ? r : obj;
6240
+ }
6210
6241
  function createJsInvoker(argTypes, isClassMethodFunc, returns, isAsync) {
6211
6242
  var needsDestructorStack = usesDestructorStack(argTypes);
6212
6243
  var argCount = argTypes.length - 2;
@@ -6319,38 +6350,34 @@ var Hello2D = (() => {
6319
6350
  original.isAsync || importPattern.test(x);
6320
6351
  }
6321
6352
  }
6322
- }, instrumentFunction(original) {
6323
- var wrapper = (...args) => {
6324
- Asyncify.exportCallStack.push(original);
6325
- try {
6326
- return original(...args);
6327
- } finally {
6328
- if (!ABORT) {
6329
- Asyncify.exportCallStack.pop();
6330
- Asyncify.maybeStopUnwind();
6331
- }
6332
- }
6333
- };
6334
- Asyncify.funcWrappers.set(original, wrapper);
6335
- return wrapper;
6336
6353
  }, instrumentWasmExports(exports) {
6337
6354
  var ret = {};
6338
6355
  for (let [x, original] of Object.entries(exports)) {
6339
6356
  if (typeof original == "function") {
6340
- var wrapper = Asyncify.instrumentFunction(original);
6341
- ret[x] = wrapper;
6357
+ ret[x] = (...args) => {
6358
+ Asyncify.exportCallStack.push(x);
6359
+ try {
6360
+ return original(...args);
6361
+ } finally {
6362
+ if (!ABORT) {
6363
+ Asyncify.exportCallStack.pop();
6364
+ Asyncify.maybeStopUnwind();
6365
+ }
6366
+ }
6367
+ };
6342
6368
  } else {
6343
6369
  ret[x] = original;
6344
6370
  }
6345
6371
  }
6346
6372
  return ret;
6347
- }, State: { Normal: 0, Unwinding: 1, Rewinding: 2, Disabled: 3 }, state: 0, StackSize: 4096, currData: null, handleSleepReturnValue: 0, exportCallStack: [], callstackFuncToId: /* @__PURE__ */ new Map(), callStackIdToFunc: /* @__PURE__ */ new Map(), funcWrappers: /* @__PURE__ */ new Map(), callStackId: 0, asyncPromiseHandlers: null, sleepCallbacks: [], getCallStackId(func) {
6348
- if (!Asyncify.callstackFuncToId.has(func)) {
6349
- var id = Asyncify.callStackId++;
6350
- Asyncify.callstackFuncToId.set(func, id);
6351
- Asyncify.callStackIdToFunc.set(id, func);
6373
+ }, State: { Normal: 0, Unwinding: 1, Rewinding: 2, Disabled: 3 }, state: 0, StackSize: 4096, currData: null, handleSleepReturnValue: 0, exportCallStack: [], callStackNameToId: {}, callStackIdToName: {}, callStackId: 0, asyncPromiseHandlers: null, sleepCallbacks: [], getCallStackId(funcName) {
6374
+ var id = Asyncify.callStackNameToId[funcName];
6375
+ if (id === void 0) {
6376
+ id = Asyncify.callStackId++;
6377
+ Asyncify.callStackNameToId[funcName] = id;
6378
+ Asyncify.callStackIdToName[id] = funcName;
6352
6379
  }
6353
- return Asyncify.callstackFuncToId.get(func);
6380
+ return id;
6354
6381
  }, maybeStopUnwind() {
6355
6382
  if (Asyncify.currData && Asyncify.state === Asyncify.State.Unwinding && Asyncify.exportCallStack.length === 0) {
6356
6383
  Asyncify.state = Asyncify.State.Normal;
@@ -6375,13 +6402,16 @@ var Hello2D = (() => {
6375
6402
  var bottomOfCallStack = Asyncify.exportCallStack[0];
6376
6403
  var rewindId = Asyncify.getCallStackId(bottomOfCallStack);
6377
6404
  HEAP32[ptr + 8 >> 2] = rewindId;
6378
- }, getDataRewindFunc(ptr) {
6405
+ }, getDataRewindFuncName(ptr) {
6379
6406
  var id = HEAP32[ptr + 8 >> 2];
6380
- var func = Asyncify.callStackIdToFunc.get(id);
6407
+ var name = Asyncify.callStackIdToName[id];
6408
+ return name;
6409
+ }, getDataRewindFunc(name) {
6410
+ var func = wasmExports[name];
6381
6411
  return func;
6382
6412
  }, doRewind(ptr) {
6383
- var original = Asyncify.getDataRewindFunc(ptr);
6384
- var func = Asyncify.funcWrappers.get(original);
6413
+ var name = Asyncify.getDataRewindFuncName(ptr);
6414
+ var func = Asyncify.getDataRewindFunc(name);
6385
6415
  return func();
6386
6416
  }, handleSleep(startAsync) {
6387
6417
  if (ABORT)
@@ -6441,9 +6471,11 @@ var Hello2D = (() => {
6441
6471
  abort(`invalid state: ${Asyncify.state}`);
6442
6472
  }
6443
6473
  return Asyncify.handleSleepReturnValue;
6444
- }, handleAsync: (startAsync) => Asyncify.handleSleep((wakeUp) => {
6445
- startAsync().then(wakeUp);
6446
- }) };
6474
+ }, handleAsync(startAsync) {
6475
+ return Asyncify.handleSleep((wakeUp) => {
6476
+ startAsync().then(wakeUp);
6477
+ });
6478
+ } };
6447
6479
  function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) {
6448
6480
  var argCount = argTypes.length;
6449
6481
  if (argCount < 2) {
@@ -6465,7 +6497,8 @@ var Hello2D = (() => {
6465
6497
  }
6466
6498
  }
6467
6499
  let [args, invokerFnBody] = createJsInvoker(argTypes, isClassMethodFunc, returns, isAsync);
6468
- var invokerFn = new Function(...args, invokerFnBody)(...closureArgs);
6500
+ args.push(invokerFnBody);
6501
+ var invokerFn = newFunc(Function, args)(...closureArgs);
6469
6502
  return createNamedFunction(humanName, invokerFn);
6470
6503
  }
6471
6504
  var heap32VectorToArray = (count, firstElement) => {
@@ -6478,15 +6511,17 @@ var Hello2D = (() => {
6478
6511
  var getFunctionName = (signature) => {
6479
6512
  signature = signature.trim();
6480
6513
  const argsIndex = signature.indexOf("(");
6481
- if (argsIndex === -1)
6514
+ if (argsIndex !== -1) {
6515
+ return signature.substr(0, argsIndex);
6516
+ } else {
6482
6517
  return signature;
6483
- return signature.slice(0, argsIndex);
6518
+ }
6484
6519
  };
6485
6520
  var __embind_register_class_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync, isNonnullReturn) => {
6486
6521
  var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
6487
- methodName = AsciiToString(methodName);
6522
+ methodName = readLatin1String(methodName);
6488
6523
  methodName = getFunctionName(methodName);
6489
- rawInvoker = embind__requireFunction(invokerSignature, rawInvoker, isAsync);
6524
+ rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
6490
6525
  whenDependentTypesAreResolved([], [rawClassType], (classType) => {
6491
6526
  classType = classType[0];
6492
6527
  var humanName = `${classType.name}.${methodName}`;
@@ -6550,9 +6585,9 @@ var Hello2D = (() => {
6550
6585
  };
6551
6586
  var __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync, isNonnullReturn) => {
6552
6587
  var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
6553
- methodName = AsciiToString(methodName);
6588
+ methodName = readLatin1String(methodName);
6554
6589
  methodName = getFunctionName(methodName);
6555
- rawInvoker = embind__requireFunction(invokerSignature, rawInvoker, isAsync);
6590
+ rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
6556
6591
  whenDependentTypesAreResolved([], [rawClassType], (classType) => {
6557
6592
  classType = classType[0];
6558
6593
  var humanName = `${classType.name}.${methodName}`;
@@ -6601,7 +6636,7 @@ var Hello2D = (() => {
6601
6636
  return upcastPointer(this_.$$.ptr, this_.$$.ptrType.registeredClass, classType.registeredClass);
6602
6637
  };
6603
6638
  var __embind_register_class_property = (classType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) => {
6604
- fieldName = AsciiToString(fieldName);
6639
+ fieldName = readLatin1String(fieldName);
6605
6640
  getter = embind__requireFunction(getterSignature, getter);
6606
6641
  whenDependentTypesAreResolved([], [classType], (classType2) => {
6607
6642
  classType2 = classType2[0];
@@ -6638,16 +6673,21 @@ var Hello2D = (() => {
6638
6673
  });
6639
6674
  };
6640
6675
  var emval_freelist = [];
6641
- var emval_handles = [0, 1, , 1, null, 1, true, 1, false, 1];
6676
+ var emval_handles = [];
6642
6677
  var __emval_decref = (handle) => {
6643
6678
  if (handle > 9 && 0 === --emval_handles[handle + 1]) {
6644
6679
  emval_handles[handle] = void 0;
6645
6680
  emval_freelist.push(handle);
6646
6681
  }
6647
6682
  };
6683
+ var count_emval_handles = () => emval_handles.length / 2 - 5 - emval_freelist.length;
6684
+ var init_emval = () => {
6685
+ emval_handles.push(0, 1, void 0, 1, null, 1, true, 1, false, 1);
6686
+ Module["count_emval_handles"] = count_emval_handles;
6687
+ };
6648
6688
  var Emval = { toValue: (handle) => {
6649
6689
  if (!handle) {
6650
- throwBindingError(`Cannot use deleted val. handle = ${handle}`);
6690
+ throwBindingError("Cannot use deleted val. handle = " + handle);
6651
6691
  }
6652
6692
  return emval_handles[handle];
6653
6693
  }, toHandle: (value) => {
@@ -6699,7 +6739,7 @@ var Hello2D = (() => {
6699
6739
  }
6700
6740
  };
6701
6741
  var __embind_register_enum = (rawType, name, size, isSigned) => {
6702
- name = AsciiToString(name);
6742
+ name = readLatin1String(name);
6703
6743
  function ctor() {
6704
6744
  }
6705
6745
  ctor.values = {};
@@ -6717,7 +6757,7 @@ var Hello2D = (() => {
6717
6757
  };
6718
6758
  var __embind_register_enum_value = (rawEnumType, name, enumValue) => {
6719
6759
  var enumType = requireRegisteredType(rawEnumType, "enum");
6720
- name = AsciiToString(name);
6760
+ name = readLatin1String(name);
6721
6761
  var Enum = enumType.constructor;
6722
6762
  var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(`${enumType.name}_${name}`, function() {
6723
6763
  }) } });
@@ -6739,14 +6779,14 @@ var Hello2D = (() => {
6739
6779
  }
6740
6780
  };
6741
6781
  var __embind_register_float = (rawType, name, size) => {
6742
- name = AsciiToString(name);
6782
+ name = readLatin1String(name);
6743
6783
  registerType(rawType, { name, fromWireType: (value) => value, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: floatReadValueFromPointer(name, size), destructorFunction: null });
6744
6784
  };
6745
6785
  var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, isNonnullReturn) => {
6746
6786
  var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
6747
- name = AsciiToString(name);
6787
+ name = readLatin1String(name);
6748
6788
  name = getFunctionName(name);
6749
- rawInvoker = embind__requireFunction(signature, rawInvoker, isAsync);
6789
+ rawInvoker = embind__requireFunction(signature, rawInvoker);
6750
6790
  exposePublicSymbol(name, function() {
6751
6791
  throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes);
6752
6792
  }, argCount - 1);
@@ -6757,15 +6797,28 @@ var Hello2D = (() => {
6757
6797
  });
6758
6798
  };
6759
6799
  var __embind_register_integer = (primitiveType, name, size, minRange, maxRange) => {
6760
- name = AsciiToString(name);
6761
- const isUnsignedType = minRange === 0;
6762
- let fromWireType = (value) => value;
6763
- if (isUnsignedType) {
6800
+ name = readLatin1String(name);
6801
+ var fromWireType = (value) => value;
6802
+ if (minRange === 0) {
6764
6803
  var bitshift = 32 - 8 * size;
6765
6804
  fromWireType = (value) => value << bitshift >>> bitshift;
6766
- maxRange = fromWireType(maxRange);
6767
6805
  }
6768
- registerType(primitiveType, { name, fromWireType, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: integerReadValueFromPointer(name, size, minRange !== 0), destructorFunction: null });
6806
+ var isUnsignedType = name.includes("unsigned");
6807
+ var checkAssertions = (value, toTypeName) => {
6808
+ };
6809
+ var toWireType;
6810
+ if (isUnsignedType) {
6811
+ toWireType = function(destructors, value) {
6812
+ checkAssertions(value, this.name);
6813
+ return value >>> 0;
6814
+ };
6815
+ } else {
6816
+ toWireType = function(destructors, value) {
6817
+ checkAssertions(value, this.name);
6818
+ return value;
6819
+ };
6820
+ }
6821
+ registerType(primitiveType, { name, fromWireType, toWireType, argPackAdvance: GenericWireTypeSize, readValueFromPointer: integerReadValueFromPointer(name, size, minRange !== 0), destructorFunction: null });
6769
6822
  };
6770
6823
  var __embind_register_memory_view = (rawType, dataTypeIndex, name) => {
6771
6824
  var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array];
@@ -6775,7 +6828,7 @@ var Hello2D = (() => {
6775
6828
  var data = HEAPU32[handle + 4 >> 2];
6776
6829
  return new TA(HEAP8.buffer, data, size);
6777
6830
  }
6778
- name = AsciiToString(name);
6831
+ name = readLatin1String(name);
6779
6832
  registerType(rawType, { name, fromWireType: decodeMemoryView, argPackAdvance: GenericWireTypeSize, readValueFromPointer: decodeMemoryView }, { ignoreDuplicateRegistrations: true });
6780
6833
  };
6781
6834
  var EmValOptionalType = Object.assign({ optional: true }, EmValType);
@@ -6783,7 +6836,7 @@ var Hello2D = (() => {
6783
6836
  registerType(rawOptionalType, EmValOptionalType);
6784
6837
  };
6785
6838
  var __embind_register_smart_ptr = (rawType, rawPointeeType, name, sharingPolicy, getPointeeSignature, rawGetPointee, constructorSignature, rawConstructor, shareSignature, rawShare, destructorSignature, rawDestructor) => {
6786
- name = AsciiToString(name);
6839
+ name = readLatin1String(name);
6787
6840
  rawGetPointee = embind__requireFunction(getPointeeSignature, rawGetPointee);
6788
6841
  rawConstructor = embind__requireFunction(constructorSignature, rawConstructor);
6789
6842
  rawShare = embind__requireFunction(shareSignature, rawShare);
@@ -6795,7 +6848,7 @@ var Hello2D = (() => {
6795
6848
  });
6796
6849
  };
6797
6850
  var __embind_register_std_string = (rawType, name) => {
6798
- name = AsciiToString(name);
6851
+ name = readLatin1String(name);
6799
6852
  registerType(rawType, { name, fromWireType(value) {
6800
6853
  var length = HEAPU32[value >> 2];
6801
6854
  var payload = value + 4;
@@ -6825,7 +6878,7 @@ var Hello2D = (() => {
6825
6878
  }
6826
6879
  var length;
6827
6880
  var valueIsOfTypeString = typeof value == "string";
6828
- if (!(valueIsOfTypeString || ArrayBuffer.isView(value) && value.BYTES_PER_ELEMENT == 1)) {
6881
+ if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {
6829
6882
  throwBindingError("Cannot pass non-string to std::string");
6830
6883
  }
6831
6884
  if (valueIsOfTypeString) {
@@ -6837,11 +6890,22 @@ var Hello2D = (() => {
6837
6890
  var ptr = base + 4;
6838
6891
  HEAPU32[base >> 2] = length;
6839
6892
  if (valueIsOfTypeString) {
6840
- {
6841
- stringToUTF8(value, ptr, length + 1);
6842
- }
6893
+ stringToUTF8(value, ptr, length + 1);
6843
6894
  } else {
6844
- HEAPU8.set(value, ptr);
6895
+ if (valueIsOfTypeString) {
6896
+ for (var i2 = 0; i2 < length; ++i2) {
6897
+ var charCode = value.charCodeAt(i2);
6898
+ if (charCode > 255) {
6899
+ _free(base);
6900
+ throwBindingError("String has UTF-16 code units that do not fit in 8 bits");
6901
+ }
6902
+ HEAPU8[ptr + i2] = charCode;
6903
+ }
6904
+ } else {
6905
+ for (var i2 = 0; i2 < length; ++i2) {
6906
+ HEAPU8[ptr + i2] = value[i2];
6907
+ }
6908
+ }
6845
6909
  }
6846
6910
  if (destructors !== null) {
6847
6911
  destructors.push(_free, base);
@@ -6851,14 +6915,24 @@ var Hello2D = (() => {
6851
6915
  _free(ptr);
6852
6916
  } });
6853
6917
  };
6854
- var UTF16Decoder = new TextDecoder("utf-16le");
6918
+ var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0;
6855
6919
  var UTF16ToString = (ptr, maxBytesToRead) => {
6856
- var idx = ptr >> 1;
6920
+ var endPtr = ptr;
6921
+ var idx = endPtr >> 1;
6857
6922
  var maxIdx = idx + maxBytesToRead / 2;
6858
- var endIdx = idx;
6859
- while (!(endIdx >= maxIdx) && HEAPU16[endIdx])
6860
- ++endIdx;
6861
- return UTF16Decoder.decode(HEAPU16.subarray(idx, endIdx));
6923
+ while (!(idx >= maxIdx) && HEAPU16[idx])
6924
+ ++idx;
6925
+ endPtr = idx << 1;
6926
+ if (endPtr - ptr > 32 && UTF16Decoder)
6927
+ return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
6928
+ var str = "";
6929
+ for (var i2 = 0; !(i2 >= maxBytesToRead / 2); ++i2) {
6930
+ var codeUnit = HEAP16[ptr + i2 * 2 >> 1];
6931
+ if (codeUnit == 0)
6932
+ break;
6933
+ str += String.fromCharCode(codeUnit);
6934
+ }
6935
+ return str;
6862
6936
  };
6863
6937
  var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
6864
6938
  maxBytesToWrite ?? (maxBytesToWrite = 2147483647);
@@ -6877,12 +6951,19 @@ var Hello2D = (() => {
6877
6951
  };
6878
6952
  var lengthBytesUTF16 = (str) => str.length * 2;
6879
6953
  var UTF32ToString = (ptr, maxBytesToRead) => {
6954
+ var i2 = 0;
6880
6955
  var str = "";
6881
- for (var i2 = 0; !(i2 >= maxBytesToRead / 4); i2++) {
6956
+ while (!(i2 >= maxBytesToRead / 4)) {
6882
6957
  var utf32 = HEAP32[ptr + i2 * 4 >> 2];
6883
- if (!utf32)
6958
+ if (utf32 == 0)
6884
6959
  break;
6885
- str += String.fromCodePoint(utf32);
6960
+ ++i2;
6961
+ if (utf32 >= 65536) {
6962
+ var ch = utf32 - 65536;
6963
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
6964
+ } else {
6965
+ str += String.fromCharCode(utf32);
6966
+ }
6886
6967
  }
6887
6968
  return str;
6888
6969
  };
@@ -6893,11 +6974,12 @@ var Hello2D = (() => {
6893
6974
  var startPtr = outPtr;
6894
6975
  var endPtr = startPtr + maxBytesToWrite - 4;
6895
6976
  for (var i2 = 0; i2 < str.length; ++i2) {
6896
- var codePoint = str.codePointAt(i2);
6897
- if (codePoint > 65535) {
6898
- i2++;
6977
+ var codeUnit = str.charCodeAt(i2);
6978
+ if (codeUnit >= 55296 && codeUnit <= 57343) {
6979
+ var trailSurrogate = str.charCodeAt(++i2);
6980
+ codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
6899
6981
  }
6900
- HEAP32[outPtr >> 2] = codePoint;
6982
+ HEAP32[outPtr >> 2] = codeUnit;
6901
6983
  outPtr += 4;
6902
6984
  if (outPtr + 4 > endPtr)
6903
6985
  break;
@@ -6908,16 +6990,15 @@ var Hello2D = (() => {
6908
6990
  var lengthBytesUTF32 = (str) => {
6909
6991
  var len = 0;
6910
6992
  for (var i2 = 0; i2 < str.length; ++i2) {
6911
- var codePoint = str.codePointAt(i2);
6912
- if (codePoint > 65535) {
6913
- i2++;
6914
- }
6993
+ var codeUnit = str.charCodeAt(i2);
6994
+ if (codeUnit >= 55296 && codeUnit <= 57343)
6995
+ ++i2;
6915
6996
  len += 4;
6916
6997
  }
6917
6998
  return len;
6918
6999
  };
6919
7000
  var __embind_register_std_wstring = (rawType, charSize, name) => {
6920
- name = AsciiToString(name);
7001
+ name = readLatin1String(name);
6921
7002
  var decodeString, encodeString, readCharAt, lengthBytesUTF;
6922
7003
  if (charSize === 2) {
6923
7004
  decodeString = UTF16ToString;
@@ -6967,13 +7048,13 @@ var Hello2D = (() => {
6967
7048
  } });
6968
7049
  };
6969
7050
  var __embind_register_value_object = (rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) => {
6970
- structRegistrations[rawType] = { name: AsciiToString(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };
7051
+ structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };
6971
7052
  };
6972
7053
  var __embind_register_value_object_field = (structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) => {
6973
- structRegistrations[structType].fields.push({ fieldName: AsciiToString(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
7054
+ structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
6974
7055
  };
6975
7056
  var __embind_register_void = (rawType, name) => {
6976
- name = AsciiToString(name);
7057
+ name = readLatin1String(name);
6977
7058
  registerType(rawType, { isVoid: true, name, argPackAdvance: 0, fromWireType: () => void 0, toWireType: (destructors, o) => void 0 });
6978
7059
  };
6979
7060
  var emval_returnValue = (returnType, destructorsRef, handle) => {
@@ -7004,7 +7085,7 @@ var Hello2D = (() => {
7004
7085
  var getStringOrSymbol = (address) => {
7005
7086
  var symbol = emval_symbols[address];
7006
7087
  if (symbol === void 0) {
7007
- return AsciiToString(address);
7088
+ return readLatin1String(address);
7008
7089
  }
7009
7090
  return symbol;
7010
7091
  };
@@ -7019,7 +7100,14 @@ var Hello2D = (() => {
7019
7100
  second = Emval.toValue(second);
7020
7101
  return first == second;
7021
7102
  };
7022
- var emval_get_global = () => globalThis;
7103
+ var emval_get_global = () => {
7104
+ if (typeof globalThis == "object") {
7105
+ return globalThis;
7106
+ }
7107
+ return function() {
7108
+ return Function;
7109
+ }()("return this")();
7110
+ };
7023
7111
  var __emval_get_global = (name) => {
7024
7112
  if (name === 0) {
7025
7113
  return Emval.toHandle(emval_get_global());
@@ -7036,7 +7124,7 @@ var Hello2D = (() => {
7036
7124
  var emval_lookupTypes = (argCount, argTypes) => {
7037
7125
  var a = new Array(argCount);
7038
7126
  for (var i2 = 0; i2 < argCount; ++i2) {
7039
- a[i2] = requireRegisteredType(HEAPU32[argTypes + i2 * 4 >> 2], `parameter ${i2}`);
7127
+ a[i2] = requireRegisteredType(HEAPU32[argTypes + i2 * 4 >> 2], "parameter " + i2);
7040
7128
  }
7041
7129
  return a;
7042
7130
  };
@@ -7054,8 +7142,8 @@ var Hello2D = (() => {
7054
7142
  var params = ["retType"];
7055
7143
  var args = [retType];
7056
7144
  for (var i2 = 0; i2 < argCount; ++i2) {
7057
- argsList.push(`arg${i2}`);
7058
- params.push(`argType${i2}`);
7145
+ argsList.push("arg" + i2);
7146
+ params.push("argType" + i2);
7059
7147
  args.push(types[i2]);
7060
7148
  functionBody += ` var arg${i2} = argType${i2}.readValueFromPointer(args${offset ? "+" + offset : ""});
7061
7149
  `;
@@ -7070,7 +7158,8 @@ var Hello2D = (() => {
7070
7158
  functionBody += " return emval_returnValue(retType, destructorsRef, rv);\n";
7071
7159
  }
7072
7160
  functionBody += "};\n";
7073
- var invokerFunction = new Function(...params, functionBody)(...args);
7161
+ params.push(functionBody);
7162
+ var invokerFunction = newFunc(Function, params)(...args);
7074
7163
  var functionName = `methodCaller<(${types.map((t) => t.name).join(", ")}) => ${retType.name}>`;
7075
7164
  return emval_addMethodCaller(createNamedFunction(functionName, invokerFunction));
7076
7165
  };
@@ -7132,6 +7221,90 @@ var Hello2D = (() => {
7132
7221
  HEAP64[ptime >> 3] = BigInt(nsec);
7133
7222
  return 0;
7134
7223
  }
7224
+ var JSEvents = { memcpy(target, src, size) {
7225
+ HEAP8.set(HEAP8.subarray(src, src + size), target);
7226
+ }, removeAllEventListeners() {
7227
+ while (JSEvents.eventHandlers.length) {
7228
+ JSEvents._removeHandler(JSEvents.eventHandlers.length - 1);
7229
+ }
7230
+ JSEvents.deferredCalls = [];
7231
+ }, inEventHandler: 0, deferredCalls: [], deferCall(targetFunction, precedence, argsList) {
7232
+ function arraysHaveEqualContent(arrA, arrB) {
7233
+ if (arrA.length != arrB.length)
7234
+ return false;
7235
+ for (var i2 in arrA) {
7236
+ if (arrA[i2] != arrB[i2])
7237
+ return false;
7238
+ }
7239
+ return true;
7240
+ }
7241
+ for (var call of JSEvents.deferredCalls) {
7242
+ if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) {
7243
+ return;
7244
+ }
7245
+ }
7246
+ JSEvents.deferredCalls.push({ targetFunction, precedence, argsList });
7247
+ JSEvents.deferredCalls.sort((x, y) => x.precedence < y.precedence);
7248
+ }, removeDeferredCalls(targetFunction) {
7249
+ JSEvents.deferredCalls = JSEvents.deferredCalls.filter((call) => call.targetFunction != targetFunction);
7250
+ }, canPerformEventHandlerRequests() {
7251
+ if (navigator.userActivation) {
7252
+ return navigator.userActivation.isActive;
7253
+ }
7254
+ return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls;
7255
+ }, runDeferredCalls() {
7256
+ if (!JSEvents.canPerformEventHandlerRequests()) {
7257
+ return;
7258
+ }
7259
+ var deferredCalls = JSEvents.deferredCalls;
7260
+ JSEvents.deferredCalls = [];
7261
+ for (var call of deferredCalls) {
7262
+ call.targetFunction(...call.argsList);
7263
+ }
7264
+ }, eventHandlers: [], removeAllHandlersOnTarget: (target, eventTypeString) => {
7265
+ for (var i2 = 0; i2 < JSEvents.eventHandlers.length; ++i2) {
7266
+ if (JSEvents.eventHandlers[i2].target == target && (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i2].eventTypeString)) {
7267
+ JSEvents._removeHandler(i2--);
7268
+ }
7269
+ }
7270
+ }, _removeHandler(i2) {
7271
+ var h = JSEvents.eventHandlers[i2];
7272
+ h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture);
7273
+ JSEvents.eventHandlers.splice(i2, 1);
7274
+ }, registerOrRemoveHandler(eventHandler) {
7275
+ if (!eventHandler.target) {
7276
+ return -4;
7277
+ }
7278
+ if (eventHandler.callbackfunc) {
7279
+ eventHandler.eventListenerFunc = function(event) {
7280
+ ++JSEvents.inEventHandler;
7281
+ JSEvents.currentEventHandler = eventHandler;
7282
+ JSEvents.runDeferredCalls();
7283
+ eventHandler.handlerFunc(event);
7284
+ JSEvents.runDeferredCalls();
7285
+ --JSEvents.inEventHandler;
7286
+ };
7287
+ eventHandler.target.addEventListener(eventHandler.eventTypeString, eventHandler.eventListenerFunc, eventHandler.useCapture);
7288
+ JSEvents.eventHandlers.push(eventHandler);
7289
+ } else {
7290
+ for (var i2 = 0; i2 < JSEvents.eventHandlers.length; ++i2) {
7291
+ if (JSEvents.eventHandlers[i2].target == eventHandler.target && JSEvents.eventHandlers[i2].eventTypeString == eventHandler.eventTypeString) {
7292
+ JSEvents._removeHandler(i2--);
7293
+ }
7294
+ }
7295
+ }
7296
+ return 0;
7297
+ }, getNodeNameForTarget(target) {
7298
+ if (!target)
7299
+ return "";
7300
+ if (target == window)
7301
+ return "#window";
7302
+ if (target == screen)
7303
+ return "#screen";
7304
+ return target?.nodeName || "";
7305
+ }, fullscreenEnabled() {
7306
+ return document.fullscreenEnabled || document.webkitFullscreenEnabled;
7307
+ } };
7135
7308
  var maybeCStringToJsString = (cString) => cString > 2 ? UTF8ToString(cString) : cString;
7136
7309
  var specialHTMLTargets = [0, typeof document != "undefined" ? document : 0, typeof window != "undefined" ? window : 0];
7137
7310
  var findEventTarget = (target) => {
@@ -7248,7 +7421,7 @@ var Hello2D = (() => {
7248
7421
  if (typeof JSEvents == "object") {
7249
7422
  JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);
7250
7423
  }
7251
- if (GL.contexts[contextHandle]?.GLctx.canvas) {
7424
+ if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) {
7252
7425
  GL.contexts[contextHandle].GLctx.canvas.GLctxObject = void 0;
7253
7426
  }
7254
7427
  GL.contexts[contextHandle] = null;
@@ -8374,7 +8547,6 @@ var Hello2D = (() => {
8374
8547
  };
8375
8548
  var _emscripten_glWaitSync = _glWaitSync;
8376
8549
  var getHeapMax = () => 2147483648;
8377
- var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
8378
8550
  var growMemory = (size) => {
8379
8551
  var b = wasmMemory.buffer;
8380
8552
  var pages = (size - b.byteLength + 65535) / 65536 | 0;
@@ -8523,8 +8695,23 @@ var Hello2D = (() => {
8523
8695
  FS.staticInit();
8524
8696
  MEMFS.doesNotExistError = new FS.ErrnoError(44);
8525
8697
  MEMFS.doesNotExistError.stack = "<generic error, no stack>";
8698
+ InternalError = Module["InternalError"] = class InternalError extends Error {
8699
+ constructor(message) {
8700
+ super(message);
8701
+ this.name = "InternalError";
8702
+ }
8703
+ };
8704
+ embind_init_charCodes();
8705
+ BindingError = Module["BindingError"] = class BindingError extends Error {
8706
+ constructor(message) {
8707
+ super(message);
8708
+ this.name = "BindingError";
8709
+ }
8710
+ };
8526
8711
  init_ClassHandle();
8527
8712
  init_RegisteredPointer();
8713
+ UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
8714
+ init_emval();
8528
8715
  var miniTempWebGLFloatBuffersStorage = new Float32Array(288);
8529
8716
  for (var i = 0; i <= 288; ++i) {
8530
8717
  miniTempWebGLFloatBuffers[i] = miniTempWebGLFloatBuffersStorage.subarray(0, i);
@@ -8533,110 +8720,92 @@ var Hello2D = (() => {
8533
8720
  for (var i = 0; i <= 288; ++i) {
8534
8721
  miniTempWebGLIntBuffers[i] = miniTempWebGLIntBuffersStorage.subarray(0, i);
8535
8722
  }
8536
- {
8537
- if (Module["noExitRuntime"])
8538
- noExitRuntime = Module["noExitRuntime"];
8539
- if (Module["preloadPlugins"])
8540
- preloadPlugins = Module["preloadPlugins"];
8541
- if (Module["print"])
8542
- out = Module["print"];
8543
- if (Module["printErr"])
8544
- err = Module["printErr"];
8545
- if (Module["wasmBinary"])
8546
- wasmBinary = Module["wasmBinary"];
8547
- if (Module["arguments"])
8548
- Module["arguments"];
8549
- if (Module["thisProgram"])
8550
- Module["thisProgram"];
8551
- }
8723
+ var wasmImports = { C: ___cxa_throw, P: ___syscall_fcntl64, hb: ___syscall_getdents64, ob: ___syscall_ioctl, fb: ___syscall_mkdirat, Q: ___syscall_openat, kb: ___syscall_rmdir, gb: ___syscall_stat64, lb: ___syscall_unlinkat, pb: __abort_js, x: __embind_finalize_value_object, N: __embind_register_bigint, db: __embind_register_bool, l: __embind_register_class, k: __embind_register_class_class_function, z: __embind_register_class_constructor, a: __embind_register_class_function, g: __embind_register_class_property, bb: __embind_register_emval, G: __embind_register_enum, r: __embind_register_enum_value, M: __embind_register_float, L: __embind_register_function, s: __embind_register_integer, m: __embind_register_memory_view, B: __embind_register_optional, q: __embind_register_smart_ptr, cb: __embind_register_std_string, H: __embind_register_std_wstring, w: __embind_register_value_object, n: __embind_register_value_object_field, eb: __embind_register_void, h: __emval_as, A: __emval_await, t: __emval_call, e: __emval_call_method, b: __emval_decref, D: __emval_equals, I: __emval_get_global, d: __emval_get_method_caller, j: __emval_get_module_property, u: __emval_get_property, f: __emval_incref, $a: __emval_instanceof, ab: __emval_new_array, p: __emval_new_cstring, K: __emval_new_object, c: __emval_run_destructors, v: __emval_set_property, i: __emval_take_value, ib: _clock_time_get, R: _emscripten_get_canvas_element_size, _a: _emscripten_glActiveTexture, Za: _emscripten_glAttachShader, Xa: _emscripten_glBindAttribLocation, Wa: _emscripten_glBindBuffer, Va: _emscripten_glBindFramebuffer, Ua: _emscripten_glBindRenderbuffer, Ta: _emscripten_glBindTexture, Ab: _emscripten_glBindVertexArray, xb: _emscripten_glBindVertexArrayOES, Sa: _emscripten_glBlendColor, Ra: _emscripten_glBlendEquation, Bb: _emscripten_glBlendEquationSeparate, Qa: _emscripten_glBlendFunc, sb: _emscripten_glBlitFramebuffer, Pa: _emscripten_glBufferData, Oa: _emscripten_glCheckFramebufferStatus, Na: _emscripten_glClear, Ma: _emscripten_glClearColor, La: _emscripten_glClearStencil, Ka: _emscripten_glColorMask, Ja: _emscripten_glCompileShader, Ia: _emscripten_glCopyTexSubImage2D, Ha: _emscripten_glCreateProgram, Ga: _emscripten_glCreateShader, Fa: _emscripten_glDeleteBuffers, Ea: _emscripten_glDeleteFramebuffers, Da: _emscripten_glDeleteProgram, Ca: _emscripten_glDeleteRenderbuffers, Ba: _emscripten_glDeleteShader, tb: _emscripten_glDeleteSync, Aa: _emscripten_glDeleteTextures, zb: _emscripten_glDeleteVertexArrays, wb: _emscripten_glDeleteVertexArraysOES, za: _emscripten_glDepthMask, ya: _emscripten_glDisable, xa: _emscripten_glDisableVertexAttribArray, wa: _emscripten_glDrawArrays, va: _emscripten_glDrawElements, ua: _emscripten_glEnable, ta: _emscripten_glEnableVertexAttribArray, ub: _emscripten_glFenceSync, sa: _emscripten_glFinish, ra: _emscripten_glFlush, qa: _emscripten_glFramebufferRenderbuffer, pa: _emscripten_glFramebufferTexture2D, oa: _emscripten_glGenBuffers, na: _emscripten_glGenFramebuffers, ma: _emscripten_glGenRenderbuffers, la: _emscripten_glGenTextures, yb: _emscripten_glGenVertexArrays, vb: _emscripten_glGenVertexArraysOES, Cb: _emscripten_glGetAttribLocation, ka: _emscripten_glGetBufferParameteriv, ja: _emscripten_glGetError, ia: _emscripten_glGetFramebufferAttachmentParameteriv, ha: _emscripten_glGetIntegerv, ga: _emscripten_glGetProgramInfoLog, fa: _emscripten_glGetProgramiv, ea: _emscripten_glGetRenderbufferParameteriv, da: _emscripten_glGetShaderInfoLog, ca: _emscripten_glGetShaderPrecisionFormat, ba: _emscripten_glGetShaderiv, aa: _emscripten_glGetString, $: _emscripten_glGetStringi, _: _emscripten_glGetUniformLocation, Ya: _emscripten_glIsEnabled, Z: _emscripten_glIsTexture, Y: _emscripten_glLineWidth, X: _emscripten_glLinkProgram, W: _emscripten_glPixelStorei, V: _emscripten_glReadPixels, U: _emscripten_glRenderbufferStorage, rb: _emscripten_glRenderbufferStorageMultisample, T: _emscripten_glScissor, S: _emscripten_glShaderSource, gc: _emscripten_glTexImage2D, fc: _emscripten_glTexParameterf, ec: _emscripten_glTexParameterfv, dc: _emscripten_glTexParameteri, cc: _emscripten_glTexParameteriv, bc: _emscripten_glTexSubImage2D, ac: _emscripten_glUniform1f, $b: _emscripten_glUniform1fv, _b: _emscripten_glUniform1i, Zb: _emscripten_glUniform1iv, Yb: _emscripten_glUniform2f, Xb: _emscripten_glUniform2fv, Wb: _emscripten_glUniform2i, Vb: _emscripten_glUniform2iv, Ub: _emscripten_glUniform3f, Tb: _emscripten_glUniform3fv, Sb: _emscripten_glUniform3i, Rb: _emscripten_glUniform3iv, Qb: _emscripten_glUniform4f, Pb: _emscripten_glUniform4fv, Ob: _emscripten_glUniform4i, Nb: _emscripten_glUniform4iv, Mb: _emscripten_glUniformMatrix2fv, Lb: _emscripten_glUniformMatrix3fv, Kb: _emscripten_glUniformMatrix4fv, Jb: _emscripten_glUseProgram, Ib: _emscripten_glVertexAttrib1f, Hb: _emscripten_glVertexAttrib2fv, Gb: _emscripten_glVertexAttrib3fv, Fb: _emscripten_glVertexAttrib4fv, Eb: _emscripten_glVertexAttribPointer, Db: _emscripten_glViewport, qb: _emscripten_glWaitSync, jb: _emscripten_resize_heap, J: _emscripten_webgl_create_context, F: _emscripten_webgl_destroy_context, y: _emscripten_webgl_get_current_context, o: _emscripten_webgl_make_context_current, E: _fd_close, nb: _fd_read, mb: _fd_seek, O: _fd_write };
8724
+ var wasmExports = await createWasm();
8725
+ wasmExports["ic"];
8726
+ var ___getTypeName = wasmExports["jc"];
8727
+ var _malloc = wasmExports["lc"];
8728
+ var _free = wasmExports["mc"];
8729
+ Module["dynCall_ii"] = wasmExports["nc"];
8730
+ Module["dynCall_vi"] = wasmExports["oc"];
8731
+ Module["dynCall_ji"] = wasmExports["pc"];
8732
+ Module["dynCall_iii"] = wasmExports["qc"];
8733
+ Module["dynCall_vii"] = wasmExports["rc"];
8734
+ Module["dynCall_v"] = wasmExports["sc"];
8735
+ Module["dynCall_viij"] = wasmExports["tc"];
8736
+ Module["dynCall_fij"] = wasmExports["uc"];
8737
+ Module["dynCall_iij"] = wasmExports["vc"];
8738
+ Module["dynCall_viiij"] = wasmExports["wc"];
8739
+ Module["dynCall_viii"] = wasmExports["xc"];
8740
+ Module["dynCall_fif"] = wasmExports["yc"];
8741
+ Module["dynCall_viiii"] = wasmExports["zc"];
8742
+ Module["dynCall_fii"] = wasmExports["Ac"];
8743
+ Module["dynCall_iiii"] = wasmExports["Bc"];
8744
+ Module["dynCall_jii"] = wasmExports["Cc"];
8745
+ Module["dynCall_jij"] = wasmExports["Dc"];
8746
+ Module["dynCall_vij"] = wasmExports["Ec"];
8747
+ Module["dynCall_iiiiii"] = wasmExports["Fc"];
8748
+ Module["dynCall_viiiii"] = wasmExports["Gc"];
8749
+ Module["dynCall_iiiff"] = wasmExports["Hc"];
8750
+ Module["dynCall_vijii"] = wasmExports["Ic"];
8751
+ Module["dynCall_iiifi"] = wasmExports["Jc"];
8752
+ Module["dynCall_fi"] = wasmExports["Kc"];
8753
+ Module["dynCall_jijf"] = wasmExports["Lc"];
8754
+ Module["dynCall_fiii"] = wasmExports["Mc"];
8755
+ Module["dynCall_viiiji"] = wasmExports["Nc"];
8756
+ Module["dynCall_iijj"] = wasmExports["Oc"];
8757
+ Module["dynCall_iiiij"] = wasmExports["Pc"];
8758
+ Module["dynCall_diiii"] = wasmExports["Qc"];
8759
+ Module["dynCall_i"] = wasmExports["Rc"];
8760
+ Module["dynCall_vif"] = wasmExports["Sc"];
8761
+ Module["dynCall_di"] = wasmExports["Tc"];
8762
+ Module["dynCall_vid"] = wasmExports["Uc"];
8763
+ Module["dynCall_iiiiiii"] = wasmExports["Vc"];
8764
+ Module["dynCall_viiiiii"] = wasmExports["Wc"];
8765
+ Module["dynCall_iiiii"] = wasmExports["Xc"];
8766
+ Module["dynCall_iiiifii"] = wasmExports["Yc"];
8767
+ Module["dynCall_viiifii"] = wasmExports["Zc"];
8768
+ Module["dynCall_viiff"] = wasmExports["_c"];
8769
+ Module["dynCall_iiiiiiii"] = wasmExports["$c"];
8770
+ Module["dynCall_viiiiiii"] = wasmExports["ad"];
8771
+ Module["dynCall_iiiffi"] = wasmExports["bd"];
8772
+ Module["dynCall_iifffffffff"] = wasmExports["cd"];
8773
+ Module["dynCall_vifffffffff"] = wasmExports["dd"];
8774
+ Module["dynCall_iiff"] = wasmExports["ed"];
8775
+ Module["dynCall_viff"] = wasmExports["fd"];
8776
+ Module["dynCall_iif"] = wasmExports["gd"];
8777
+ Module["dynCall_viif"] = wasmExports["hd"];
8778
+ Module["dynCall_viffffff"] = wasmExports["id"];
8779
+ Module["dynCall_viffff"] = wasmExports["jd"];
8780
+ Module["dynCall_vifff"] = wasmExports["kd"];
8781
+ Module["dynCall_dii"] = wasmExports["ld"];
8782
+ Module["dynCall_viid"] = wasmExports["md"];
8783
+ Module["dynCall_iiiiffi"] = wasmExports["nd"];
8784
+ Module["dynCall_viiif"] = wasmExports["od"];
8785
+ Module["dynCall_viifffffffff"] = wasmExports["pd"];
8786
+ Module["dynCall_viiffffff"] = wasmExports["qd"];
8787
+ Module["dynCall_viiffff"] = wasmExports["rd"];
8788
+ Module["dynCall_viifff"] = wasmExports["sd"];
8789
+ Module["dynCall_viifi"] = wasmExports["td"];
8790
+ Module["dynCall_viddi"] = wasmExports["ud"];
8791
+ Module["dynCall_vifii"] = wasmExports["vd"];
8792
+ Module["dynCall_viifd"] = wasmExports["wd"];
8793
+ Module["dynCall_iiffi"] = wasmExports["xd"];
8794
+ Module["dynCall_viiiiiffii"] = wasmExports["yd"];
8795
+ Module["dynCall_iifii"] = wasmExports["zd"];
8796
+ Module["dynCall_vffff"] = wasmExports["Ad"];
8797
+ Module["dynCall_viiiiiiii"] = wasmExports["Bd"];
8798
+ Module["dynCall_vf"] = wasmExports["Cd"];
8799
+ Module["dynCall_viiiiiiiii"] = wasmExports["Dd"];
8800
+ Module["dynCall_viiiiiiiiii"] = wasmExports["Ed"];
8801
+ Module["dynCall_jiji"] = wasmExports["Fd"];
8802
+ Module["dynCall_iidiiii"] = wasmExports["Gd"];
8803
+ var _asyncify_start_unwind = wasmExports["Hd"];
8804
+ var _asyncify_stop_unwind = wasmExports["Id"];
8805
+ var _asyncify_start_rewind = wasmExports["Jd"];
8806
+ var _asyncify_stop_rewind = wasmExports["Kd"];
8552
8807
  Module["GL"] = GL;
8553
8808
  Module["Asyncify"] = Asyncify;
8554
- var ___getTypeName, _malloc, _free, _asyncify_start_unwind, _asyncify_stop_unwind, _asyncify_start_rewind, _asyncify_stop_rewind;
8555
- function assignWasmExports(wasmExports2) {
8556
- ___getTypeName = wasmExports2["jc"];
8557
- _malloc = wasmExports2["kc"];
8558
- _free = wasmExports2["lc"];
8559
- dynCalls["ii"] = wasmExports2["mc"];
8560
- dynCalls["vi"] = wasmExports2["nc"];
8561
- dynCalls["ji"] = wasmExports2["oc"];
8562
- dynCalls["iii"] = wasmExports2["pc"];
8563
- dynCalls["vii"] = wasmExports2["qc"];
8564
- dynCalls["v"] = wasmExports2["rc"];
8565
- dynCalls["viij"] = wasmExports2["sc"];
8566
- dynCalls["fij"] = wasmExports2["tc"];
8567
- dynCalls["iij"] = wasmExports2["uc"];
8568
- dynCalls["viiij"] = wasmExports2["vc"];
8569
- dynCalls["viii"] = wasmExports2["wc"];
8570
- dynCalls["fif"] = wasmExports2["xc"];
8571
- dynCalls["viiii"] = wasmExports2["yc"];
8572
- dynCalls["fii"] = wasmExports2["zc"];
8573
- dynCalls["iiii"] = wasmExports2["Ac"];
8574
- dynCalls["jii"] = wasmExports2["Bc"];
8575
- dynCalls["jij"] = wasmExports2["Cc"];
8576
- dynCalls["vij"] = wasmExports2["Dc"];
8577
- dynCalls["vijiii"] = wasmExports2["Ec"];
8578
- dynCalls["viiiii"] = wasmExports2["Fc"];
8579
- dynCalls["iiiff"] = wasmExports2["Gc"];
8580
- dynCalls["iiifi"] = wasmExports2["Hc"];
8581
- dynCalls["fi"] = wasmExports2["Ic"];
8582
- dynCalls["jijf"] = wasmExports2["Jc"];
8583
- dynCalls["fiii"] = wasmExports2["Kc"];
8584
- dynCalls["viiiji"] = wasmExports2["Lc"];
8585
- dynCalls["iijj"] = wasmExports2["Mc"];
8586
- dynCalls["iiiiii"] = wasmExports2["Nc"];
8587
- dynCalls["iiiij"] = wasmExports2["Oc"];
8588
- dynCalls["diiii"] = wasmExports2["Pc"];
8589
- dynCalls["i"] = wasmExports2["Qc"];
8590
- dynCalls["vif"] = wasmExports2["Rc"];
8591
- dynCalls["di"] = wasmExports2["Sc"];
8592
- dynCalls["vid"] = wasmExports2["Tc"];
8593
- dynCalls["iiiiiii"] = wasmExports2["Uc"];
8594
- dynCalls["viiiiii"] = wasmExports2["Vc"];
8595
- dynCalls["iiiii"] = wasmExports2["Wc"];
8596
- dynCalls["iiiifii"] = wasmExports2["Xc"];
8597
- dynCalls["viiifii"] = wasmExports2["Yc"];
8598
- dynCalls["viiff"] = wasmExports2["Zc"];
8599
- dynCalls["iiiiiiii"] = wasmExports2["_c"];
8600
- dynCalls["viiiiiii"] = wasmExports2["$c"];
8601
- dynCalls["iiiffi"] = wasmExports2["ad"];
8602
- dynCalls["iifffffffff"] = wasmExports2["bd"];
8603
- dynCalls["vifffffffff"] = wasmExports2["cd"];
8604
- dynCalls["iiff"] = wasmExports2["dd"];
8605
- dynCalls["viff"] = wasmExports2["ed"];
8606
- dynCalls["iif"] = wasmExports2["fd"];
8607
- dynCalls["viif"] = wasmExports2["gd"];
8608
- dynCalls["viffffff"] = wasmExports2["hd"];
8609
- dynCalls["viffff"] = wasmExports2["id"];
8610
- dynCalls["vifff"] = wasmExports2["jd"];
8611
- dynCalls["dii"] = wasmExports2["kd"];
8612
- dynCalls["viid"] = wasmExports2["ld"];
8613
- dynCalls["iiiiffi"] = wasmExports2["md"];
8614
- dynCalls["viiif"] = wasmExports2["nd"];
8615
- dynCalls["viifffffffff"] = wasmExports2["od"];
8616
- dynCalls["viiffffff"] = wasmExports2["pd"];
8617
- dynCalls["viiffff"] = wasmExports2["qd"];
8618
- dynCalls["viifff"] = wasmExports2["rd"];
8619
- dynCalls["viifi"] = wasmExports2["sd"];
8620
- dynCalls["viddi"] = wasmExports2["td"];
8621
- dynCalls["vifii"] = wasmExports2["ud"];
8622
- dynCalls["viifd"] = wasmExports2["vd"];
8623
- dynCalls["iiffi"] = wasmExports2["wd"];
8624
- dynCalls["viiiiiffii"] = wasmExports2["xd"];
8625
- dynCalls["iifii"] = wasmExports2["yd"];
8626
- dynCalls["vffff"] = wasmExports2["zd"];
8627
- dynCalls["viiiiiiii"] = wasmExports2["Ad"];
8628
- dynCalls["vf"] = wasmExports2["Bd"];
8629
- dynCalls["viiiiiiiii"] = wasmExports2["Cd"];
8630
- dynCalls["viiiiiiiiii"] = wasmExports2["Dd"];
8631
- dynCalls["jiji"] = wasmExports2["Ed"];
8632
- dynCalls["iidiiii"] = wasmExports2["Fd"];
8633
- _asyncify_start_unwind = wasmExports2["Gd"];
8634
- _asyncify_stop_unwind = wasmExports2["Hd"];
8635
- _asyncify_start_rewind = wasmExports2["Id"];
8636
- _asyncify_stop_rewind = wasmExports2["Jd"];
8637
- }
8638
- var wasmImports = { D: ___cxa_throw, O: ___syscall_fcntl64, hb: ___syscall_getdents64, ob: ___syscall_ioctl, fb: ___syscall_mkdirat, P: ___syscall_openat, kb: ___syscall_rmdir, gb: ___syscall_stat64, lb: ___syscall_unlinkat, pb: __abort_js, w: __embind_finalize_value_object, M: __embind_register_bigint, db: __embind_register_bool, k: __embind_register_class, j: __embind_register_class_class_function, z: __embind_register_class_constructor, a: __embind_register_class_function, g: __embind_register_class_property, bb: __embind_register_emval, G: __embind_register_enum, q: __embind_register_enum_value, L: __embind_register_float, K: __embind_register_function, s: __embind_register_integer, m: __embind_register_memory_view, B: __embind_register_optional, p: __embind_register_smart_ptr, cb: __embind_register_std_string, H: __embind_register_std_wstring, v: __embind_register_value_object, n: __embind_register_value_object_field, eb: __embind_register_void, h: __emval_as, x: __emval_await, C: __emval_call, e: __emval_call_method, b: __emval_decref, A: __emval_equals, I: __emval_get_global, d: __emval_get_method_caller, l: __emval_get_module_property, t: __emval_get_property, f: __emval_incref, $a: __emval_instanceof, ab: __emval_new_array, r: __emval_new_cstring, J: __emval_new_object, c: __emval_run_destructors, u: __emval_set_property, i: __emval_take_value, ib: _clock_time_get, Q: _emscripten_get_canvas_element_size, Za: _emscripten_glActiveTexture, Ya: _emscripten_glAttachShader, Wa: _emscripten_glBindAttribLocation, Va: _emscripten_glBindBuffer, Ua: _emscripten_glBindFramebuffer, Ta: _emscripten_glBindRenderbuffer, Sa: _emscripten_glBindTexture, Ab: _emscripten_glBindVertexArray, xb: _emscripten_glBindVertexArrayOES, Ra: _emscripten_glBlendColor, Qa: _emscripten_glBlendEquation, Bb: _emscripten_glBlendEquationSeparate, Pa: _emscripten_glBlendFunc, sb: _emscripten_glBlitFramebuffer, Oa: _emscripten_glBufferData, Na: _emscripten_glCheckFramebufferStatus, Ma: _emscripten_glClear, La: _emscripten_glClearColor, Ka: _emscripten_glClearStencil, Ja: _emscripten_glColorMask, Ia: _emscripten_glCompileShader, Ha: _emscripten_glCopyTexSubImage2D, Ga: _emscripten_glCreateProgram, Fa: _emscripten_glCreateShader, Ea: _emscripten_glDeleteBuffers, Da: _emscripten_glDeleteFramebuffers, Ca: _emscripten_glDeleteProgram, Ba: _emscripten_glDeleteRenderbuffers, Aa: _emscripten_glDeleteShader, tb: _emscripten_glDeleteSync, za: _emscripten_glDeleteTextures, zb: _emscripten_glDeleteVertexArrays, wb: _emscripten_glDeleteVertexArraysOES, ya: _emscripten_glDepthMask, xa: _emscripten_glDisable, wa: _emscripten_glDisableVertexAttribArray, va: _emscripten_glDrawArrays, ua: _emscripten_glDrawElements, ta: _emscripten_glEnable, sa: _emscripten_glEnableVertexAttribArray, ub: _emscripten_glFenceSync, ra: _emscripten_glFinish, qa: _emscripten_glFlush, pa: _emscripten_glFramebufferRenderbuffer, oa: _emscripten_glFramebufferTexture2D, na: _emscripten_glGenBuffers, ma: _emscripten_glGenFramebuffers, la: _emscripten_glGenRenderbuffers, ka: _emscripten_glGenTextures, yb: _emscripten_glGenVertexArrays, vb: _emscripten_glGenVertexArraysOES, Cb: _emscripten_glGetAttribLocation, ja: _emscripten_glGetBufferParameteriv, ia: _emscripten_glGetError, ha: _emscripten_glGetFramebufferAttachmentParameteriv, ga: _emscripten_glGetIntegerv, fa: _emscripten_glGetProgramInfoLog, ea: _emscripten_glGetProgramiv, da: _emscripten_glGetRenderbufferParameteriv, ca: _emscripten_glGetShaderInfoLog, ba: _emscripten_glGetShaderPrecisionFormat, aa: _emscripten_glGetShaderiv, $: _emscripten_glGetString, _: _emscripten_glGetStringi, Z: _emscripten_glGetUniformLocation, Xa: _emscripten_glIsEnabled, Y: _emscripten_glIsTexture, X: _emscripten_glLineWidth, W: _emscripten_glLinkProgram, V: _emscripten_glPixelStorei, U: _emscripten_glReadPixels, T: _emscripten_glRenderbufferStorage, rb: _emscripten_glRenderbufferStorageMultisample, S: _emscripten_glScissor, R: _emscripten_glShaderSource, gc: _emscripten_glTexImage2D, fc: _emscripten_glTexParameterf, ec: _emscripten_glTexParameterfv, dc: _emscripten_glTexParameteri, cc: _emscripten_glTexParameteriv, bc: _emscripten_glTexSubImage2D, ac: _emscripten_glUniform1f, $b: _emscripten_glUniform1fv, _b: _emscripten_glUniform1i, Zb: _emscripten_glUniform1iv, Yb: _emscripten_glUniform2f, Xb: _emscripten_glUniform2fv, Wb: _emscripten_glUniform2i, Vb: _emscripten_glUniform2iv, Ub: _emscripten_glUniform3f, Tb: _emscripten_glUniform3fv, Sb: _emscripten_glUniform3i, Rb: _emscripten_glUniform3iv, Qb: _emscripten_glUniform4f, Pb: _emscripten_glUniform4fv, Ob: _emscripten_glUniform4i, Nb: _emscripten_glUniform4iv, Mb: _emscripten_glUniformMatrix2fv, Lb: _emscripten_glUniformMatrix3fv, Kb: _emscripten_glUniformMatrix4fv, Jb: _emscripten_glUseProgram, Ib: _emscripten_glVertexAttrib1f, Hb: _emscripten_glVertexAttrib2fv, Gb: _emscripten_glVertexAttrib3fv, Fb: _emscripten_glVertexAttrib4fv, Eb: _emscripten_glVertexAttribPointer, Db: _emscripten_glViewport, qb: _emscripten_glWaitSync, jb: _emscripten_resize_heap, _a: _emscripten_webgl_create_context, F: _emscripten_webgl_destroy_context, y: _emscripten_webgl_get_current_context, o: _emscripten_webgl_make_context_current, E: _fd_close, nb: _fd_read, mb: _fd_seek, N: _fd_write };
8639
- var wasmExports = await createWasm();
8640
8809
  function run() {
8641
8810
  if (runDependencies > 0) {
8642
8811
  dependenciesFulfilled = run;
@@ -8652,7 +8821,7 @@ var Hello2D = (() => {
8652
8821
  if (ABORT)
8653
8822
  return;
8654
8823
  initRuntime();
8655
- readyPromiseResolve?.(Module);
8824
+ readyPromiseResolve(Module);
8656
8825
  Module["onRuntimeInitialized"]?.();
8657
8826
  postRun();
8658
8827
  }
@@ -8666,25 +8835,15 @@ var Hello2D = (() => {
8666
8835
  doRun();
8667
8836
  }
8668
8837
  }
8669
- function preInit() {
8670
- if (Module["preInit"]) {
8671
- if (typeof Module["preInit"] == "function")
8672
- Module["preInit"] = [Module["preInit"]];
8673
- while (Module["preInit"].length > 0) {
8674
- Module["preInit"].shift()();
8675
- }
8838
+ if (Module["preInit"]) {
8839
+ if (typeof Module["preInit"] == "function")
8840
+ Module["preInit"] = [Module["preInit"]];
8841
+ while (Module["preInit"].length > 0) {
8842
+ Module["preInit"].pop()();
8676
8843
  }
8677
8844
  }
8678
- preInit();
8679
8845
  run();
8680
- if (runtimeInitialized) {
8681
- moduleRtn = Module;
8682
- } else {
8683
- moduleRtn = new Promise((resolve, reject) => {
8684
- readyPromiseResolve = resolve;
8685
- readyPromiseReject = reject;
8686
- });
8687
- }
8846
+ moduleRtn = readyPromise;
8688
8847
  return moduleRtn;
8689
8848
  };
8690
8849
  })();
@@ -8874,7 +9033,7 @@ const workerInit = (init) => {
8874
9033
  };
8875
9034
  };
8876
9035
 
8877
- const PAGInit = (moduleOption = {}) => Hello2D(moduleOption).then((module) => {
9036
+ const PAGInit = (moduleOption = {}) => PAGInit$1(moduleOption).then((module) => {
8878
9037
  PAGBind(module);
8879
9038
  module.webAssemblyQueue = new WebAssemblyQueue();
8880
9039
  module.globalCanvas = new module.GlobalCanvas();