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.umd.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
@@ -200,7 +200,7 @@
200
200
  AlphaType: AlphaType
201
201
  });
202
202
 
203
- var __defProp$e = Object.defineProperty;
203
+ var __defProp$d = Object.defineProperty;
204
204
  var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
205
205
  var __decorateClass$c = (decorators, target, key, kind) => {
206
206
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
@@ -208,7 +208,7 @@
208
208
  if (decorator = decorators[i])
209
209
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
210
210
  if (kind && result)
211
- __defProp$e(target, key, result);
211
+ __defProp$d(target, key, result);
212
212
  return result;
213
213
  };
214
214
  let Matrix$1 = class {
@@ -419,7 +419,7 @@
419
419
  };
420
420
  const isInstanceOf$1 = (value, type) => typeof type !== "undefined" && value instanceof type;
421
421
 
422
- var __defProp$d = Object.defineProperty;
422
+ var __defProp$c = Object.defineProperty;
423
423
  var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
424
424
  var __decorateClass$b = (decorators, target, key, kind) => {
425
425
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
@@ -427,7 +427,7 @@
427
427
  if (decorator = decorators[i])
428
428
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
429
429
  if (kind && result)
430
- __defProp$d(target, key, result);
430
+ __defProp$c(target, key, result);
431
431
  return result;
432
432
  };
433
433
  let PAGLayer = class {
@@ -559,7 +559,7 @@
559
559
  wasmAwaitRewind$1
560
560
  ], PAGLayer);
561
561
 
562
- var __defProp$c = Object.defineProperty;
562
+ var __defProp$b = Object.defineProperty;
563
563
  var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
564
564
  var __decorateClass$a = (decorators, target, key, kind) => {
565
565
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
@@ -567,7 +567,7 @@
567
567
  if (decorator = decorators[i])
568
568
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
569
569
  if (kind && result)
570
- __defProp$c(target, key, result);
570
+ __defProp$b(target, key, result);
571
571
  return result;
572
572
  };
573
573
  let PAGComposition = class extends PAGLayer {
@@ -682,28 +682,7 @@
682
682
  return Promise.resolve(null);
683
683
  };
684
684
 
685
- const writeBufferToWasm = (module, data) => {
686
- const uint8Array = new Uint8Array(data);
687
- const numBytes = uint8Array.byteLength;
688
- const dataPtr = module._malloc(numBytes);
689
- const dataOnHeap = new Uint8Array(module.HEAPU8.buffer, dataPtr, numBytes);
690
- dataOnHeap.set(uint8Array);
691
- return { byteOffset: dataPtr, length: numBytes, free: () => module._free(dataPtr) };
692
- };
693
- const readBufferFromWasm = (module, data, handle) => {
694
- const uint8Array = new Uint8Array(data);
695
- const dataPtr = module._malloc(uint8Array.byteLength);
696
- if (!handle(dataPtr, uint8Array.byteLength))
697
- return {
698
- data: null,
699
- free: () => module._free(dataPtr)
700
- };
701
- const dataOnHeap = new Uint8Array(module.HEAPU8.buffer, dataPtr, uint8Array.byteLength);
702
- uint8Array.set(dataOnHeap);
703
- return { data: uint8Array, free: () => module._free(dataPtr) };
704
- };
705
-
706
- var __defProp$b = Object.defineProperty;
685
+ var __defProp$a = Object.defineProperty;
707
686
  var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
708
687
  var __decorateClass$9 = (decorators, target, key, kind) => {
709
688
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
@@ -711,7 +690,7 @@
711
690
  if (decorator = decorators[i])
712
691
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
713
692
  if (kind && result)
714
- __defProp$b(target, key, result);
693
+ __defProp$a(target, key, result);
715
694
  return result;
716
695
  };
717
696
  let PAGFile = class extends PAGComposition {
@@ -726,9 +705,8 @@
726
705
  static loadFromBuffer(buffer) {
727
706
  if (!buffer || !(buffer.byteLength > 0))
728
707
  throw new Error("Initialize PAGFile data not be empty!");
729
- const { byteOffset, length, free } = writeBufferToWasm(PAGModule, buffer);
730
- const wasmIns = PAGModule._PAGFile._Load(byteOffset, length);
731
- free();
708
+ const uint8Buffer = new Uint8Array(buffer);
709
+ const wasmIns = PAGModule._PAGFile._Load(uint8Buffer);
732
710
  if (!wasmIns)
733
711
  throw new Error("Load PAGFile fail!");
734
712
  const pagFile = new PAGFile(wasmIns);
@@ -791,7 +769,7 @@
791
769
  wasmAwaitRewind$1
792
770
  ], PAGFile);
793
771
 
794
- var __defProp$a = Object.defineProperty;
772
+ var __defProp$9 = Object.defineProperty;
795
773
  var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
796
774
  var __decorateClass$8 = (decorators, target, key, kind) => {
797
775
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
@@ -799,7 +777,7 @@
799
777
  if (decorator = decorators[i])
800
778
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
801
779
  if (kind && result)
802
- __defProp$a(target, key, result);
780
+ __defProp$9(target, key, result);
803
781
  return result;
804
782
  };
805
783
  let PAGSurface = class {
@@ -843,14 +821,8 @@
843
821
  readPixels(colorType, alphaType) {
844
822
  if (colorType === ColorType.Unknown)
845
823
  return null;
846
- const rowBytes = this.width() * (colorType === ColorType.ALPHA_8 ? 1 : 4);
847
- const length = rowBytes * this.height();
848
- const dataUint8Array = new Uint8Array(length);
849
- const { data, free } = readBufferFromWasm(PAGModule, dataUint8Array, (dataPtr) => {
850
- return this.wasmIns._readPixels(colorType, alphaType, dataPtr, rowBytes);
851
- });
852
- free();
853
- return data;
824
+ const rowBytes = this.wasmIns._width() * (colorType === ColorType.ALPHA_8 ? 1 : 4);
825
+ return this.wasmIns._readPixels(colorType, alphaType, rowBytes);
854
826
  }
855
827
  destroy() {
856
828
  this.wasmIns.delete();
@@ -862,7 +834,7 @@
862
834
  wasmAwaitRewind$1
863
835
  ], PAGSurface);
864
836
 
865
- var __defProp$9 = Object.defineProperty;
837
+ var __defProp$8 = Object.defineProperty;
866
838
  var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
867
839
  var __decorateClass$7 = (decorators, target, key, kind) => {
868
840
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
@@ -870,7 +842,7 @@
870
842
  if (decorator = decorators[i])
871
843
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
872
844
  if (kind && result)
873
- __defProp$9(target, key, result);
845
+ __defProp$8(target, key, result);
874
846
  return result;
875
847
  };
876
848
  let PAGPlayer = class {
@@ -1044,7 +1016,7 @@
1044
1016
  wasmAwaitRewind$1
1045
1017
  ], PAGPlayer);
1046
1018
 
1047
- var __defProp$8 = Object.defineProperty;
1019
+ var __defProp$7 = Object.defineProperty;
1048
1020
  var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
1049
1021
  var __decorateClass$6 = (decorators, target, key, kind) => {
1050
1022
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
@@ -1052,7 +1024,7 @@
1052
1024
  if (decorator = decorators[i])
1053
1025
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1054
1026
  if (kind && result)
1055
- __defProp$8(target, key, result);
1027
+ __defProp$7(target, key, result);
1056
1028
  return result;
1057
1029
  };
1058
1030
  let PAGImage = class {
@@ -1080,9 +1052,7 @@
1080
1052
  }
1081
1053
  static fromPixels(pixels, width, height, colorType, alphaType) {
1082
1054
  const rowBytes = width * (colorType === ColorType.ALPHA_8 ? 1 : 4);
1083
- const { byteOffset, free } = writeBufferToWasm(PAGModule, pixels);
1084
- const wasmIns = PAGModule._PAGImage._FromPixels(byteOffset, width, height, rowBytes, colorType, alphaType);
1085
- free();
1055
+ const wasmIns = PAGModule._PAGImage._FromPixels(pixels, width, height, rowBytes, colorType, alphaType);
1086
1056
  if (!wasmIns)
1087
1057
  throw new Error("Make PAGImage from pixels fail!");
1088
1058
  return new PAGImage(wasmIns);
@@ -1365,7 +1335,7 @@
1365
1335
 
1366
1336
  const isInstanceOf = (value, type) => typeof type !== "undefined" && value instanceof type;
1367
1337
 
1368
- const nav = (navigator == null ? void 0 : navigator.userAgent) || "";
1338
+ const nav = navigator?.userAgent || "";
1369
1339
  const ANDROID = /android|adr/i.test(nav);
1370
1340
  const MOBILE = /(mobile)/i.test(nav) && ANDROID;
1371
1341
  !(/(mobile)/i.test(nav) || MOBILE) && /Mac OS X/i.test(nav);
@@ -1428,7 +1398,7 @@
1428
1398
  }
1429
1399
  };
1430
1400
 
1431
- var __defProp$7 = Object.defineProperty;
1401
+ var __defProp$6 = Object.defineProperty;
1432
1402
  var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
1433
1403
  var __decorateClass$5 = (decorators, target, key, kind) => {
1434
1404
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
@@ -1436,7 +1406,7 @@
1436
1406
  if (decorator = decorators[i])
1437
1407
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1438
1408
  if (kind && result)
1439
- __defProp$7(target, key, result);
1409
+ __defProp$6(target, key, result);
1440
1410
  return result;
1441
1411
  };
1442
1412
  let PAGView = class {
@@ -1846,7 +1816,7 @@
1846
1816
  return fontFamilies;
1847
1817
  };
1848
1818
 
1849
- var __defProp$6 = Object.defineProperty;
1819
+ var __defProp$5 = Object.defineProperty;
1850
1820
  var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
1851
1821
  var __decorateClass$4 = (decorators, target, key, kind) => {
1852
1822
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
@@ -1854,7 +1824,7 @@
1854
1824
  if (decorator = decorators[i])
1855
1825
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1856
1826
  if (kind && result)
1857
- __defProp$6(target, key, result);
1827
+ __defProp$5(target, key, result);
1858
1828
  return result;
1859
1829
  };
1860
1830
  let PAGFont = class {
@@ -2348,7 +2318,7 @@
2348
2318
  }
2349
2319
  }
2350
2320
 
2351
- var __defProp$5 = Object.defineProperty;
2321
+ var __defProp$4 = Object.defineProperty;
2352
2322
  var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
2353
2323
  var __decorateClass$3 = (decorators, target, key, kind) => {
2354
2324
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
@@ -2356,7 +2326,7 @@
2356
2326
  if (decorator = decorators[i])
2357
2327
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2358
2328
  if (kind && result)
2359
- __defProp$5(target, key, result);
2329
+ __defProp$4(target, key, result);
2360
2330
  return result;
2361
2331
  };
2362
2332
  let PAGTextLayer = class extends PAGLayer {
@@ -2406,7 +2376,7 @@
2406
2376
  wasmAwaitRewind$1
2407
2377
  ], PAGTextLayer);
2408
2378
 
2409
- var __defProp$4 = Object.defineProperty;
2379
+ var __defProp$3 = Object.defineProperty;
2410
2380
  var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
2411
2381
  var __decorateClass$2 = (decorators, target, key, kind) => {
2412
2382
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
@@ -2414,7 +2384,7 @@
2414
2384
  if (decorator = decorators[i])
2415
2385
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2416
2386
  if (kind && result)
2417
- __defProp$4(target, key, result);
2387
+ __defProp$3(target, key, result);
2418
2388
  return result;
2419
2389
  };
2420
2390
  let PAGImageLayer = class extends PAGLayer {
@@ -2451,7 +2421,7 @@
2451
2421
  wasmAwaitRewind$1
2452
2422
  ], PAGImageLayer);
2453
2423
 
2454
- var __defProp$3 = Object.defineProperty;
2424
+ var __defProp$2 = Object.defineProperty;
2455
2425
  var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
2456
2426
  var __decorateClass$1 = (decorators, target, key, kind) => {
2457
2427
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
@@ -2459,7 +2429,7 @@
2459
2429
  if (decorator = decorators[i])
2460
2430
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2461
2431
  if (kind && result)
2462
- __defProp$3(target, key, result);
2432
+ __defProp$2(target, key, result);
2463
2433
  return result;
2464
2434
  };
2465
2435
  let PAGSolidLayer = class extends PAGLayer {
@@ -2519,7 +2489,8 @@
2519
2489
  });
2520
2490
  };
2521
2491
  const createImageFromBytes = (bytes) => {
2522
- const blob = new Blob([bytes], { type: "image/*" });
2492
+ const uint8Array = new Uint8Array(bytes);
2493
+ const blob = new Blob([uint8Array], { type: "image/*" });
2523
2494
  return createImage(URL.createObjectURL(blob));
2524
2495
  };
2525
2496
  const readImagePixels = (module, image, width, height) => {
@@ -2537,7 +2508,7 @@
2537
2508
  if (data.length === 0) {
2538
2509
  return null;
2539
2510
  }
2540
- return writeBufferToWasm(module, data);
2511
+ return new Uint8Array(data);
2541
2512
  };
2542
2513
  const hasWebpSupport = () => {
2543
2514
  try {
@@ -2556,11 +2527,10 @@
2556
2527
  return { width: source.width, height: source.height };
2557
2528
  };
2558
2529
  const uploadToTexture = (GL, source, textureID, alphaOnly) => {
2559
- var _a;
2560
2530
  let renderSource = source instanceof BitmapImage ? source.bitmap : source;
2561
2531
  if (!renderSource)
2562
2532
  return;
2563
- const gl = (_a = GL.currentContext) == null ? void 0 : _a.GLctx;
2533
+ const gl = GL.currentContext?.GLctx;
2564
2534
  gl.bindTexture(gl.TEXTURE_2D, GL.textures[textureID]);
2565
2535
  if (alphaOnly) {
2566
2536
  gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
@@ -2586,7 +2556,7 @@
2586
2556
  };
2587
2557
  const getBytesFromPath = async (module, path) => {
2588
2558
  const buffer = await fetch(path).then((res) => res.arrayBuffer());
2589
- return writeBufferToWasm(module, buffer);
2559
+ return new Uint8Array(buffer);
2590
2560
  };
2591
2561
 
2592
2562
  var tgfx = /*#__PURE__*/Object.freeze({
@@ -2661,7 +2631,7 @@
2661
2631
  return MatrixIndex2;
2662
2632
  })(MatrixIndex || {});
2663
2633
 
2664
- var __defProp$2 = Object.defineProperty;
2634
+ var __defProp$1 = Object.defineProperty;
2665
2635
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
2666
2636
  var __decorateClass = (decorators, target, key, kind) => {
2667
2637
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
@@ -2669,7 +2639,7 @@
2669
2639
  if (decorator = decorators[i])
2670
2640
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2671
2641
  if (kind && result)
2672
- __defProp$2(target, key, result);
2642
+ __defProp$1(target, key, result);
2673
2643
  return result;
2674
2644
  };
2675
2645
  let Matrix = class {
@@ -2681,50 +2651,43 @@
2681
2651
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.a) : 0;
2682
2652
  }
2683
2653
  set a(value) {
2684
- var _a;
2685
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.a, value);
2654
+ this.wasmIns?._set(MatrixIndex.a, value);
2686
2655
  }
2687
2656
  get b() {
2688
2657
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.b) : 0;
2689
2658
  }
2690
2659
  set b(value) {
2691
- var _a;
2692
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.b, value);
2660
+ this.wasmIns?._set(MatrixIndex.b, value);
2693
2661
  }
2694
2662
  get c() {
2695
2663
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.c) : 0;
2696
2664
  }
2697
2665
  set c(value) {
2698
- var _a;
2699
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.c, value);
2666
+ this.wasmIns?._set(MatrixIndex.c, value);
2700
2667
  }
2701
2668
  get d() {
2702
2669
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.d) : 0;
2703
2670
  }
2704
2671
  set d(value) {
2705
- var _a;
2706
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.d, value);
2672
+ this.wasmIns?._set(MatrixIndex.d, value);
2707
2673
  }
2708
2674
  get tx() {
2709
2675
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.tx) : 0;
2710
2676
  }
2711
2677
  set tx(value) {
2712
- var _a;
2713
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.tx, value);
2678
+ this.wasmIns?._set(MatrixIndex.tx, value);
2714
2679
  }
2715
2680
  get ty() {
2716
2681
  return this.wasmIns ? this.wasmIns._get(MatrixIndex.ty) : 0;
2717
2682
  }
2718
2683
  set ty(value) {
2719
- var _a;
2720
- (_a = this.wasmIns) == null ? void 0 : _a._set(MatrixIndex.ty, value);
2684
+ this.wasmIns?._set(MatrixIndex.ty, value);
2721
2685
  }
2722
2686
  get(index) {
2723
2687
  return this.wasmIns ? this.wasmIns._get(index) : 0;
2724
2688
  }
2725
2689
  set(index, value) {
2726
- var _a;
2727
- (_a = this.wasmIns) == null ? void 0 : _a._set(index, value);
2690
+ this.wasmIns?._set(index, value);
2728
2691
  }
2729
2692
  destroy() {
2730
2693
  this.wasmIns.delete();
@@ -2794,7 +2757,7 @@
2794
2757
  return 0;
2795
2758
  };
2796
2759
 
2797
- class ScalerContext {
2760
+ const _ScalerContext = class {
2798
2761
  constructor(fontName, fontStyle, size) {
2799
2762
  this.fontBoundingBoxMap = [];
2800
2763
  this.fontName = fontName;
@@ -2803,10 +2766,10 @@
2803
2766
  this.loadCanvas();
2804
2767
  }
2805
2768
  static setCanvas(canvas) {
2806
- ScalerContext.canvas = canvas;
2769
+ _ScalerContext.canvas = canvas;
2807
2770
  }
2808
2771
  static setContext(context) {
2809
- ScalerContext.context = context;
2772
+ _ScalerContext.context = context;
2810
2773
  }
2811
2774
  static isUnicodePropertyEscapeSupported() {
2812
2775
  try {
@@ -2819,12 +2782,19 @@
2819
2782
  static isEmoji(text) {
2820
2783
  let emojiRegExp;
2821
2784
  if (this.isUnicodePropertyEscapeSupported()) {
2822
- emojiRegExp = new RegExp("\\p{Extended_Pictographic}|[#*0-9]\\uFE0F?\\u20E3|[\\uD83C\\uDDE6-\\uD83C\\uDDFF]", "u");
2785
+ emojiRegExp = /\p{Extended_Pictographic}|[#*0-9]\uFE0F?\u20E3|[\uD83C\uDDE6-\uD83C\uDDFF]/u;
2823
2786
  } else {
2824
2787
  emojiRegExp = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/;
2825
2788
  }
2826
2789
  return emojiRegExp.test(text);
2827
2790
  }
2791
+ static measureDirectly(ctx) {
2792
+ if (_ScalerContext.hasMeasureBoundsAPI === void 0) {
2793
+ const metrics = ctx.measureText("x");
2794
+ _ScalerContext.hasMeasureBoundsAPI = metrics && metrics.actualBoundingBoxAscent > 0;
2795
+ }
2796
+ return _ScalerContext.hasMeasureBoundsAPI;
2797
+ }
2828
2798
  fontString(fauxBold, fauxItalic) {
2829
2799
  const attributes = [];
2830
2800
  if (fauxItalic) {
@@ -2843,7 +2813,7 @@
2843
2813
  if (this.fontMetrics) {
2844
2814
  return this.fontMetrics;
2845
2815
  }
2846
- const { context } = ScalerContext;
2816
+ const { context } = _ScalerContext;
2847
2817
  context.font = this.fontString(false, false);
2848
2818
  const metrics = this.measureText(context, "H");
2849
2819
  const capHeight = metrics.actualBoundingBoxAscent;
@@ -2858,7 +2828,7 @@
2858
2828
  return this.fontMetrics;
2859
2829
  }
2860
2830
  getBounds(text, fauxBold, fauxItalic) {
2861
- const { context } = ScalerContext;
2831
+ const { context } = _ScalerContext;
2862
2832
  context.font = this.fontString(fauxBold, fauxItalic);
2863
2833
  const metrics = this.measureText(context, text);
2864
2834
  const bounds = {
@@ -2876,7 +2846,7 @@
2876
2846
  return bounds;
2877
2847
  }
2878
2848
  getAdvance(text) {
2879
- const { context } = ScalerContext;
2849
+ const { context } = _ScalerContext;
2880
2850
  context.font = this.fontString(false, false);
2881
2851
  return context.measureText(text).width;
2882
2852
  }
@@ -2888,17 +2858,16 @@
2888
2858
  return canvas;
2889
2859
  }
2890
2860
  loadCanvas() {
2891
- if (!ScalerContext.canvas) {
2892
- ScalerContext.setCanvas(getCanvas2D(10, 10));
2893
- ScalerContext.setContext(
2894
- ScalerContext.canvas.getContext("2d", { willReadFrequently: true })
2861
+ if (!_ScalerContext.canvas) {
2862
+ _ScalerContext.setCanvas(getCanvas2D(10, 10));
2863
+ _ScalerContext.setContext(
2864
+ _ScalerContext.canvas.getContext("2d", { willReadFrequently: true })
2895
2865
  );
2896
2866
  }
2897
2867
  }
2898
2868
  measureText(ctx, text) {
2899
- const metrics = ctx.measureText(text);
2900
- if (metrics && (metrics.actualBoundingBoxAscent > 0 || metrics.width === 0)) {
2901
- return metrics;
2869
+ if (_ScalerContext.measureDirectly(ctx)) {
2870
+ return ctx.measureText(text);
2902
2871
  }
2903
2872
  ctx.canvas.width = this.size * 1.5;
2904
2873
  ctx.canvas.height = this.size * 1.5;
@@ -2929,7 +2898,9 @@
2929
2898
  width: fontMeasure.right - fontMeasure.left
2930
2899
  };
2931
2900
  }
2932
- }
2901
+ };
2902
+ let ScalerContext = _ScalerContext;
2903
+ ScalerContext.hasMeasureBoundsAPI = void 0;
2933
2904
 
2934
2905
  class WebMask {
2935
2906
  static create(canvas) {
@@ -3003,29 +2974,13 @@
3003
2974
  }
3004
2975
  }
3005
2976
 
3006
- var __defProp$1 = Object.defineProperty;
3007
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3008
- var __hasOwnProp = Object.prototype.hasOwnProperty;
3009
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
3010
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3011
- var __spreadValues = (a, b) => {
3012
- for (var prop in b || (b = {}))
3013
- if (__hasOwnProp.call(b, prop))
3014
- __defNormalProp$1(a, prop, b[prop]);
3015
- if (__getOwnPropSymbols)
3016
- for (var prop of __getOwnPropSymbols(b)) {
3017
- if (__propIsEnum.call(b, prop))
3018
- __defNormalProp$1(a, prop, b[prop]);
3019
- }
3020
- return a;
3021
- };
3022
2977
  const TGFXBind = (module) => {
3023
2978
  setTGFXModule(module);
3024
2979
  module.module = module;
3025
2980
  module.ScalerContext = ScalerContext;
3026
2981
  module.WebMask = WebMask;
3027
2982
  module.Matrix = Matrix;
3028
- module.tgfx = __spreadValues({}, tgfx);
2983
+ module.tgfx = { ...tgfx };
3029
2984
  };
3030
2985
 
3031
2986
  const PAGBind = (module) => {
@@ -3057,17 +3012,23 @@
3057
3012
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
3058
3013
  return value;
3059
3014
  };
3060
- var Hello2D = (() => {
3015
+ var PAGInit$1 = (() => {
3016
+ var _scriptName = typeof document != "undefined" ? document.currentScript?.src : void 0;
3061
3017
  return async function(moduleArg = {}) {
3062
3018
  var moduleRtn;
3063
3019
  var Module = moduleArg;
3020
+ var readyPromiseResolve, readyPromiseReject;
3021
+ var readyPromise = new Promise((resolve, reject) => {
3022
+ readyPromiseResolve = resolve;
3023
+ readyPromiseReject = reject;
3024
+ });
3064
3025
  var ENVIRONMENT_IS_WEB = typeof window == "object";
3065
3026
  var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
3066
- typeof process == "object" && process.versions?.node && process.type != "renderer";
3027
+ typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
3028
+ var moduleOverrides = Object.assign({}, Module);
3067
3029
  var quit_ = (status, toThrow) => {
3068
3030
  throw toThrow;
3069
3031
  };
3070
- var _scriptName = (typeof document === 'undefined' && typeof location === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : typeof document === 'undefined' ? location.href : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || new URL('libpag.umd.js', document.baseURI).href));
3071
3032
  var scriptDirectory = "";
3072
3033
  function locateFile(path) {
3073
3034
  if (Module["locateFile"]) {
@@ -3077,9 +3038,18 @@
3077
3038
  }
3078
3039
  var readAsync, readBinary;
3079
3040
  if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
3080
- try {
3081
- scriptDirectory = new URL(".", _scriptName).href;
3082
- } catch {
3041
+ if (ENVIRONMENT_IS_WORKER) {
3042
+ scriptDirectory = self.location.href;
3043
+ } else if (typeof document != "undefined" && document.currentScript) {
3044
+ scriptDirectory = document.currentScript.src;
3045
+ }
3046
+ if (_scriptName) {
3047
+ scriptDirectory = _scriptName;
3048
+ }
3049
+ if (scriptDirectory.startsWith("blob:")) {
3050
+ scriptDirectory = "";
3051
+ } else {
3052
+ scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
3083
3053
  }
3084
3054
  {
3085
3055
  if (ENVIRONMENT_IS_WORKER) {
@@ -3100,29 +3070,37 @@
3100
3070
  };
3101
3071
  }
3102
3072
  }
3103
- var out = console.log.bind(console);
3104
- var err = console.error.bind(console);
3105
- var wasmBinary;
3073
+ var out = Module["print"] || console.log.bind(console);
3074
+ var err = Module["printErr"] || console.error.bind(console);
3075
+ Object.assign(Module, moduleOverrides);
3076
+ moduleOverrides = null;
3077
+ if (Module["arguments"])
3078
+ Module["arguments"];
3079
+ if (Module["thisProgram"])
3080
+ Module["thisProgram"];
3081
+ var wasmBinary = Module["wasmBinary"];
3082
+ var wasmMemory;
3106
3083
  var ABORT = false;
3107
3084
  var EXITSTATUS;
3108
- var readyPromiseResolve, readyPromiseReject;
3109
- var wasmMemory;
3110
- var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
3111
- var HEAP64, HEAPU64;
3112
- var runtimeInitialized = false;
3085
+ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64;
3086
+ var dataURIPrefix = "data:application/octet-stream;base64,";
3087
+ var isDataURI = (filename) => filename.startsWith(dataURIPrefix);
3113
3088
  function updateMemoryViews() {
3114
3089
  var b = wasmMemory.buffer;
3115
- HEAP8 = new Int8Array(b);
3116
- HEAP16 = new Int16Array(b);
3090
+ Module["HEAP8"] = HEAP8 = new Int8Array(b);
3091
+ Module["HEAP16"] = HEAP16 = new Int16Array(b);
3117
3092
  Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
3118
- HEAPU16 = new Uint16Array(b);
3119
- HEAP32 = new Int32Array(b);
3120
- HEAPU32 = new Uint32Array(b);
3121
- HEAPF32 = new Float32Array(b);
3122
- HEAPF64 = new Float64Array(b);
3123
- HEAP64 = new BigInt64Array(b);
3124
- HEAPU64 = new BigUint64Array(b);
3125
- }
3093
+ Module["HEAPU16"] = HEAPU16 = new Uint16Array(b);
3094
+ Module["HEAP32"] = HEAP32 = new Int32Array(b);
3095
+ Module["HEAPU32"] = HEAPU32 = new Uint32Array(b);
3096
+ Module["HEAPF32"] = HEAPF32 = new Float32Array(b);
3097
+ Module["HEAPF64"] = HEAPF64 = new Float64Array(b);
3098
+ Module["HEAP64"] = HEAP64 = new BigInt64Array(b);
3099
+ Module["HEAPU64"] = HEAPU64 = new BigUint64Array(b);
3100
+ }
3101
+ var __ATPRERUN__ = [];
3102
+ var __ATINIT__ = [];
3103
+ var __ATPOSTRUN__ = [];
3126
3104
  function preRun() {
3127
3105
  if (Module["preRun"]) {
3128
3106
  if (typeof Module["preRun"] == "function")
@@ -3131,14 +3109,13 @@
3131
3109
  addOnPreRun(Module["preRun"].shift());
3132
3110
  }
3133
3111
  }
3134
- callRuntimeCallbacks(onPreRuns);
3112
+ callRuntimeCallbacks(__ATPRERUN__);
3135
3113
  }
3136
3114
  function initRuntime() {
3137
- runtimeInitialized = true;
3138
3115
  if (!Module["noFSInit"] && !FS.initialized)
3139
3116
  FS.init();
3140
- wasmExports["ic"]();
3141
3117
  FS.ignorePermissions = false;
3118
+ callRuntimeCallbacks(__ATINIT__);
3142
3119
  }
3143
3120
  function postRun() {
3144
3121
  if (Module["postRun"]) {
@@ -3148,7 +3125,16 @@
3148
3125
  addOnPostRun(Module["postRun"].shift());
3149
3126
  }
3150
3127
  }
3151
- callRuntimeCallbacks(onPostRuns);
3128
+ callRuntimeCallbacks(__ATPOSTRUN__);
3129
+ }
3130
+ function addOnPreRun(cb) {
3131
+ __ATPRERUN__.unshift(cb);
3132
+ }
3133
+ function addOnInit(cb) {
3134
+ __ATINIT__.unshift(cb);
3135
+ }
3136
+ function addOnPostRun(cb) {
3137
+ __ATPOSTRUN__.unshift(cb);
3152
3138
  }
3153
3139
  var runDependencies = 0;
3154
3140
  var dependenciesFulfilled = null;
@@ -3174,15 +3160,16 @@
3174
3160
  ABORT = true;
3175
3161
  what += ". Build with -sASSERTIONS for more info.";
3176
3162
  var e = new WebAssembly.RuntimeError(what);
3177
- readyPromiseReject?.(e);
3163
+ readyPromiseReject(e);
3178
3164
  throw e;
3179
3165
  }
3180
3166
  var wasmBinaryFile;
3181
3167
  function findWasmBinary() {
3182
- if (Module["locateFile"]) {
3183
- return locateFile("libpag.wasm");
3168
+ var f = "libpag.wasm";
3169
+ if (!isDataURI(f)) {
3170
+ return locateFile(f);
3184
3171
  }
3185
- return new URL("libpag.wasm", (typeof document === 'undefined' && typeof location === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : typeof document === 'undefined' ? location.href : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || new URL('libpag.umd.js', document.baseURI).href))).href;
3172
+ return f;
3186
3173
  }
3187
3174
  function getBinarySync(file) {
3188
3175
  if (file == wasmBinaryFile && wasmBinary) {
@@ -3214,7 +3201,7 @@
3214
3201
  }
3215
3202
  }
3216
3203
  async function instantiateAsync(binary, binaryFile, imports) {
3217
- if (!binary && typeof WebAssembly.instantiateStreaming == "function") {
3204
+ if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile)) {
3218
3205
  try {
3219
3206
  var response = fetch(binaryFile, { credentials: "same-origin" });
3220
3207
  var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);
@@ -3235,7 +3222,8 @@
3235
3222
  wasmExports = Asyncify.instrumentWasmExports(wasmExports);
3236
3223
  wasmMemory = wasmExports["hc"];
3237
3224
  updateMemoryViews();
3238
- assignWasmExports(wasmExports);
3225
+ wasmExports["kc"];
3226
+ addOnInit(wasmExports["ic"]);
3239
3227
  removeRunDependency();
3240
3228
  return wasmExports;
3241
3229
  }
@@ -3245,16 +3233,22 @@
3245
3233
  }
3246
3234
  var info = getWasmImports();
3247
3235
  if (Module["instantiateWasm"]) {
3248
- return new Promise((resolve, reject) => {
3249
- Module["instantiateWasm"](info, (mod, inst) => {
3250
- resolve(receiveInstance(mod));
3251
- });
3252
- });
3236
+ try {
3237
+ return Module["instantiateWasm"](info, receiveInstance);
3238
+ } catch (e) {
3239
+ err(`Module.instantiateWasm callback failed with error: ${e}`);
3240
+ readyPromiseReject(e);
3241
+ }
3253
3242
  }
3254
3243
  wasmBinaryFile ?? (wasmBinaryFile = findWasmBinary());
3255
- var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
3256
- var exports = receiveInstantiationResult(result);
3257
- return exports;
3244
+ try {
3245
+ var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
3246
+ var exports = receiveInstantiationResult(result);
3247
+ return exports;
3248
+ } catch (e) {
3249
+ readyPromiseReject(e);
3250
+ return Promise.reject(e);
3251
+ }
3258
3252
  }
3259
3253
  class ExitStatus {
3260
3254
  constructor(status) {
@@ -3268,24 +3262,7 @@
3268
3262
  callbacks.shift()(Module);
3269
3263
  }
3270
3264
  };
3271
- var onPostRuns = [];
3272
- var addOnPostRun = (cb) => onPostRuns.push(cb);
3273
- var onPreRuns = [];
3274
- var addOnPreRun = (cb) => onPreRuns.push(cb);
3275
- var dynCalls = {};
3276
- var dynCallLegacy = (sig, ptr, args) => {
3277
- sig = sig.replace(/p/g, "i");
3278
- var f = dynCalls[sig];
3279
- return f(ptr, ...args);
3280
- };
3281
- var dynCall = (sig, ptr, args = [], promising = false) => {
3282
- var rtn = dynCallLegacy(sig, ptr, args);
3283
- function convert(rtn2) {
3284
- return rtn2;
3285
- }
3286
- return convert(rtn);
3287
- };
3288
- var noExitRuntime = true;
3265
+ var noExitRuntime = Module["noExitRuntime"] || true;
3289
3266
  class ExceptionInfo {
3290
3267
  constructor(excPtr) {
3291
3268
  this.excPtr = excPtr;
@@ -3366,7 +3343,7 @@
3366
3343
  }
3367
3344
  return parts;
3368
3345
  }, normalize: (path) => {
3369
- var isAbsolute = PATH.isAbs(path), trailingSlash = path.slice(-1) === "/";
3346
+ var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/";
3370
3347
  path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/");
3371
3348
  if (!path && !isAbsolute) {
3372
3349
  path = ".";
@@ -3381,7 +3358,7 @@
3381
3358
  return ".";
3382
3359
  }
3383
3360
  if (dir) {
3384
- dir = dir.slice(0, -1);
3361
+ dir = dir.substr(0, dir.length - 1);
3385
3362
  }
3386
3363
  return root + dir;
3387
3364
  }, basename: (path) => path && path.match(/([^\/]+|\/)\/*$/)[1], join: (...paths) => PATH.normalize(paths.join("/")), join2: (l, r) => PATH.normalize(l + "/" + r) };
@@ -3404,8 +3381,8 @@
3404
3381
  resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/");
3405
3382
  return (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
3406
3383
  }, relative: (from, to) => {
3407
- from = PATH_FS.resolve(from).slice(1);
3408
- to = PATH_FS.resolve(to).slice(1);
3384
+ from = PATH_FS.resolve(from).substr(1);
3385
+ to = PATH_FS.resolve(to).substr(1);
3409
3386
  function trim(arr) {
3410
3387
  var start = 0;
3411
3388
  for (; start < arr.length; start++) {
@@ -3438,13 +3415,41 @@
3438
3415
  outputParts = outputParts.concat(toParts.slice(samePartsLength));
3439
3416
  return outputParts.join("/");
3440
3417
  } };
3441
- var UTF8Decoder = new TextDecoder();
3418
+ var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : void 0;
3442
3419
  var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {
3443
3420
  var endIdx = idx + maxBytesToRead;
3444
3421
  var endPtr = idx;
3445
3422
  while (heapOrArray[endPtr] && !(endPtr >= endIdx))
3446
3423
  ++endPtr;
3447
- return UTF8Decoder.decode(heapOrArray.buffer ? heapOrArray.subarray(idx, endPtr) : new Uint8Array(heapOrArray.slice(idx, endPtr)));
3424
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
3425
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
3426
+ }
3427
+ var str = "";
3428
+ while (idx < endPtr) {
3429
+ var u0 = heapOrArray[idx++];
3430
+ if (!(u0 & 128)) {
3431
+ str += String.fromCharCode(u0);
3432
+ continue;
3433
+ }
3434
+ var u1 = heapOrArray[idx++] & 63;
3435
+ if ((u0 & 224) == 192) {
3436
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
3437
+ continue;
3438
+ }
3439
+ var u2 = heapOrArray[idx++] & 63;
3440
+ if ((u0 & 240) == 224) {
3441
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
3442
+ } else {
3443
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
3444
+ }
3445
+ if (u0 < 65536) {
3446
+ str += String.fromCharCode(u0);
3447
+ } else {
3448
+ var ch = u0 - 65536;
3449
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
3450
+ }
3451
+ }
3452
+ return str;
3448
3453
  };
3449
3454
  var FS_stdin_getChar_buffer = [];
3450
3455
  var lengthBytesUTF8 = (str) => {
@@ -3470,7 +3475,11 @@
3470
3475
  var startIdx = outIdx;
3471
3476
  var endIdx = outIdx + maxBytesToWrite - 1;
3472
3477
  for (var i2 = 0; i2 < str.length; ++i2) {
3473
- var u = str.codePointAt(i2);
3478
+ var u = str.charCodeAt(i2);
3479
+ if (u >= 55296 && u <= 57343) {
3480
+ var u1 = str.charCodeAt(++i2);
3481
+ u = 65536 + ((u & 1023) << 10) | u1 & 1023;
3482
+ }
3474
3483
  if (u <= 127) {
3475
3484
  if (outIdx >= endIdx)
3476
3485
  break;
@@ -3493,20 +3502,19 @@
3493
3502
  heap[outIdx++] = 128 | u >> 12 & 63;
3494
3503
  heap[outIdx++] = 128 | u >> 6 & 63;
3495
3504
  heap[outIdx++] = 128 | u & 63;
3496
- i2++;
3497
3505
  }
3498
3506
  }
3499
3507
  heap[outIdx] = 0;
3500
3508
  return outIdx - startIdx;
3501
3509
  };
3502
- var intArrayFromString = (stringy, dontAddNull, length) => {
3510
+ function intArrayFromString(stringy, dontAddNull, length) {
3503
3511
  var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
3504
3512
  var u8array = new Array(len);
3505
3513
  var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
3506
3514
  if (dontAddNull)
3507
3515
  u8array.length = numBytesWritten;
3508
3516
  return u8array;
3509
- };
3517
+ }
3510
3518
  var FS_stdin_getChar = () => {
3511
3519
  if (!FS_stdin_getChar_buffer.length) {
3512
3520
  var result = null;
@@ -3589,7 +3597,7 @@
3589
3597
  tty.output.push(val);
3590
3598
  }
3591
3599
  }, fsync(tty) {
3592
- if (tty.output?.length > 0) {
3600
+ if (tty.output && tty.output.length > 0) {
3593
3601
  out(UTF8ArrayToString(tty.output));
3594
3602
  tty.output = [];
3595
3603
  }
@@ -3608,11 +3616,12 @@
3608
3616
  tty.output.push(val);
3609
3617
  }
3610
3618
  }, fsync(tty) {
3611
- if (tty.output?.length > 0) {
3619
+ if (tty.output && tty.output.length > 0) {
3612
3620
  err(UTF8ArrayToString(tty.output));
3613
3621
  tty.output = [];
3614
3622
  }
3615
3623
  } } };
3624
+ var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
3616
3625
  var mmapAlloc = (size) => {
3617
3626
  abort();
3618
3627
  };
@@ -3622,7 +3631,7 @@
3622
3631
  if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
3623
3632
  throw new FS.ErrnoError(63);
3624
3633
  }
3625
- 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 } });
3634
+ 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 } });
3626
3635
  var node = FS.createNode(parent, name, mode, dev);
3627
3636
  if (FS.isDir(node.mode)) {
3628
3637
  node.node_ops = MEMFS.ops_table.dir.node;
@@ -3811,6 +3820,9 @@
3811
3820
  throw new FS.ErrnoError(28);
3812
3821
  }
3813
3822
  return position;
3823
+ }, allocate(stream, offset, length) {
3824
+ MEMFS.expandFileStorage(stream.node, offset + length);
3825
+ stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
3814
3826
  }, mmap(stream, length, position, prot, flags) {
3815
3827
  if (!FS.isFile(stream.node.mode)) {
3816
3828
  throw new FS.ErrnoError(43);
@@ -3848,8 +3860,10 @@
3848
3860
  return new Uint8Array(arrayBuffer);
3849
3861
  };
3850
3862
  asyncLoad.isAsync = true;
3851
- var FS_createDataFile = (...args) => FS.createDataFile(...args);
3852
- var preloadPlugins = [];
3863
+ var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => {
3864
+ FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn);
3865
+ };
3866
+ var preloadPlugins = Module["preloadPlugins"] || [];
3853
3867
  var FS_handledByPreloadPlugin = (byteArray, fullname, finish, onerror) => {
3854
3868
  if (typeof Browser != "undefined")
3855
3869
  Browser.init();
@@ -3906,12 +3920,12 @@
3906
3920
  mode |= 146;
3907
3921
  return mode;
3908
3922
  };
3909
- var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, filesystems: null, syncFSRequests: 0, readFiles: {}, ErrnoError: class {
3923
+ var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: class {
3910
3924
  constructor(errno) {
3911
3925
  __publicField(this, "name", "ErrnoError");
3912
3926
  this.errno = errno;
3913
3927
  }
3914
- }, FSStream: class {
3928
+ }, filesystems: null, syncFSRequests: 0, readFiles: {}, FSStream: class {
3915
3929
  constructor() {
3916
3930
  __publicField(this, "shared", {});
3917
3931
  }
@@ -4001,12 +4015,7 @@
4001
4015
  }
4002
4016
  if (parts[i2] === "..") {
4003
4017
  current_path = PATH.dirname(current_path);
4004
- if (FS.isRoot(current)) {
4005
- path = current_path + "/" + parts.slice(i2 + 1).join("/");
4006
- continue linkloop;
4007
- } else {
4008
- current = current.parent;
4009
- }
4018
+ current = current.parent;
4010
4019
  continue;
4011
4020
  }
4012
4021
  current_path = PATH.join2(current_path, parts[i2]);
@@ -4214,12 +4223,6 @@
4214
4223
  var stream = FS.createStream(origStream, fd);
4215
4224
  stream.stream_ops?.dup?.(stream);
4216
4225
  return stream;
4217
- }, doSetAttr(stream, node, attr) {
4218
- var setattr = stream?.stream_ops.setattr;
4219
- var arg = setattr ? stream : node;
4220
- setattr ?? (setattr = node.node_ops.setattr);
4221
- FS.checkOpExists(setattr, 63);
4222
- setattr(arg, attr);
4223
4226
  }, chrdev_stream_ops: { open(stream) {
4224
4227
  var device = FS.getDevice(stream.node.rdev);
4225
4228
  stream.stream_ops = device.stream_ops;
@@ -4362,12 +4365,10 @@
4362
4365
  }, mkdirTree(path, mode) {
4363
4366
  var dirs = path.split("/");
4364
4367
  var d = "";
4365
- for (var dir of dirs) {
4366
- if (!dir)
4368
+ for (var i2 = 0; i2 < dirs.length; ++i2) {
4369
+ if (!dirs[i2])
4367
4370
  continue;
4368
- if (d || PATH.isAbs(path))
4369
- d += "/";
4370
- d += dir;
4371
+ d += "/" + dirs[i2];
4371
4372
  try {
4372
4373
  FS.mkdir(d, mode);
4373
4374
  } catch (e) {
@@ -4519,18 +4520,8 @@
4519
4520
  var node = lookup.node;
4520
4521
  var getattr = FS.checkOpExists(node.node_ops.getattr, 63);
4521
4522
  return getattr(node);
4522
- }, fstat(fd) {
4523
- var stream = FS.getStreamChecked(fd);
4524
- var node = stream.node;
4525
- var getattr = stream.stream_ops.getattr;
4526
- var arg = getattr ? stream : node;
4527
- getattr ?? (getattr = node.node_ops.getattr);
4528
- FS.checkOpExists(getattr, 63);
4529
- return getattr(arg);
4530
4523
  }, lstat(path) {
4531
4524
  return FS.stat(path, true);
4532
- }, doChmod(stream, node, mode, dontFollow) {
4533
- FS.doSetAttr(stream, node, { mode: mode & 4095 | node.mode & ~4095, ctime: Date.now(), dontFollow });
4534
4525
  }, chmod(path, mode, dontFollow) {
4535
4526
  var node;
4536
4527
  if (typeof path == "string") {
@@ -4539,14 +4530,13 @@
4539
4530
  } else {
4540
4531
  node = path;
4541
4532
  }
4542
- FS.doChmod(null, node, mode, dontFollow);
4533
+ var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
4534
+ setattr(node, { mode: mode & 4095 | node.mode & ~4095, ctime: Date.now(), dontFollow });
4543
4535
  }, lchmod(path, mode) {
4544
4536
  FS.chmod(path, mode, true);
4545
4537
  }, fchmod(fd, mode) {
4546
4538
  var stream = FS.getStreamChecked(fd);
4547
- FS.doChmod(stream, stream.node, mode, false);
4548
- }, doChown(stream, node, dontFollow) {
4549
- FS.doSetAttr(stream, node, { timestamp: Date.now(), dontFollow });
4539
+ FS.chmod(stream.node, mode);
4550
4540
  }, chown(path, uid, gid, dontFollow) {
4551
4541
  var node;
4552
4542
  if (typeof path == "string") {
@@ -4555,24 +4545,13 @@
4555
4545
  } else {
4556
4546
  node = path;
4557
4547
  }
4558
- FS.doChown(null, node, dontFollow);
4548
+ var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
4549
+ setattr(node, { timestamp: Date.now(), dontFollow });
4559
4550
  }, lchown(path, uid, gid) {
4560
4551
  FS.chown(path, uid, gid, true);
4561
4552
  }, fchown(fd, uid, gid) {
4562
4553
  var stream = FS.getStreamChecked(fd);
4563
- FS.doChown(stream, stream.node, false);
4564
- }, doTruncate(stream, node, len) {
4565
- if (FS.isDir(node.mode)) {
4566
- throw new FS.ErrnoError(31);
4567
- }
4568
- if (!FS.isFile(node.mode)) {
4569
- throw new FS.ErrnoError(28);
4570
- }
4571
- var errCode = FS.nodePermissions(node, "w");
4572
- if (errCode) {
4573
- throw new FS.ErrnoError(errCode);
4574
- }
4575
- FS.doSetAttr(stream, node, { size: len, timestamp: Date.now() });
4554
+ FS.chown(stream.node, uid, gid);
4576
4555
  }, truncate(path, len) {
4577
4556
  if (len < 0) {
4578
4557
  throw new FS.ErrnoError(28);
@@ -4584,13 +4563,24 @@
4584
4563
  } else {
4585
4564
  node = path;
4586
4565
  }
4587
- FS.doTruncate(null, node, len);
4566
+ if (FS.isDir(node.mode)) {
4567
+ throw new FS.ErrnoError(31);
4568
+ }
4569
+ if (!FS.isFile(node.mode)) {
4570
+ throw new FS.ErrnoError(28);
4571
+ }
4572
+ var errCode = FS.nodePermissions(node, "w");
4573
+ if (errCode) {
4574
+ throw new FS.ErrnoError(errCode);
4575
+ }
4576
+ var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
4577
+ setattr(node, { size: len, timestamp: Date.now() });
4588
4578
  }, ftruncate(fd, len) {
4589
4579
  var stream = FS.getStreamChecked(fd);
4590
- if (len < 0 || (stream.flags & 2097155) === 0) {
4580
+ if ((stream.flags & 2097155) === 0) {
4591
4581
  throw new FS.ErrnoError(28);
4592
4582
  }
4593
- FS.doTruncate(stream, stream.node, len);
4583
+ FS.truncate(stream.node, len);
4594
4584
  }, utime(path, atime, mtime) {
4595
4585
  var lookup = FS.lookupPath(path, { follow: true });
4596
4586
  var node = lookup.node;
@@ -4747,6 +4737,23 @@
4747
4737
  if (!seeking)
4748
4738
  stream.position += bytesWritten;
4749
4739
  return bytesWritten;
4740
+ }, allocate(stream, offset, length) {
4741
+ if (FS.isClosed(stream)) {
4742
+ throw new FS.ErrnoError(8);
4743
+ }
4744
+ if (offset < 0 || length <= 0) {
4745
+ throw new FS.ErrnoError(28);
4746
+ }
4747
+ if ((stream.flags & 2097155) === 0) {
4748
+ throw new FS.ErrnoError(8);
4749
+ }
4750
+ if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
4751
+ throw new FS.ErrnoError(43);
4752
+ }
4753
+ if (!stream.stream_ops.allocate) {
4754
+ throw new FS.ErrnoError(138);
4755
+ }
4756
+ stream.stream_ops.allocate(stream, offset, length);
4750
4757
  }, mmap(stream, length, position, prot, flags) {
4751
4758
  if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {
4752
4759
  throw new FS.ErrnoError(2);
@@ -4777,23 +4784,27 @@
4777
4784
  if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
4778
4785
  throw new Error(`Invalid encoding type "${opts.encoding}"`);
4779
4786
  }
4787
+ var ret;
4780
4788
  var stream = FS.open(path, opts.flags);
4781
4789
  var stat = FS.stat(path);
4782
4790
  var length = stat.size;
4783
4791
  var buf = new Uint8Array(length);
4784
4792
  FS.read(stream, buf, 0, length, 0);
4785
4793
  if (opts.encoding === "utf8") {
4786
- buf = UTF8ArrayToString(buf);
4794
+ ret = UTF8ArrayToString(buf);
4795
+ } else if (opts.encoding === "binary") {
4796
+ ret = buf;
4787
4797
  }
4788
4798
  FS.close(stream);
4789
- return buf;
4799
+ return ret;
4790
4800
  }, writeFile(path, data, opts = {}) {
4791
4801
  opts.flags = opts.flags || 577;
4792
4802
  var stream = FS.open(path, opts.flags, opts.mode);
4793
4803
  if (typeof data == "string") {
4794
- data = new Uint8Array(intArrayFromString(data, true));
4795
- }
4796
- if (ArrayBuffer.isView(data)) {
4804
+ var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
4805
+ var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
4806
+ FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);
4807
+ } else if (ArrayBuffer.isView(data)) {
4797
4808
  FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);
4798
4809
  } else {
4799
4810
  throw new Error("Unsupported data type");
@@ -4888,10 +4899,12 @@
4888
4899
  FS.createStandardStreams(input, output, error);
4889
4900
  }, quit() {
4890
4901
  FS.initialized = false;
4891
- for (var stream of FS.streams) {
4892
- if (stream) {
4893
- FS.close(stream);
4902
+ for (var i2 = 0; i2 < FS.streams.length; i2++) {
4903
+ var stream = FS.streams[i2];
4904
+ if (!stream) {
4905
+ continue;
4894
4906
  }
4907
+ FS.close(stream);
4895
4908
  }
4896
4909
  }, findObject(path, dontResolveLastLink) {
4897
4910
  var ret = FS.analyzePath(path, dontResolveLastLink);
@@ -4933,8 +4946,6 @@
4933
4946
  try {
4934
4947
  FS.mkdir(current);
4935
4948
  } catch (e) {
4936
- if (e.errno != 20)
4937
- throw e;
4938
4949
  }
4939
4950
  parent = current;
4940
4951
  }
@@ -5169,14 +5180,7 @@
5169
5180
  node.stream_ops = stream_ops;
5170
5181
  return node;
5171
5182
  } };
5172
- var UTF8ToString = (ptr, maxBytesToRead) => {
5173
- if (!ptr)
5174
- return "";
5175
- var maxPtr = ptr + maxBytesToRead;
5176
- for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; )
5177
- ++end;
5178
- return UTF8Decoder.decode(HEAPU8.subarray(ptr, end));
5179
- };
5183
+ var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
5180
5184
  var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt(dirfd, path, allowEmpty) {
5181
5185
  if (PATH.isAbs(path)) {
5182
5186
  return path;
@@ -5485,12 +5489,12 @@
5485
5489
  try {
5486
5490
  path = SYSCALLS.getStr(path);
5487
5491
  path = SYSCALLS.calculateAt(dirfd, path);
5488
- if (!flags) {
5492
+ if (flags === 0) {
5489
5493
  FS.unlink(path);
5490
5494
  } else if (flags === 512) {
5491
5495
  FS.rmdir(path);
5492
5496
  } else {
5493
- return -28;
5497
+ abort("Invalid flags passed to unlinkat");
5494
5498
  }
5495
5499
  return 0;
5496
5500
  } catch (e) {
@@ -5514,12 +5518,7 @@
5514
5518
  var awaitingDependencies = {};
5515
5519
  var registeredTypes = {};
5516
5520
  var typeDependencies = {};
5517
- var InternalError = class InternalError extends Error {
5518
- constructor(message) {
5519
- super(message);
5520
- this.name = "InternalError";
5521
- }
5522
- };
5521
+ var InternalError;
5523
5522
  var throwInternalError = (message) => {
5524
5523
  throw new InternalError(message);
5525
5524
  };
@@ -5570,7 +5569,6 @@
5570
5569
  fieldRecords.forEach((field, i2) => {
5571
5570
  var fieldName = field.fieldName;
5572
5571
  var getterReturnType = fieldTypes2[i2];
5573
- var optional = fieldTypes2[i2].optional;
5574
5572
  var getter = field.getter;
5575
5573
  var getterContext = field.getterContext;
5576
5574
  var setterArgumentType = fieldTypes2[i2 + fieldRecords.length];
@@ -5580,7 +5578,7 @@
5580
5578
  var destructors = [];
5581
5579
  setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
5582
5580
  runDestructors(destructors);
5583
- }, optional };
5581
+ } };
5584
5582
  });
5585
5583
  return [{ name: reg.name, fromWireType: (ptr) => {
5586
5584
  var rv = {};
@@ -5591,7 +5589,7 @@
5591
5589
  return rv;
5592
5590
  }, toWireType: (destructors, o) => {
5593
5591
  for (var fieldName in fields) {
5594
- if (!(fieldName in o) && !fields[fieldName].optional) {
5592
+ if (!(fieldName in o)) {
5595
5593
  throw new TypeError(`Missing field: "${fieldName}"`);
5596
5594
  }
5597
5595
  }
@@ -5606,21 +5604,34 @@
5606
5604
  }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: readPointer, destructorFunction: rawDestructor }];
5607
5605
  });
5608
5606
  };
5609
- var AsciiToString = (ptr) => {
5610
- var str = "";
5611
- while (1) {
5612
- var ch = HEAPU8[ptr++];
5613
- if (!ch)
5614
- return str;
5615
- str += String.fromCharCode(ch);
5607
+ var embindRepr = (v) => {
5608
+ if (v === null) {
5609
+ return "null";
5610
+ }
5611
+ var t = typeof v;
5612
+ if (t === "object" || t === "array" || t === "function") {
5613
+ return v.toString();
5614
+ } else {
5615
+ return "" + v;
5616
5616
  }
5617
5617
  };
5618
- var BindingError = class BindingError extends Error {
5619
- constructor(message) {
5620
- super(message);
5621
- this.name = "BindingError";
5618
+ var embind_init_charCodes = () => {
5619
+ var codes = new Array(256);
5620
+ for (var i2 = 0; i2 < 256; ++i2) {
5621
+ codes[i2] = String.fromCharCode(i2);
5622
+ }
5623
+ embind_charCodes = codes;
5624
+ };
5625
+ var embind_charCodes;
5626
+ var readLatin1String = (ptr) => {
5627
+ var ret = "";
5628
+ var c = ptr;
5629
+ while (HEAPU8[c]) {
5630
+ ret += embind_charCodes[HEAPU8[c++]];
5622
5631
  }
5632
+ return ret;
5623
5633
  };
5634
+ var BindingError;
5624
5635
  var throwBindingError = (message) => {
5625
5636
  throw new BindingError(message);
5626
5637
  };
@@ -5662,15 +5673,12 @@
5662
5673
  }
5663
5674
  };
5664
5675
  var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {
5665
- name = AsciiToString(name);
5666
- const isUnsignedType = minRange === 0n;
5667
- let fromWireType = (value) => value;
5668
- if (isUnsignedType) {
5669
- const bitSize = size * 8;
5670
- fromWireType = (value) => BigInt.asUintN(bitSize, value);
5671
- maxRange = fromWireType(maxRange);
5672
- }
5673
- registerType(primitiveType, { name, fromWireType, toWireType: (destructors, value) => {
5676
+ name = readLatin1String(name);
5677
+ var isUnsignedType = name.indexOf("u") != -1;
5678
+ registerType(primitiveType, { name, fromWireType: (value) => value, toWireType: function(destructors, value) {
5679
+ if (typeof value != "bigint" && typeof value != "number") {
5680
+ throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`);
5681
+ }
5674
5682
  if (typeof value == "number") {
5675
5683
  value = BigInt(value);
5676
5684
  }
@@ -5679,7 +5687,7 @@
5679
5687
  };
5680
5688
  var GenericWireTypeSize = 8;
5681
5689
  var __embind_register_bool = (rawType, name, trueValue, falseValue) => {
5682
- name = AsciiToString(name);
5690
+ name = readLatin1String(name);
5683
5691
  registerType(rawType, { name, fromWireType: function(wt) {
5684
5692
  return !!wt;
5685
5693
  }, toWireType: function(destructors, o) {
@@ -5712,6 +5720,93 @@
5712
5720
  runDestructor($$);
5713
5721
  }
5714
5722
  };
5723
+ var downcastPointer = (ptr, ptrClass, desiredClass) => {
5724
+ if (ptrClass === desiredClass) {
5725
+ return ptr;
5726
+ }
5727
+ if (void 0 === desiredClass.baseClass) {
5728
+ return null;
5729
+ }
5730
+ var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
5731
+ if (rv === null) {
5732
+ return null;
5733
+ }
5734
+ return desiredClass.downcast(rv);
5735
+ };
5736
+ var registeredPointers = {};
5737
+ var registeredInstances = {};
5738
+ var getBasestPointer = (class_, ptr) => {
5739
+ if (ptr === void 0) {
5740
+ throwBindingError("ptr should not be undefined");
5741
+ }
5742
+ while (class_.baseClass) {
5743
+ ptr = class_.upcast(ptr);
5744
+ class_ = class_.baseClass;
5745
+ }
5746
+ return ptr;
5747
+ };
5748
+ var getInheritedInstance = (class_, ptr) => {
5749
+ ptr = getBasestPointer(class_, ptr);
5750
+ return registeredInstances[ptr];
5751
+ };
5752
+ var makeClassHandle = (prototype, record) => {
5753
+ if (!record.ptrType || !record.ptr) {
5754
+ throwInternalError("makeClassHandle requires ptr and ptrType");
5755
+ }
5756
+ var hasSmartPtrType = !!record.smartPtrType;
5757
+ var hasSmartPtr = !!record.smartPtr;
5758
+ if (hasSmartPtrType !== hasSmartPtr) {
5759
+ throwInternalError("Both smartPtrType and smartPtr must be specified");
5760
+ }
5761
+ record.count = { value: 1 };
5762
+ return attachFinalizer(Object.create(prototype, { $$: { value: record, writable: true } }));
5763
+ };
5764
+ function RegisteredPointer_fromWireType(ptr) {
5765
+ var rawPointer = this.getPointee(ptr);
5766
+ if (!rawPointer) {
5767
+ this.destructor(ptr);
5768
+ return null;
5769
+ }
5770
+ var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
5771
+ if (void 0 !== registeredInstance) {
5772
+ if (0 === registeredInstance.$$.count.value) {
5773
+ registeredInstance.$$.ptr = rawPointer;
5774
+ registeredInstance.$$.smartPtr = ptr;
5775
+ return registeredInstance["clone"]();
5776
+ } else {
5777
+ var rv = registeredInstance["clone"]();
5778
+ this.destructor(ptr);
5779
+ return rv;
5780
+ }
5781
+ }
5782
+ function makeDefaultHandle() {
5783
+ if (this.isSmartPointer) {
5784
+ return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });
5785
+ } else {
5786
+ return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });
5787
+ }
5788
+ }
5789
+ var actualType = this.registeredClass.getActualType(rawPointer);
5790
+ var registeredPointerRecord = registeredPointers[actualType];
5791
+ if (!registeredPointerRecord) {
5792
+ return makeDefaultHandle.call(this);
5793
+ }
5794
+ var toType;
5795
+ if (this.isConst) {
5796
+ toType = registeredPointerRecord.constPointerType;
5797
+ } else {
5798
+ toType = registeredPointerRecord.pointerType;
5799
+ }
5800
+ var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
5801
+ if (dp === null) {
5802
+ return makeDefaultHandle.call(this);
5803
+ }
5804
+ if (this.isSmartPointer) {
5805
+ return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });
5806
+ } else {
5807
+ return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });
5808
+ }
5809
+ }
5715
5810
  var attachFinalizer = (handle) => {
5716
5811
  if ("undefined" === typeof FinalizationRegistry) {
5717
5812
  attachFinalizer = (handle2) => handle2;
@@ -5742,8 +5837,7 @@
5742
5837
  };
5743
5838
  var delayFunction;
5744
5839
  var init_ClassHandle = () => {
5745
- let proto = ClassHandle.prototype;
5746
- Object.assign(proto, { isAliasOf(other) {
5840
+ Object.assign(ClassHandle.prototype, { isAliasOf(other) {
5747
5841
  if (!(this instanceof ClassHandle)) {
5748
5842
  return false;
5749
5843
  }
@@ -5806,15 +5900,10 @@
5806
5900
  this.$$.deleteScheduled = true;
5807
5901
  return this;
5808
5902
  } });
5809
- const symbolDispose = Symbol.dispose;
5810
- if (symbolDispose) {
5811
- proto[symbolDispose] = proto["delete"];
5812
- }
5813
5903
  };
5814
5904
  function ClassHandle() {
5815
5905
  }
5816
- var createNamedFunction = (name, func) => Object.defineProperty(func, "name", { value: name });
5817
- var registeredPointers = {};
5906
+ var createNamedFunction = (name, body) => Object.defineProperty(body, "name", { value: name });
5818
5907
  var ensureOverloadTable = (proto, methodName, humanName) => {
5819
5908
  if (void 0 === proto[methodName].overloadTable) {
5820
5909
  var prevFunc = proto[methodName];
@@ -5874,17 +5963,6 @@
5874
5963
  }
5875
5964
  return ptr;
5876
5965
  };
5877
- var embindRepr = (v) => {
5878
- if (v === null) {
5879
- return "null";
5880
- }
5881
- var t = typeof v;
5882
- if (t === "object" || t === "array" || t === "function") {
5883
- return v.toString();
5884
- } else {
5885
- return "" + v;
5886
- }
5887
- };
5888
5966
  function constNoSmartPtrRawPointerToWireType(destructors, handle) {
5889
5967
  if (handle === null) {
5890
5968
  if (this.isReference) {
@@ -5981,92 +6059,6 @@
5981
6059
  var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
5982
6060
  return ptr;
5983
6061
  }
5984
- var downcastPointer = (ptr, ptrClass, desiredClass) => {
5985
- if (ptrClass === desiredClass) {
5986
- return ptr;
5987
- }
5988
- if (void 0 === desiredClass.baseClass) {
5989
- return null;
5990
- }
5991
- var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
5992
- if (rv === null) {
5993
- return null;
5994
- }
5995
- return desiredClass.downcast(rv);
5996
- };
5997
- var registeredInstances = {};
5998
- var getBasestPointer = (class_, ptr) => {
5999
- if (ptr === void 0) {
6000
- throwBindingError("ptr should not be undefined");
6001
- }
6002
- while (class_.baseClass) {
6003
- ptr = class_.upcast(ptr);
6004
- class_ = class_.baseClass;
6005
- }
6006
- return ptr;
6007
- };
6008
- var getInheritedInstance = (class_, ptr) => {
6009
- ptr = getBasestPointer(class_, ptr);
6010
- return registeredInstances[ptr];
6011
- };
6012
- var makeClassHandle = (prototype, record) => {
6013
- if (!record.ptrType || !record.ptr) {
6014
- throwInternalError("makeClassHandle requires ptr and ptrType");
6015
- }
6016
- var hasSmartPtrType = !!record.smartPtrType;
6017
- var hasSmartPtr = !!record.smartPtr;
6018
- if (hasSmartPtrType !== hasSmartPtr) {
6019
- throwInternalError("Both smartPtrType and smartPtr must be specified");
6020
- }
6021
- record.count = { value: 1 };
6022
- return attachFinalizer(Object.create(prototype, { $$: { value: record, writable: true } }));
6023
- };
6024
- function RegisteredPointer_fromWireType(ptr) {
6025
- var rawPointer = this.getPointee(ptr);
6026
- if (!rawPointer) {
6027
- this.destructor(ptr);
6028
- return null;
6029
- }
6030
- var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
6031
- if (void 0 !== registeredInstance) {
6032
- if (0 === registeredInstance.$$.count.value) {
6033
- registeredInstance.$$.ptr = rawPointer;
6034
- registeredInstance.$$.smartPtr = ptr;
6035
- return registeredInstance["clone"]();
6036
- } else {
6037
- var rv = registeredInstance["clone"]();
6038
- this.destructor(ptr);
6039
- return rv;
6040
- }
6041
- }
6042
- function makeDefaultHandle() {
6043
- if (this.isSmartPointer) {
6044
- return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });
6045
- } else {
6046
- return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });
6047
- }
6048
- }
6049
- var actualType = this.registeredClass.getActualType(rawPointer);
6050
- var registeredPointerRecord = registeredPointers[actualType];
6051
- if (!registeredPointerRecord) {
6052
- return makeDefaultHandle.call(this);
6053
- }
6054
- var toType;
6055
- if (this.isConst) {
6056
- toType = registeredPointerRecord.constPointerType;
6057
- } else {
6058
- toType = registeredPointerRecord.pointerType;
6059
- }
6060
- var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
6061
- if (dp === null) {
6062
- return makeDefaultHandle.call(this);
6063
- }
6064
- if (this.isSmartPointer) {
6065
- return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });
6066
- } else {
6067
- return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });
6068
- }
6069
- }
6070
6062
  var init_RegisteredPointer = () => {
6071
6063
  Object.assign(RegisteredPointer.prototype, { getPointee(ptr) {
6072
6064
  if (this.rawGetPointee) {
@@ -6112,9 +6104,18 @@
6112
6104
  Module[name].argCount = numArguments;
6113
6105
  }
6114
6106
  };
6115
- var getDynCaller = (sig, ptr, promising = false) => (...args) => dynCall(sig, ptr, args, promising);
6116
- var embind__requireFunction = (signature, rawFunction, isAsync = false) => {
6117
- signature = AsciiToString(signature);
6107
+ var dynCallLegacy = (sig, ptr, args) => {
6108
+ sig = sig.replace(/p/g, "i");
6109
+ var f = Module["dynCall_" + sig];
6110
+ return f(ptr, ...args);
6111
+ };
6112
+ var dynCall = (sig, ptr, args = []) => {
6113
+ var rtn = dynCallLegacy(sig, ptr, args);
6114
+ return rtn;
6115
+ };
6116
+ var getDynCaller = (sig, ptr) => (...args) => dynCall(sig, ptr, args);
6117
+ var embind__requireFunction = (signature, rawFunction) => {
6118
+ signature = readLatin1String(signature);
6118
6119
  function makeDynCaller() {
6119
6120
  return getDynCaller(signature, rawFunction);
6120
6121
  }
@@ -6124,11 +6125,30 @@
6124
6125
  }
6125
6126
  return fp;
6126
6127
  };
6127
- class UnboundTypeError extends Error {
6128
- }
6128
+ var extendError = (baseErrorType, errorName) => {
6129
+ var errorClass = createNamedFunction(errorName, function(message) {
6130
+ this.name = errorName;
6131
+ this.message = message;
6132
+ var stack = new Error(message).stack;
6133
+ if (stack !== void 0) {
6134
+ this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, "");
6135
+ }
6136
+ });
6137
+ errorClass.prototype = Object.create(baseErrorType.prototype);
6138
+ errorClass.prototype.constructor = errorClass;
6139
+ errorClass.prototype.toString = function() {
6140
+ if (this.message === void 0) {
6141
+ return this.name;
6142
+ } else {
6143
+ return `${this.name}: ${this.message}`;
6144
+ }
6145
+ };
6146
+ return errorClass;
6147
+ };
6148
+ var UnboundTypeError;
6129
6149
  var getTypeName = (type) => {
6130
6150
  var ptr = ___getTypeName(type);
6131
- var rv = AsciiToString(ptr);
6151
+ var rv = readLatin1String(ptr);
6132
6152
  _free(ptr);
6133
6153
  return rv;
6134
6154
  };
@@ -6153,7 +6173,7 @@
6153
6173
  throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([", "]));
6154
6174
  };
6155
6175
  var __embind_register_class = (rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) => {
6156
- name = AsciiToString(name);
6176
+ name = readLatin1String(name);
6157
6177
  getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
6158
6178
  upcast && (upcast = embind__requireFunction(upcastSignature, upcast));
6159
6179
  downcast && (downcast = embind__requireFunction(downcastSignature, downcast));
@@ -6175,10 +6195,10 @@
6175
6195
  }
6176
6196
  var constructor = createNamedFunction(name, function(...args) {
6177
6197
  if (Object.getPrototypeOf(this) !== instancePrototype) {
6178
- throw new BindingError(`Use 'new' to construct ${name}`);
6198
+ throw new BindingError("Use 'new' to construct " + name);
6179
6199
  }
6180
6200
  if (void 0 === registeredClass.constructor_body) {
6181
- throw new BindingError(`${name} has no accessible constructor`);
6201
+ throw new BindingError(name + " has no accessible constructor");
6182
6202
  }
6183
6203
  var body = registeredClass.constructor_body[args.length];
6184
6204
  if (void 0 === body) {
@@ -6209,6 +6229,17 @@
6209
6229
  }
6210
6230
  return false;
6211
6231
  }
6232
+ function newFunc(constructor, argumentList) {
6233
+ if (!(constructor instanceof Function)) {
6234
+ throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`);
6235
+ }
6236
+ var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() {
6237
+ });
6238
+ dummy.prototype = constructor.prototype;
6239
+ var obj = new dummy();
6240
+ var r = constructor.apply(obj, argumentList);
6241
+ return r instanceof Object ? r : obj;
6242
+ }
6212
6243
  function createJsInvoker(argTypes, isClassMethodFunc, returns, isAsync) {
6213
6244
  var needsDestructorStack = usesDestructorStack(argTypes);
6214
6245
  var argCount = argTypes.length - 2;
@@ -6321,38 +6352,34 @@
6321
6352
  original.isAsync || importPattern.test(x);
6322
6353
  }
6323
6354
  }
6324
- }, instrumentFunction(original) {
6325
- var wrapper = (...args) => {
6326
- Asyncify.exportCallStack.push(original);
6327
- try {
6328
- return original(...args);
6329
- } finally {
6330
- if (!ABORT) {
6331
- Asyncify.exportCallStack.pop();
6332
- Asyncify.maybeStopUnwind();
6333
- }
6334
- }
6335
- };
6336
- Asyncify.funcWrappers.set(original, wrapper);
6337
- return wrapper;
6338
6355
  }, instrumentWasmExports(exports) {
6339
6356
  var ret = {};
6340
6357
  for (let [x, original] of Object.entries(exports)) {
6341
6358
  if (typeof original == "function") {
6342
- var wrapper = Asyncify.instrumentFunction(original);
6343
- ret[x] = wrapper;
6359
+ ret[x] = (...args) => {
6360
+ Asyncify.exportCallStack.push(x);
6361
+ try {
6362
+ return original(...args);
6363
+ } finally {
6364
+ if (!ABORT) {
6365
+ Asyncify.exportCallStack.pop();
6366
+ Asyncify.maybeStopUnwind();
6367
+ }
6368
+ }
6369
+ };
6344
6370
  } else {
6345
6371
  ret[x] = original;
6346
6372
  }
6347
6373
  }
6348
6374
  return ret;
6349
- }, 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) {
6350
- if (!Asyncify.callstackFuncToId.has(func)) {
6351
- var id = Asyncify.callStackId++;
6352
- Asyncify.callstackFuncToId.set(func, id);
6353
- Asyncify.callStackIdToFunc.set(id, func);
6375
+ }, 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) {
6376
+ var id = Asyncify.callStackNameToId[funcName];
6377
+ if (id === void 0) {
6378
+ id = Asyncify.callStackId++;
6379
+ Asyncify.callStackNameToId[funcName] = id;
6380
+ Asyncify.callStackIdToName[id] = funcName;
6354
6381
  }
6355
- return Asyncify.callstackFuncToId.get(func);
6382
+ return id;
6356
6383
  }, maybeStopUnwind() {
6357
6384
  if (Asyncify.currData && Asyncify.state === Asyncify.State.Unwinding && Asyncify.exportCallStack.length === 0) {
6358
6385
  Asyncify.state = Asyncify.State.Normal;
@@ -6377,13 +6404,16 @@
6377
6404
  var bottomOfCallStack = Asyncify.exportCallStack[0];
6378
6405
  var rewindId = Asyncify.getCallStackId(bottomOfCallStack);
6379
6406
  HEAP32[ptr + 8 >> 2] = rewindId;
6380
- }, getDataRewindFunc(ptr) {
6407
+ }, getDataRewindFuncName(ptr) {
6381
6408
  var id = HEAP32[ptr + 8 >> 2];
6382
- var func = Asyncify.callStackIdToFunc.get(id);
6409
+ var name = Asyncify.callStackIdToName[id];
6410
+ return name;
6411
+ }, getDataRewindFunc(name) {
6412
+ var func = wasmExports[name];
6383
6413
  return func;
6384
6414
  }, doRewind(ptr) {
6385
- var original = Asyncify.getDataRewindFunc(ptr);
6386
- var func = Asyncify.funcWrappers.get(original);
6415
+ var name = Asyncify.getDataRewindFuncName(ptr);
6416
+ var func = Asyncify.getDataRewindFunc(name);
6387
6417
  return func();
6388
6418
  }, handleSleep(startAsync) {
6389
6419
  if (ABORT)
@@ -6443,9 +6473,11 @@
6443
6473
  abort(`invalid state: ${Asyncify.state}`);
6444
6474
  }
6445
6475
  return Asyncify.handleSleepReturnValue;
6446
- }, handleAsync: (startAsync) => Asyncify.handleSleep((wakeUp) => {
6447
- startAsync().then(wakeUp);
6448
- }) };
6476
+ }, handleAsync(startAsync) {
6477
+ return Asyncify.handleSleep((wakeUp) => {
6478
+ startAsync().then(wakeUp);
6479
+ });
6480
+ } };
6449
6481
  function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) {
6450
6482
  var argCount = argTypes.length;
6451
6483
  if (argCount < 2) {
@@ -6467,7 +6499,8 @@
6467
6499
  }
6468
6500
  }
6469
6501
  let [args, invokerFnBody] = createJsInvoker(argTypes, isClassMethodFunc, returns, isAsync);
6470
- var invokerFn = new Function(...args, invokerFnBody)(...closureArgs);
6502
+ args.push(invokerFnBody);
6503
+ var invokerFn = newFunc(Function, args)(...closureArgs);
6471
6504
  return createNamedFunction(humanName, invokerFn);
6472
6505
  }
6473
6506
  var heap32VectorToArray = (count, firstElement) => {
@@ -6480,15 +6513,17 @@
6480
6513
  var getFunctionName = (signature) => {
6481
6514
  signature = signature.trim();
6482
6515
  const argsIndex = signature.indexOf("(");
6483
- if (argsIndex === -1)
6516
+ if (argsIndex !== -1) {
6517
+ return signature.substr(0, argsIndex);
6518
+ } else {
6484
6519
  return signature;
6485
- return signature.slice(0, argsIndex);
6520
+ }
6486
6521
  };
6487
6522
  var __embind_register_class_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync, isNonnullReturn) => {
6488
6523
  var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
6489
- methodName = AsciiToString(methodName);
6524
+ methodName = readLatin1String(methodName);
6490
6525
  methodName = getFunctionName(methodName);
6491
- rawInvoker = embind__requireFunction(invokerSignature, rawInvoker, isAsync);
6526
+ rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
6492
6527
  whenDependentTypesAreResolved([], [rawClassType], (classType) => {
6493
6528
  classType = classType[0];
6494
6529
  var humanName = `${classType.name}.${methodName}`;
@@ -6552,9 +6587,9 @@
6552
6587
  };
6553
6588
  var __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync, isNonnullReturn) => {
6554
6589
  var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
6555
- methodName = AsciiToString(methodName);
6590
+ methodName = readLatin1String(methodName);
6556
6591
  methodName = getFunctionName(methodName);
6557
- rawInvoker = embind__requireFunction(invokerSignature, rawInvoker, isAsync);
6592
+ rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
6558
6593
  whenDependentTypesAreResolved([], [rawClassType], (classType) => {
6559
6594
  classType = classType[0];
6560
6595
  var humanName = `${classType.name}.${methodName}`;
@@ -6603,7 +6638,7 @@
6603
6638
  return upcastPointer(this_.$$.ptr, this_.$$.ptrType.registeredClass, classType.registeredClass);
6604
6639
  };
6605
6640
  var __embind_register_class_property = (classType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) => {
6606
- fieldName = AsciiToString(fieldName);
6641
+ fieldName = readLatin1String(fieldName);
6607
6642
  getter = embind__requireFunction(getterSignature, getter);
6608
6643
  whenDependentTypesAreResolved([], [classType], (classType2) => {
6609
6644
  classType2 = classType2[0];
@@ -6640,16 +6675,21 @@
6640
6675
  });
6641
6676
  };
6642
6677
  var emval_freelist = [];
6643
- var emval_handles = [0, 1, , 1, null, 1, true, 1, false, 1];
6678
+ var emval_handles = [];
6644
6679
  var __emval_decref = (handle) => {
6645
6680
  if (handle > 9 && 0 === --emval_handles[handle + 1]) {
6646
6681
  emval_handles[handle] = void 0;
6647
6682
  emval_freelist.push(handle);
6648
6683
  }
6649
6684
  };
6685
+ var count_emval_handles = () => emval_handles.length / 2 - 5 - emval_freelist.length;
6686
+ var init_emval = () => {
6687
+ emval_handles.push(0, 1, void 0, 1, null, 1, true, 1, false, 1);
6688
+ Module["count_emval_handles"] = count_emval_handles;
6689
+ };
6650
6690
  var Emval = { toValue: (handle) => {
6651
6691
  if (!handle) {
6652
- throwBindingError(`Cannot use deleted val. handle = ${handle}`);
6692
+ throwBindingError("Cannot use deleted val. handle = " + handle);
6653
6693
  }
6654
6694
  return emval_handles[handle];
6655
6695
  }, toHandle: (value) => {
@@ -6701,7 +6741,7 @@
6701
6741
  }
6702
6742
  };
6703
6743
  var __embind_register_enum = (rawType, name, size, isSigned) => {
6704
- name = AsciiToString(name);
6744
+ name = readLatin1String(name);
6705
6745
  function ctor() {
6706
6746
  }
6707
6747
  ctor.values = {};
@@ -6719,7 +6759,7 @@
6719
6759
  };
6720
6760
  var __embind_register_enum_value = (rawEnumType, name, enumValue) => {
6721
6761
  var enumType = requireRegisteredType(rawEnumType, "enum");
6722
- name = AsciiToString(name);
6762
+ name = readLatin1String(name);
6723
6763
  var Enum = enumType.constructor;
6724
6764
  var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(`${enumType.name}_${name}`, function() {
6725
6765
  }) } });
@@ -6741,14 +6781,14 @@
6741
6781
  }
6742
6782
  };
6743
6783
  var __embind_register_float = (rawType, name, size) => {
6744
- name = AsciiToString(name);
6784
+ name = readLatin1String(name);
6745
6785
  registerType(rawType, { name, fromWireType: (value) => value, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: floatReadValueFromPointer(name, size), destructorFunction: null });
6746
6786
  };
6747
6787
  var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, isNonnullReturn) => {
6748
6788
  var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
6749
- name = AsciiToString(name);
6789
+ name = readLatin1String(name);
6750
6790
  name = getFunctionName(name);
6751
- rawInvoker = embind__requireFunction(signature, rawInvoker, isAsync);
6791
+ rawInvoker = embind__requireFunction(signature, rawInvoker);
6752
6792
  exposePublicSymbol(name, function() {
6753
6793
  throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes);
6754
6794
  }, argCount - 1);
@@ -6759,15 +6799,28 @@
6759
6799
  });
6760
6800
  };
6761
6801
  var __embind_register_integer = (primitiveType, name, size, minRange, maxRange) => {
6762
- name = AsciiToString(name);
6763
- const isUnsignedType = minRange === 0;
6764
- let fromWireType = (value) => value;
6765
- if (isUnsignedType) {
6802
+ name = readLatin1String(name);
6803
+ var fromWireType = (value) => value;
6804
+ if (minRange === 0) {
6766
6805
  var bitshift = 32 - 8 * size;
6767
6806
  fromWireType = (value) => value << bitshift >>> bitshift;
6768
- maxRange = fromWireType(maxRange);
6769
6807
  }
6770
- registerType(primitiveType, { name, fromWireType, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: integerReadValueFromPointer(name, size, minRange !== 0), destructorFunction: null });
6808
+ var isUnsignedType = name.includes("unsigned");
6809
+ var checkAssertions = (value, toTypeName) => {
6810
+ };
6811
+ var toWireType;
6812
+ if (isUnsignedType) {
6813
+ toWireType = function(destructors, value) {
6814
+ checkAssertions(value, this.name);
6815
+ return value >>> 0;
6816
+ };
6817
+ } else {
6818
+ toWireType = function(destructors, value) {
6819
+ checkAssertions(value, this.name);
6820
+ return value;
6821
+ };
6822
+ }
6823
+ registerType(primitiveType, { name, fromWireType, toWireType, argPackAdvance: GenericWireTypeSize, readValueFromPointer: integerReadValueFromPointer(name, size, minRange !== 0), destructorFunction: null });
6771
6824
  };
6772
6825
  var __embind_register_memory_view = (rawType, dataTypeIndex, name) => {
6773
6826
  var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array];
@@ -6777,7 +6830,7 @@
6777
6830
  var data = HEAPU32[handle + 4 >> 2];
6778
6831
  return new TA(HEAP8.buffer, data, size);
6779
6832
  }
6780
- name = AsciiToString(name);
6833
+ name = readLatin1String(name);
6781
6834
  registerType(rawType, { name, fromWireType: decodeMemoryView, argPackAdvance: GenericWireTypeSize, readValueFromPointer: decodeMemoryView }, { ignoreDuplicateRegistrations: true });
6782
6835
  };
6783
6836
  var EmValOptionalType = Object.assign({ optional: true }, EmValType);
@@ -6785,7 +6838,7 @@
6785
6838
  registerType(rawOptionalType, EmValOptionalType);
6786
6839
  };
6787
6840
  var __embind_register_smart_ptr = (rawType, rawPointeeType, name, sharingPolicy, getPointeeSignature, rawGetPointee, constructorSignature, rawConstructor, shareSignature, rawShare, destructorSignature, rawDestructor) => {
6788
- name = AsciiToString(name);
6841
+ name = readLatin1String(name);
6789
6842
  rawGetPointee = embind__requireFunction(getPointeeSignature, rawGetPointee);
6790
6843
  rawConstructor = embind__requireFunction(constructorSignature, rawConstructor);
6791
6844
  rawShare = embind__requireFunction(shareSignature, rawShare);
@@ -6797,7 +6850,7 @@
6797
6850
  });
6798
6851
  };
6799
6852
  var __embind_register_std_string = (rawType, name) => {
6800
- name = AsciiToString(name);
6853
+ name = readLatin1String(name);
6801
6854
  registerType(rawType, { name, fromWireType(value) {
6802
6855
  var length = HEAPU32[value >> 2];
6803
6856
  var payload = value + 4;
@@ -6827,7 +6880,7 @@
6827
6880
  }
6828
6881
  var length;
6829
6882
  var valueIsOfTypeString = typeof value == "string";
6830
- if (!(valueIsOfTypeString || ArrayBuffer.isView(value) && value.BYTES_PER_ELEMENT == 1)) {
6883
+ if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {
6831
6884
  throwBindingError("Cannot pass non-string to std::string");
6832
6885
  }
6833
6886
  if (valueIsOfTypeString) {
@@ -6839,11 +6892,22 @@
6839
6892
  var ptr = base + 4;
6840
6893
  HEAPU32[base >> 2] = length;
6841
6894
  if (valueIsOfTypeString) {
6842
- {
6843
- stringToUTF8(value, ptr, length + 1);
6844
- }
6895
+ stringToUTF8(value, ptr, length + 1);
6845
6896
  } else {
6846
- HEAPU8.set(value, ptr);
6897
+ if (valueIsOfTypeString) {
6898
+ for (var i2 = 0; i2 < length; ++i2) {
6899
+ var charCode = value.charCodeAt(i2);
6900
+ if (charCode > 255) {
6901
+ _free(base);
6902
+ throwBindingError("String has UTF-16 code units that do not fit in 8 bits");
6903
+ }
6904
+ HEAPU8[ptr + i2] = charCode;
6905
+ }
6906
+ } else {
6907
+ for (var i2 = 0; i2 < length; ++i2) {
6908
+ HEAPU8[ptr + i2] = value[i2];
6909
+ }
6910
+ }
6847
6911
  }
6848
6912
  if (destructors !== null) {
6849
6913
  destructors.push(_free, base);
@@ -6853,14 +6917,24 @@
6853
6917
  _free(ptr);
6854
6918
  } });
6855
6919
  };
6856
- var UTF16Decoder = new TextDecoder("utf-16le");
6920
+ var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0;
6857
6921
  var UTF16ToString = (ptr, maxBytesToRead) => {
6858
- var idx = ptr >> 1;
6922
+ var endPtr = ptr;
6923
+ var idx = endPtr >> 1;
6859
6924
  var maxIdx = idx + maxBytesToRead / 2;
6860
- var endIdx = idx;
6861
- while (!(endIdx >= maxIdx) && HEAPU16[endIdx])
6862
- ++endIdx;
6863
- return UTF16Decoder.decode(HEAPU16.subarray(idx, endIdx));
6925
+ while (!(idx >= maxIdx) && HEAPU16[idx])
6926
+ ++idx;
6927
+ endPtr = idx << 1;
6928
+ if (endPtr - ptr > 32 && UTF16Decoder)
6929
+ return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
6930
+ var str = "";
6931
+ for (var i2 = 0; !(i2 >= maxBytesToRead / 2); ++i2) {
6932
+ var codeUnit = HEAP16[ptr + i2 * 2 >> 1];
6933
+ if (codeUnit == 0)
6934
+ break;
6935
+ str += String.fromCharCode(codeUnit);
6936
+ }
6937
+ return str;
6864
6938
  };
6865
6939
  var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
6866
6940
  maxBytesToWrite ?? (maxBytesToWrite = 2147483647);
@@ -6879,12 +6953,19 @@
6879
6953
  };
6880
6954
  var lengthBytesUTF16 = (str) => str.length * 2;
6881
6955
  var UTF32ToString = (ptr, maxBytesToRead) => {
6956
+ var i2 = 0;
6882
6957
  var str = "";
6883
- for (var i2 = 0; !(i2 >= maxBytesToRead / 4); i2++) {
6958
+ while (!(i2 >= maxBytesToRead / 4)) {
6884
6959
  var utf32 = HEAP32[ptr + i2 * 4 >> 2];
6885
- if (!utf32)
6960
+ if (utf32 == 0)
6886
6961
  break;
6887
- str += String.fromCodePoint(utf32);
6962
+ ++i2;
6963
+ if (utf32 >= 65536) {
6964
+ var ch = utf32 - 65536;
6965
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
6966
+ } else {
6967
+ str += String.fromCharCode(utf32);
6968
+ }
6888
6969
  }
6889
6970
  return str;
6890
6971
  };
@@ -6895,11 +6976,12 @@
6895
6976
  var startPtr = outPtr;
6896
6977
  var endPtr = startPtr + maxBytesToWrite - 4;
6897
6978
  for (var i2 = 0; i2 < str.length; ++i2) {
6898
- var codePoint = str.codePointAt(i2);
6899
- if (codePoint > 65535) {
6900
- i2++;
6979
+ var codeUnit = str.charCodeAt(i2);
6980
+ if (codeUnit >= 55296 && codeUnit <= 57343) {
6981
+ var trailSurrogate = str.charCodeAt(++i2);
6982
+ codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
6901
6983
  }
6902
- HEAP32[outPtr >> 2] = codePoint;
6984
+ HEAP32[outPtr >> 2] = codeUnit;
6903
6985
  outPtr += 4;
6904
6986
  if (outPtr + 4 > endPtr)
6905
6987
  break;
@@ -6910,16 +6992,15 @@
6910
6992
  var lengthBytesUTF32 = (str) => {
6911
6993
  var len = 0;
6912
6994
  for (var i2 = 0; i2 < str.length; ++i2) {
6913
- var codePoint = str.codePointAt(i2);
6914
- if (codePoint > 65535) {
6915
- i2++;
6916
- }
6995
+ var codeUnit = str.charCodeAt(i2);
6996
+ if (codeUnit >= 55296 && codeUnit <= 57343)
6997
+ ++i2;
6917
6998
  len += 4;
6918
6999
  }
6919
7000
  return len;
6920
7001
  };
6921
7002
  var __embind_register_std_wstring = (rawType, charSize, name) => {
6922
- name = AsciiToString(name);
7003
+ name = readLatin1String(name);
6923
7004
  var decodeString, encodeString, readCharAt, lengthBytesUTF;
6924
7005
  if (charSize === 2) {
6925
7006
  decodeString = UTF16ToString;
@@ -6969,13 +7050,13 @@
6969
7050
  } });
6970
7051
  };
6971
7052
  var __embind_register_value_object = (rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) => {
6972
- structRegistrations[rawType] = { name: AsciiToString(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };
7053
+ structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };
6973
7054
  };
6974
7055
  var __embind_register_value_object_field = (structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) => {
6975
- structRegistrations[structType].fields.push({ fieldName: AsciiToString(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
7056
+ structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
6976
7057
  };
6977
7058
  var __embind_register_void = (rawType, name) => {
6978
- name = AsciiToString(name);
7059
+ name = readLatin1String(name);
6979
7060
  registerType(rawType, { isVoid: true, name, argPackAdvance: 0, fromWireType: () => void 0, toWireType: (destructors, o) => void 0 });
6980
7061
  };
6981
7062
  var emval_returnValue = (returnType, destructorsRef, handle) => {
@@ -7006,7 +7087,7 @@
7006
7087
  var getStringOrSymbol = (address) => {
7007
7088
  var symbol = emval_symbols[address];
7008
7089
  if (symbol === void 0) {
7009
- return AsciiToString(address);
7090
+ return readLatin1String(address);
7010
7091
  }
7011
7092
  return symbol;
7012
7093
  };
@@ -7021,7 +7102,14 @@
7021
7102
  second = Emval.toValue(second);
7022
7103
  return first == second;
7023
7104
  };
7024
- var emval_get_global = () => globalThis;
7105
+ var emval_get_global = () => {
7106
+ if (typeof globalThis == "object") {
7107
+ return globalThis;
7108
+ }
7109
+ return function() {
7110
+ return Function;
7111
+ }()("return this")();
7112
+ };
7025
7113
  var __emval_get_global = (name) => {
7026
7114
  if (name === 0) {
7027
7115
  return Emval.toHandle(emval_get_global());
@@ -7038,7 +7126,7 @@
7038
7126
  var emval_lookupTypes = (argCount, argTypes) => {
7039
7127
  var a = new Array(argCount);
7040
7128
  for (var i2 = 0; i2 < argCount; ++i2) {
7041
- a[i2] = requireRegisteredType(HEAPU32[argTypes + i2 * 4 >> 2], `parameter ${i2}`);
7129
+ a[i2] = requireRegisteredType(HEAPU32[argTypes + i2 * 4 >> 2], "parameter " + i2);
7042
7130
  }
7043
7131
  return a;
7044
7132
  };
@@ -7056,8 +7144,8 @@
7056
7144
  var params = ["retType"];
7057
7145
  var args = [retType];
7058
7146
  for (var i2 = 0; i2 < argCount; ++i2) {
7059
- argsList.push(`arg${i2}`);
7060
- params.push(`argType${i2}`);
7147
+ argsList.push("arg" + i2);
7148
+ params.push("argType" + i2);
7061
7149
  args.push(types[i2]);
7062
7150
  functionBody += ` var arg${i2} = argType${i2}.readValueFromPointer(args${offset ? "+" + offset : ""});
7063
7151
  `;
@@ -7072,7 +7160,8 @@
7072
7160
  functionBody += " return emval_returnValue(retType, destructorsRef, rv);\n";
7073
7161
  }
7074
7162
  functionBody += "};\n";
7075
- var invokerFunction = new Function(...params, functionBody)(...args);
7163
+ params.push(functionBody);
7164
+ var invokerFunction = newFunc(Function, params)(...args);
7076
7165
  var functionName = `methodCaller<(${types.map((t) => t.name).join(", ")}) => ${retType.name}>`;
7077
7166
  return emval_addMethodCaller(createNamedFunction(functionName, invokerFunction));
7078
7167
  };
@@ -7134,6 +7223,90 @@
7134
7223
  HEAP64[ptime >> 3] = BigInt(nsec);
7135
7224
  return 0;
7136
7225
  }
7226
+ var JSEvents = { memcpy(target, src, size) {
7227
+ HEAP8.set(HEAP8.subarray(src, src + size), target);
7228
+ }, removeAllEventListeners() {
7229
+ while (JSEvents.eventHandlers.length) {
7230
+ JSEvents._removeHandler(JSEvents.eventHandlers.length - 1);
7231
+ }
7232
+ JSEvents.deferredCalls = [];
7233
+ }, inEventHandler: 0, deferredCalls: [], deferCall(targetFunction, precedence, argsList) {
7234
+ function arraysHaveEqualContent(arrA, arrB) {
7235
+ if (arrA.length != arrB.length)
7236
+ return false;
7237
+ for (var i2 in arrA) {
7238
+ if (arrA[i2] != arrB[i2])
7239
+ return false;
7240
+ }
7241
+ return true;
7242
+ }
7243
+ for (var call of JSEvents.deferredCalls) {
7244
+ if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) {
7245
+ return;
7246
+ }
7247
+ }
7248
+ JSEvents.deferredCalls.push({ targetFunction, precedence, argsList });
7249
+ JSEvents.deferredCalls.sort((x, y) => x.precedence < y.precedence);
7250
+ }, removeDeferredCalls(targetFunction) {
7251
+ JSEvents.deferredCalls = JSEvents.deferredCalls.filter((call) => call.targetFunction != targetFunction);
7252
+ }, canPerformEventHandlerRequests() {
7253
+ if (navigator.userActivation) {
7254
+ return navigator.userActivation.isActive;
7255
+ }
7256
+ return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls;
7257
+ }, runDeferredCalls() {
7258
+ if (!JSEvents.canPerformEventHandlerRequests()) {
7259
+ return;
7260
+ }
7261
+ var deferredCalls = JSEvents.deferredCalls;
7262
+ JSEvents.deferredCalls = [];
7263
+ for (var call of deferredCalls) {
7264
+ call.targetFunction(...call.argsList);
7265
+ }
7266
+ }, eventHandlers: [], removeAllHandlersOnTarget: (target, eventTypeString) => {
7267
+ for (var i2 = 0; i2 < JSEvents.eventHandlers.length; ++i2) {
7268
+ if (JSEvents.eventHandlers[i2].target == target && (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i2].eventTypeString)) {
7269
+ JSEvents._removeHandler(i2--);
7270
+ }
7271
+ }
7272
+ }, _removeHandler(i2) {
7273
+ var h = JSEvents.eventHandlers[i2];
7274
+ h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture);
7275
+ JSEvents.eventHandlers.splice(i2, 1);
7276
+ }, registerOrRemoveHandler(eventHandler) {
7277
+ if (!eventHandler.target) {
7278
+ return -4;
7279
+ }
7280
+ if (eventHandler.callbackfunc) {
7281
+ eventHandler.eventListenerFunc = function(event) {
7282
+ ++JSEvents.inEventHandler;
7283
+ JSEvents.currentEventHandler = eventHandler;
7284
+ JSEvents.runDeferredCalls();
7285
+ eventHandler.handlerFunc(event);
7286
+ JSEvents.runDeferredCalls();
7287
+ --JSEvents.inEventHandler;
7288
+ };
7289
+ eventHandler.target.addEventListener(eventHandler.eventTypeString, eventHandler.eventListenerFunc, eventHandler.useCapture);
7290
+ JSEvents.eventHandlers.push(eventHandler);
7291
+ } else {
7292
+ for (var i2 = 0; i2 < JSEvents.eventHandlers.length; ++i2) {
7293
+ if (JSEvents.eventHandlers[i2].target == eventHandler.target && JSEvents.eventHandlers[i2].eventTypeString == eventHandler.eventTypeString) {
7294
+ JSEvents._removeHandler(i2--);
7295
+ }
7296
+ }
7297
+ }
7298
+ return 0;
7299
+ }, getNodeNameForTarget(target) {
7300
+ if (!target)
7301
+ return "";
7302
+ if (target == window)
7303
+ return "#window";
7304
+ if (target == screen)
7305
+ return "#screen";
7306
+ return target?.nodeName || "";
7307
+ }, fullscreenEnabled() {
7308
+ return document.fullscreenEnabled || document.webkitFullscreenEnabled;
7309
+ } };
7137
7310
  var maybeCStringToJsString = (cString) => cString > 2 ? UTF8ToString(cString) : cString;
7138
7311
  var specialHTMLTargets = [0, typeof document != "undefined" ? document : 0, typeof window != "undefined" ? window : 0];
7139
7312
  var findEventTarget = (target) => {
@@ -7250,7 +7423,7 @@
7250
7423
  if (typeof JSEvents == "object") {
7251
7424
  JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);
7252
7425
  }
7253
- if (GL.contexts[contextHandle]?.GLctx.canvas) {
7426
+ if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) {
7254
7427
  GL.contexts[contextHandle].GLctx.canvas.GLctxObject = void 0;
7255
7428
  }
7256
7429
  GL.contexts[contextHandle] = null;
@@ -8376,7 +8549,6 @@
8376
8549
  };
8377
8550
  var _emscripten_glWaitSync = _glWaitSync;
8378
8551
  var getHeapMax = () => 2147483648;
8379
- var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
8380
8552
  var growMemory = (size) => {
8381
8553
  var b = wasmMemory.buffer;
8382
8554
  var pages = (size - b.byteLength + 65535) / 65536 | 0;
@@ -8525,8 +8697,23 @@
8525
8697
  FS.staticInit();
8526
8698
  MEMFS.doesNotExistError = new FS.ErrnoError(44);
8527
8699
  MEMFS.doesNotExistError.stack = "<generic error, no stack>";
8700
+ InternalError = Module["InternalError"] = class InternalError extends Error {
8701
+ constructor(message) {
8702
+ super(message);
8703
+ this.name = "InternalError";
8704
+ }
8705
+ };
8706
+ embind_init_charCodes();
8707
+ BindingError = Module["BindingError"] = class BindingError extends Error {
8708
+ constructor(message) {
8709
+ super(message);
8710
+ this.name = "BindingError";
8711
+ }
8712
+ };
8528
8713
  init_ClassHandle();
8529
8714
  init_RegisteredPointer();
8715
+ UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
8716
+ init_emval();
8530
8717
  var miniTempWebGLFloatBuffersStorage = new Float32Array(288);
8531
8718
  for (var i = 0; i <= 288; ++i) {
8532
8719
  miniTempWebGLFloatBuffers[i] = miniTempWebGLFloatBuffersStorage.subarray(0, i);
@@ -8535,110 +8722,92 @@
8535
8722
  for (var i = 0; i <= 288; ++i) {
8536
8723
  miniTempWebGLIntBuffers[i] = miniTempWebGLIntBuffersStorage.subarray(0, i);
8537
8724
  }
8538
- {
8539
- if (Module["noExitRuntime"])
8540
- noExitRuntime = Module["noExitRuntime"];
8541
- if (Module["preloadPlugins"])
8542
- preloadPlugins = Module["preloadPlugins"];
8543
- if (Module["print"])
8544
- out = Module["print"];
8545
- if (Module["printErr"])
8546
- err = Module["printErr"];
8547
- if (Module["wasmBinary"])
8548
- wasmBinary = Module["wasmBinary"];
8549
- if (Module["arguments"])
8550
- Module["arguments"];
8551
- if (Module["thisProgram"])
8552
- Module["thisProgram"];
8553
- }
8725
+ 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 };
8726
+ var wasmExports = await createWasm();
8727
+ wasmExports["ic"];
8728
+ var ___getTypeName = wasmExports["jc"];
8729
+ var _malloc = wasmExports["lc"];
8730
+ var _free = wasmExports["mc"];
8731
+ Module["dynCall_ii"] = wasmExports["nc"];
8732
+ Module["dynCall_vi"] = wasmExports["oc"];
8733
+ Module["dynCall_ji"] = wasmExports["pc"];
8734
+ Module["dynCall_iii"] = wasmExports["qc"];
8735
+ Module["dynCall_vii"] = wasmExports["rc"];
8736
+ Module["dynCall_v"] = wasmExports["sc"];
8737
+ Module["dynCall_viij"] = wasmExports["tc"];
8738
+ Module["dynCall_fij"] = wasmExports["uc"];
8739
+ Module["dynCall_iij"] = wasmExports["vc"];
8740
+ Module["dynCall_viiij"] = wasmExports["wc"];
8741
+ Module["dynCall_viii"] = wasmExports["xc"];
8742
+ Module["dynCall_fif"] = wasmExports["yc"];
8743
+ Module["dynCall_viiii"] = wasmExports["zc"];
8744
+ Module["dynCall_fii"] = wasmExports["Ac"];
8745
+ Module["dynCall_iiii"] = wasmExports["Bc"];
8746
+ Module["dynCall_jii"] = wasmExports["Cc"];
8747
+ Module["dynCall_jij"] = wasmExports["Dc"];
8748
+ Module["dynCall_vij"] = wasmExports["Ec"];
8749
+ Module["dynCall_iiiiii"] = wasmExports["Fc"];
8750
+ Module["dynCall_viiiii"] = wasmExports["Gc"];
8751
+ Module["dynCall_iiiff"] = wasmExports["Hc"];
8752
+ Module["dynCall_vijii"] = wasmExports["Ic"];
8753
+ Module["dynCall_iiifi"] = wasmExports["Jc"];
8754
+ Module["dynCall_fi"] = wasmExports["Kc"];
8755
+ Module["dynCall_jijf"] = wasmExports["Lc"];
8756
+ Module["dynCall_fiii"] = wasmExports["Mc"];
8757
+ Module["dynCall_viiiji"] = wasmExports["Nc"];
8758
+ Module["dynCall_iijj"] = wasmExports["Oc"];
8759
+ Module["dynCall_iiiij"] = wasmExports["Pc"];
8760
+ Module["dynCall_diiii"] = wasmExports["Qc"];
8761
+ Module["dynCall_i"] = wasmExports["Rc"];
8762
+ Module["dynCall_vif"] = wasmExports["Sc"];
8763
+ Module["dynCall_di"] = wasmExports["Tc"];
8764
+ Module["dynCall_vid"] = wasmExports["Uc"];
8765
+ Module["dynCall_iiiiiii"] = wasmExports["Vc"];
8766
+ Module["dynCall_viiiiii"] = wasmExports["Wc"];
8767
+ Module["dynCall_iiiii"] = wasmExports["Xc"];
8768
+ Module["dynCall_iiiifii"] = wasmExports["Yc"];
8769
+ Module["dynCall_viiifii"] = wasmExports["Zc"];
8770
+ Module["dynCall_viiff"] = wasmExports["_c"];
8771
+ Module["dynCall_iiiiiiii"] = wasmExports["$c"];
8772
+ Module["dynCall_viiiiiii"] = wasmExports["ad"];
8773
+ Module["dynCall_iiiffi"] = wasmExports["bd"];
8774
+ Module["dynCall_iifffffffff"] = wasmExports["cd"];
8775
+ Module["dynCall_vifffffffff"] = wasmExports["dd"];
8776
+ Module["dynCall_iiff"] = wasmExports["ed"];
8777
+ Module["dynCall_viff"] = wasmExports["fd"];
8778
+ Module["dynCall_iif"] = wasmExports["gd"];
8779
+ Module["dynCall_viif"] = wasmExports["hd"];
8780
+ Module["dynCall_viffffff"] = wasmExports["id"];
8781
+ Module["dynCall_viffff"] = wasmExports["jd"];
8782
+ Module["dynCall_vifff"] = wasmExports["kd"];
8783
+ Module["dynCall_dii"] = wasmExports["ld"];
8784
+ Module["dynCall_viid"] = wasmExports["md"];
8785
+ Module["dynCall_iiiiffi"] = wasmExports["nd"];
8786
+ Module["dynCall_viiif"] = wasmExports["od"];
8787
+ Module["dynCall_viifffffffff"] = wasmExports["pd"];
8788
+ Module["dynCall_viiffffff"] = wasmExports["qd"];
8789
+ Module["dynCall_viiffff"] = wasmExports["rd"];
8790
+ Module["dynCall_viifff"] = wasmExports["sd"];
8791
+ Module["dynCall_viifi"] = wasmExports["td"];
8792
+ Module["dynCall_viddi"] = wasmExports["ud"];
8793
+ Module["dynCall_vifii"] = wasmExports["vd"];
8794
+ Module["dynCall_viifd"] = wasmExports["wd"];
8795
+ Module["dynCall_iiffi"] = wasmExports["xd"];
8796
+ Module["dynCall_viiiiiffii"] = wasmExports["yd"];
8797
+ Module["dynCall_iifii"] = wasmExports["zd"];
8798
+ Module["dynCall_vffff"] = wasmExports["Ad"];
8799
+ Module["dynCall_viiiiiiii"] = wasmExports["Bd"];
8800
+ Module["dynCall_vf"] = wasmExports["Cd"];
8801
+ Module["dynCall_viiiiiiiii"] = wasmExports["Dd"];
8802
+ Module["dynCall_viiiiiiiiii"] = wasmExports["Ed"];
8803
+ Module["dynCall_jiji"] = wasmExports["Fd"];
8804
+ Module["dynCall_iidiiii"] = wasmExports["Gd"];
8805
+ var _asyncify_start_unwind = wasmExports["Hd"];
8806
+ var _asyncify_stop_unwind = wasmExports["Id"];
8807
+ var _asyncify_start_rewind = wasmExports["Jd"];
8808
+ var _asyncify_stop_rewind = wasmExports["Kd"];
8554
8809
  Module["GL"] = GL;
8555
8810
  Module["Asyncify"] = Asyncify;
8556
- var ___getTypeName, _malloc, _free, _asyncify_start_unwind, _asyncify_stop_unwind, _asyncify_start_rewind, _asyncify_stop_rewind;
8557
- function assignWasmExports(wasmExports2) {
8558
- ___getTypeName = wasmExports2["jc"];
8559
- _malloc = wasmExports2["kc"];
8560
- _free = wasmExports2["lc"];
8561
- dynCalls["ii"] = wasmExports2["mc"];
8562
- dynCalls["vi"] = wasmExports2["nc"];
8563
- dynCalls["ji"] = wasmExports2["oc"];
8564
- dynCalls["iii"] = wasmExports2["pc"];
8565
- dynCalls["vii"] = wasmExports2["qc"];
8566
- dynCalls["v"] = wasmExports2["rc"];
8567
- dynCalls["viij"] = wasmExports2["sc"];
8568
- dynCalls["fij"] = wasmExports2["tc"];
8569
- dynCalls["iij"] = wasmExports2["uc"];
8570
- dynCalls["viiij"] = wasmExports2["vc"];
8571
- dynCalls["viii"] = wasmExports2["wc"];
8572
- dynCalls["fif"] = wasmExports2["xc"];
8573
- dynCalls["viiii"] = wasmExports2["yc"];
8574
- dynCalls["fii"] = wasmExports2["zc"];
8575
- dynCalls["iiii"] = wasmExports2["Ac"];
8576
- dynCalls["jii"] = wasmExports2["Bc"];
8577
- dynCalls["jij"] = wasmExports2["Cc"];
8578
- dynCalls["vij"] = wasmExports2["Dc"];
8579
- dynCalls["vijiii"] = wasmExports2["Ec"];
8580
- dynCalls["viiiii"] = wasmExports2["Fc"];
8581
- dynCalls["iiiff"] = wasmExports2["Gc"];
8582
- dynCalls["iiifi"] = wasmExports2["Hc"];
8583
- dynCalls["fi"] = wasmExports2["Ic"];
8584
- dynCalls["jijf"] = wasmExports2["Jc"];
8585
- dynCalls["fiii"] = wasmExports2["Kc"];
8586
- dynCalls["viiiji"] = wasmExports2["Lc"];
8587
- dynCalls["iijj"] = wasmExports2["Mc"];
8588
- dynCalls["iiiiii"] = wasmExports2["Nc"];
8589
- dynCalls["iiiij"] = wasmExports2["Oc"];
8590
- dynCalls["diiii"] = wasmExports2["Pc"];
8591
- dynCalls["i"] = wasmExports2["Qc"];
8592
- dynCalls["vif"] = wasmExports2["Rc"];
8593
- dynCalls["di"] = wasmExports2["Sc"];
8594
- dynCalls["vid"] = wasmExports2["Tc"];
8595
- dynCalls["iiiiiii"] = wasmExports2["Uc"];
8596
- dynCalls["viiiiii"] = wasmExports2["Vc"];
8597
- dynCalls["iiiii"] = wasmExports2["Wc"];
8598
- dynCalls["iiiifii"] = wasmExports2["Xc"];
8599
- dynCalls["viiifii"] = wasmExports2["Yc"];
8600
- dynCalls["viiff"] = wasmExports2["Zc"];
8601
- dynCalls["iiiiiiii"] = wasmExports2["_c"];
8602
- dynCalls["viiiiiii"] = wasmExports2["$c"];
8603
- dynCalls["iiiffi"] = wasmExports2["ad"];
8604
- dynCalls["iifffffffff"] = wasmExports2["bd"];
8605
- dynCalls["vifffffffff"] = wasmExports2["cd"];
8606
- dynCalls["iiff"] = wasmExports2["dd"];
8607
- dynCalls["viff"] = wasmExports2["ed"];
8608
- dynCalls["iif"] = wasmExports2["fd"];
8609
- dynCalls["viif"] = wasmExports2["gd"];
8610
- dynCalls["viffffff"] = wasmExports2["hd"];
8611
- dynCalls["viffff"] = wasmExports2["id"];
8612
- dynCalls["vifff"] = wasmExports2["jd"];
8613
- dynCalls["dii"] = wasmExports2["kd"];
8614
- dynCalls["viid"] = wasmExports2["ld"];
8615
- dynCalls["iiiiffi"] = wasmExports2["md"];
8616
- dynCalls["viiif"] = wasmExports2["nd"];
8617
- dynCalls["viifffffffff"] = wasmExports2["od"];
8618
- dynCalls["viiffffff"] = wasmExports2["pd"];
8619
- dynCalls["viiffff"] = wasmExports2["qd"];
8620
- dynCalls["viifff"] = wasmExports2["rd"];
8621
- dynCalls["viifi"] = wasmExports2["sd"];
8622
- dynCalls["viddi"] = wasmExports2["td"];
8623
- dynCalls["vifii"] = wasmExports2["ud"];
8624
- dynCalls["viifd"] = wasmExports2["vd"];
8625
- dynCalls["iiffi"] = wasmExports2["wd"];
8626
- dynCalls["viiiiiffii"] = wasmExports2["xd"];
8627
- dynCalls["iifii"] = wasmExports2["yd"];
8628
- dynCalls["vffff"] = wasmExports2["zd"];
8629
- dynCalls["viiiiiiii"] = wasmExports2["Ad"];
8630
- dynCalls["vf"] = wasmExports2["Bd"];
8631
- dynCalls["viiiiiiiii"] = wasmExports2["Cd"];
8632
- dynCalls["viiiiiiiiii"] = wasmExports2["Dd"];
8633
- dynCalls["jiji"] = wasmExports2["Ed"];
8634
- dynCalls["iidiiii"] = wasmExports2["Fd"];
8635
- _asyncify_start_unwind = wasmExports2["Gd"];
8636
- _asyncify_stop_unwind = wasmExports2["Hd"];
8637
- _asyncify_start_rewind = wasmExports2["Id"];
8638
- _asyncify_stop_rewind = wasmExports2["Jd"];
8639
- }
8640
- 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 };
8641
- var wasmExports = await createWasm();
8642
8811
  function run() {
8643
8812
  if (runDependencies > 0) {
8644
8813
  dependenciesFulfilled = run;
@@ -8654,7 +8823,7 @@
8654
8823
  if (ABORT)
8655
8824
  return;
8656
8825
  initRuntime();
8657
- readyPromiseResolve?.(Module);
8826
+ readyPromiseResolve(Module);
8658
8827
  Module["onRuntimeInitialized"]?.();
8659
8828
  postRun();
8660
8829
  }
@@ -8668,25 +8837,15 @@
8668
8837
  doRun();
8669
8838
  }
8670
8839
  }
8671
- function preInit() {
8672
- if (Module["preInit"]) {
8673
- if (typeof Module["preInit"] == "function")
8674
- Module["preInit"] = [Module["preInit"]];
8675
- while (Module["preInit"].length > 0) {
8676
- Module["preInit"].shift()();
8677
- }
8840
+ if (Module["preInit"]) {
8841
+ if (typeof Module["preInit"] == "function")
8842
+ Module["preInit"] = [Module["preInit"]];
8843
+ while (Module["preInit"].length > 0) {
8844
+ Module["preInit"].pop()();
8678
8845
  }
8679
8846
  }
8680
- preInit();
8681
8847
  run();
8682
- if (runtimeInitialized) {
8683
- moduleRtn = Module;
8684
- } else {
8685
- moduleRtn = new Promise((resolve, reject) => {
8686
- readyPromiseResolve = resolve;
8687
- readyPromiseReject = reject;
8688
- });
8689
- }
8848
+ moduleRtn = readyPromise;
8690
8849
  return moduleRtn;
8691
8850
  };
8692
8851
  })();
@@ -8876,7 +9035,7 @@
8876
9035
  };
8877
9036
  };
8878
9037
 
8879
- const PAGInit = (moduleOption = {}) => Hello2D(moduleOption).then((module) => {
9038
+ const PAGInit = (moduleOption = {}) => PAGInit$1(moduleOption).then((module) => {
8880
9039
  PAGBind(module);
8881
9040
  module.webAssemblyQueue = new WebAssemblyQueue();
8882
9041
  module.globalCanvas = new module.GlobalCanvas();