@mediapipe/tasks-text 1.0.1 → 1.1.0-rc.20260918

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.
@@ -193,8 +193,6 @@ var EXITSTATUS;
193
193
  */ var isFileURI = filename => filename.startsWith("file://");
194
194
 
195
195
  // include: runtime_common.js
196
- // include: runtime_stack_check.js
197
- // end include: runtime_stack_check.js
198
196
  // include: runtime_exceptions.js
199
197
  // Base Emscripten EH error class
200
198
  class EmscriptenEH {}
@@ -207,8 +205,17 @@ class EmscriptenSjLj extends EmscriptenEH {}
207
205
  // Memory management
208
206
  var runtimeInitialized = false;
209
207
 
208
+ // When ALLOW_MEMORY_GROWTH is enabled, the conversion from Wasm
209
+ // memory to ArrayBuffer requires some additional logic.
210
+ function getMemoryBuffer() {
211
+ return wasmMemory.buffer;
212
+ }
213
+
210
214
  function updateMemoryViews() {
211
- var b = wasmMemory.buffer;
215
+ // If we already have a heap that is resizeable/growable buffer we don't
216
+ // need to do anything in updateMemoryViews.
217
+ if (HEAP8?.buffer?.resizable) return;
218
+ var b = getMemoryBuffer();
212
219
  HEAP8 = new Int8Array(b);
213
220
  HEAP16 = new Int16Array(b);
214
221
  Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
@@ -223,11 +230,10 @@ function updateMemoryViews() {
223
230
  // end include: memoryprofiler.js
224
231
  // end include: runtime_common.js
225
232
  function preRun() {
226
- if (Module["preRun"]) {
227
- if (typeof Module["preRun"] == "function") Module["preRun"] = [ Module["preRun"] ];
228
- while (Module["preRun"].length) {
229
- addOnPreRun(Module["preRun"].shift());
230
- }
233
+ var preRun = Module["preRun"];
234
+ if (preRun) {
235
+ if (typeof preRun == "function") preRun = [ preRun ];
236
+ onPreRuns.push(...preRun);
231
237
  }
232
238
  // Begin ATPRERUNS hooks
233
239
  callRuntimeCallbacks(onPreRuns);
@@ -245,12 +251,10 @@ function initRuntime() {
245
251
  }
246
252
 
247
253
  function postRun() {
248
- // PThreads reuse the runtime from the main thread.
249
- if (Module["postRun"]) {
250
- if (typeof Module["postRun"] == "function") Module["postRun"] = [ Module["postRun"] ];
251
- while (Module["postRun"].length) {
252
- addOnPostRun(Module["postRun"].shift());
253
- }
254
+ var postRun = Module["postRun"];
255
+ if (postRun) {
256
+ if (typeof postRun == "function") postRun = [ postRun ];
257
+ onPostRuns.push(...postRun);
254
258
  }
255
259
  // Begin ATPOSTRUNS hooks
256
260
  callRuntimeCallbacks(onPostRuns);
@@ -292,9 +296,6 @@ function findWasmBinary() {
292
296
  }
293
297
 
294
298
  function getBinarySync(file) {
295
- if (file == wasmBinaryFile && wasmBinary) {
296
- return new Uint8Array(wasmBinary);
297
- }
298
299
  if (readBinary) {
299
300
  return readBinary(file);
300
301
  }
@@ -359,7 +360,7 @@ async function createWasm() {
359
360
  // Load the wasm module and create an instance of using native support in the JS engine.
360
361
  // handle a generated wasm instance, receiving its exports and
361
362
  // performing other necessary setup
362
- /** @param {WebAssembly.Module=} module*/ function receiveInstance(instance, module) {
363
+ function receiveInstance(instance) {
363
364
  wasmExports = instance.exports;
364
365
  assignWasmExports(wasmExports);
365
366
  updateMemoryViews();
@@ -380,11 +381,10 @@ async function createWasm() {
380
381
  // performing.
381
382
  // Also pthreads and wasm workers initialize the wasm instance through this
382
383
  // path.
383
- if (Module["instantiateWasm"]) {
384
- return new Promise((resolve, reject) => {
385
- Module["instantiateWasm"](info, (inst, mod) => {
386
- resolve(receiveInstance(inst, mod));
387
- });
384
+ var instantiateWasm = Module["instantiateWasm"];
385
+ if (instantiateWasm) {
386
+ return new Promise(resolve => {
387
+ instantiateWasm(info, inst => resolve(receiveInstance(inst)));
388
388
  });
389
389
  }
390
390
  wasmBinaryFile ??= findWasmBinary();
@@ -464,7 +464,7 @@ var callUserCallback = func => {
464
464
  };
465
465
 
466
466
  function getFullscreenElement() {
467
- return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.webkitCurrentFullScreenElement || document.msFullscreenElement;
467
+ return document.fullscreenElement ?? document.webkitFullscreenElement;
468
468
  }
469
469
 
470
470
  /** @param {number=} timeout */ var safeSetTimeout = (func, timeout) => setTimeout(() => {
@@ -482,12 +482,15 @@ var warnOnce = text => {
482
482
 
483
483
  var preloadPlugins = [];
484
484
 
485
+ /** @type {!Int32Array} */ var HEAP32;
486
+
487
+ /** @type {!Uint32Array} */ var HEAPU32;
488
+
485
489
  var Browser = {
486
490
  useWebGL: false,
487
491
  isFullscreen: false,
488
492
  pointerLock: false,
489
493
  moduleContextCreatedCallbacks: [],
490
- workers: [],
491
494
  preloadedImages: {},
492
495
  preloadedAudios: {},
493
496
  getCanvas: () => Module["canvas"],
@@ -554,7 +557,7 @@ var Browser = {
554
557
  var url = URL.createObjectURL(b);
555
558
  // XXX we never revoke this!
556
559
  var audio = new Audio;
557
- audio.addEventListener("canplaythrough", () => finish(audio), false);
560
+ audio.addEventListener("canplaythrough", () => finish(audio));
558
561
  // use addEventListener due to chromium bug 124926
559
562
  audio.onerror = event => {
560
563
  if (done) return;
@@ -602,14 +605,14 @@ var Browser = {
602
605
  if (canvas) {
603
606
  // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module
604
607
  // Module['forcedAspectRatio'] = 4 / 3;
605
- document.addEventListener("pointerlockchange", pointerLockChange, false);
608
+ document.addEventListener("pointerlockchange", pointerLockChange);
606
609
  if (Module["elementPointerLock"]) {
607
610
  canvas.addEventListener("click", ev => {
608
611
  if (!Browser.pointerLock && Browser.getCanvas().requestPointerLock) {
609
612
  Browser.getCanvas().requestPointerLock();
610
613
  ev.preventDefault();
611
614
  }
612
- }, false);
615
+ });
613
616
  }
614
617
  }
615
618
  },
@@ -683,32 +686,30 @@ var Browser = {
683
686
  Browser.updateCanvasDimensions(canvas);
684
687
  }
685
688
  }
686
- Module["onFullScreen"]?.(Browser.isFullscreen);
687
- Module["onFullscreen"]?.(Browser.isFullscreen);
688
689
  }
689
690
  if (!Browser.fullscreenHandlersInstalled) {
690
691
  Browser.fullscreenHandlersInstalled = true;
691
- document.addEventListener("fullscreenchange", fullscreenChange, false);
692
- document.addEventListener("mozfullscreenchange", fullscreenChange, false);
693
- document.addEventListener("webkitfullscreenchange", fullscreenChange, false);
694
- document.addEventListener("MSFullscreenChange", fullscreenChange, false);
692
+ document.addEventListener("fullscreenchange", fullscreenChange);
693
+ document.addEventListener("webkitfullscreenchange", fullscreenChange);
695
694
  }
696
695
  // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root
697
696
  var canvasContainer = document.createElement("div");
698
697
  canvas.parentNode.insertBefore(canvasContainer, canvas);
699
698
  canvasContainer.appendChild(canvas);
700
699
  // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size)
701
- canvasContainer.requestFullscreen = canvasContainer["requestFullscreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullscreen"] ? () => canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]) : null) || (canvasContainer["webkitRequestFullScreen"] ? () => canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]) : null);
700
+ // Safari didn't support Element.requestFullscreen until 16.4
701
+ // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen
702
+ /** @suppress {checkTypes} */ canvasContainer.requestFullscreen ??= (canvasContainer["webkitRequestFullscreen"] ? () => canvasContainer["webkitRequestFullscreen"](Element.ALLOW_KEYBOARD_INPUT) : null) ?? (canvasContainer["webkitRequestFullScreen"] ? () => canvasContainer["webkitRequestFullScreen"](Element.ALLOW_KEYBOARD_INPUT) : null);
702
703
  canvasContainer.requestFullscreen();
703
704
  },
704
705
  exitFullscreen() {
705
706
  // This is workaround for chrome. Trying to exit from fullscreen
706
- // not in fullscreen state will cause "TypeError: Document not active"
707
+ // not in fullscreen state will cause 'TypeError: Document not active'
707
708
  // in chrome. See https://github.com/emscripten-core/emscripten/pull/8236
708
709
  if (!Browser.isFullscreen) {
709
710
  return false;
710
711
  }
711
- var CFS = document["exitFullscreen"] || document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["msExitFullscreen"] || document["webkitCancelFullScreen"] || (() => {});
712
+ var CFS = document.exitFullscreen ?? document["webkitCancelFullScreen"];
712
713
  CFS.apply(document, []);
713
714
  return true;
714
715
  },
@@ -730,14 +731,7 @@ var Browser = {
730
731
  }[name.slice(name.lastIndexOf(".") + 1)];
731
732
  },
732
733
  getUserMedia(func) {
733
- window.getUserMedia ||= navigator["getUserMedia"] || navigator["mozGetUserMedia"];
734
- window.getUserMedia(func);
735
- },
736
- getMovementX(event) {
737
- return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0;
738
- },
739
- getMovementY(event) {
740
- return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0;
734
+ return navigator.mediaDevices.getUserMedia(func);
741
735
  },
742
736
  getMouseWheelDelta(event) {
743
737
  var delta = 0;
@@ -815,13 +809,8 @@ var Browser = {
815
809
  if (Browser.pointerLock) {
816
810
  // When the pointer is locked, calculate the coordinates
817
811
  // based on the movement of the mouse.
818
- // Workaround for Firefox bug 764498
819
- if (event.type != "mousemove" && ("mozMovementX" in event)) {
820
- Browser.mouseMovementX = Browser.mouseMovementY = 0;
821
- } else {
822
- Browser.mouseMovementX = Browser.getMovementX(event);
823
- Browser.mouseMovementY = Browser.getMovementY(event);
824
- }
812
+ Browser.mouseMovementX = event.movementX;
813
+ Browser.mouseMovementY = event.movementY;
825
814
  // add the mouse delta to the current absolute mouse position
826
815
  Browser.mouseX += Browser.mouseMovementX;
827
816
  Browser.mouseY += Browser.mouseMovementY;
@@ -890,13 +879,6 @@ var Browser = {
890
879
  }
891
880
  var w = wNative;
892
881
  var h = hNative;
893
- if (Module["forcedAspectRatio"] > 0) {
894
- if (w / h < Module["forcedAspectRatio"]) {
895
- w = Math.round(h * Module["forcedAspectRatio"]);
896
- } else {
897
- h = Math.round(w / Module["forcedAspectRatio"]);
898
- }
899
- }
900
882
  if ((getFullscreenElement() === canvas.parentNode) && (typeof screen != "undefined")) {
901
883
  var factor = Math.min(screen.width / w, screen.height / h);
902
884
  w = Math.round(w * factor);
@@ -925,22 +907,8 @@ var Browser = {
925
907
  }
926
908
  };
927
909
 
928
- /** @type {!Int16Array} */ var HEAP16;
929
-
930
- /** @type {!Int32Array} */ var HEAP32;
931
-
932
910
  /** @type {!Int8Array} */ var HEAP8;
933
911
 
934
- /** @type {!Float32Array} */ var HEAPF32;
935
-
936
- /** @type {!Float64Array} */ var HEAPF64;
937
-
938
- /** @type {!Uint16Array} */ var HEAPU16;
939
-
940
- /** @type {!Uint32Array} */ var HEAPU32;
941
-
942
- /** @type {!Uint8Array} */ var HEAPU8;
943
-
944
912
  var callRuntimeCallbacks = callbacks => {
945
913
  while (callbacks.length > 0) {
946
914
  // Pass the module as the first argument.
@@ -950,12 +918,8 @@ var callRuntimeCallbacks = callbacks => {
950
918
 
951
919
  var onPostRuns = [];
952
920
 
953
- var addOnPostRun = cb => onPostRuns.push(cb);
954
-
955
921
  var onPreRuns = [];
956
922
 
957
- var addOnPreRun = cb => onPreRuns.push(cb);
958
-
959
923
  var noExitRuntime = true;
960
924
 
961
925
  var stackRestore = val => __emscripten_stack_restore(val);
@@ -1024,7 +988,7 @@ var initRandomFill = () => {
1024
988
  // This block is not needed on v19+ since crypto.getRandomValues is builtin
1025
989
  if (ENVIRONMENT_IS_NODE) {
1026
990
  var nodeCrypto = require("node:crypto");
1027
- return view => nodeCrypto.randomFillSync(view);
991
+ return view => (nodeCrypto.randomFillSync(view), 0);
1028
992
  }
1029
993
  return view => (crypto.getRandomValues(view), 0);
1030
994
  };
@@ -1086,7 +1050,13 @@ var PATH_FS = {
1086
1050
 
1087
1051
  var UTF8Decoder = new TextDecoder;
1088
1052
 
1089
- var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
1053
+ /**
1054
+ * heapOrArray is either a regular array, or a JavaScript typed array view.
1055
+ * @param {number} idx
1056
+ * @param {number=} maxBytesToRead
1057
+ * @param {boolean=} ignoreNul
1058
+ * @return {number}
1059
+ */ var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
1090
1060
  var maxIdx = idx + maxBytesToRead;
1091
1061
  if (ignoreNul) return maxIdx;
1092
1062
  // TextDecoder needs to know the byte length in advance, it doesn't stop on
@@ -1349,6 +1319,8 @@ var TTY = {
1349
1319
  }
1350
1320
  };
1351
1321
 
1322
+ /** @type {!Uint8Array} */ var HEAPU8;
1323
+
1352
1324
  var zeroMemory = (ptr, size) => HEAPU8.fill(0, ptr, ptr + size);
1353
1325
 
1354
1326
  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
@@ -1710,23 +1682,26 @@ var FS_createDataFile = (...args) => FS.createDataFile(...args);
1710
1682
 
1711
1683
  var getUniqueRunDependency = id => id;
1712
1684
 
1685
+ var dependenciesPromise = null;
1686
+
1687
+ var resolveRunDependencies = async () => dependenciesPromise;
1688
+
1713
1689
  var runDependencies = 0;
1714
1690
 
1715
- var dependenciesFulfilled = null;
1691
+ var dependenciesPromiseResolve = null;
1716
1692
 
1717
1693
  var removeRunDependency = id => {
1718
1694
  runDependencies--;
1719
1695
  Module["monitorRunDependencies"]?.(runDependencies);
1720
- if (runDependencies == 0) {
1721
- if (dependenciesFulfilled) {
1722
- var callback = dependenciesFulfilled;
1723
- dependenciesFulfilled = null;
1724
- callback();
1725
- }
1696
+ if (!runDependencies) {
1697
+ dependenciesPromiseResolve();
1726
1698
  }
1727
1699
  };
1728
1700
 
1729
1701
  var addRunDependency = id => {
1702
+ if (!runDependencies) {
1703
+ dependenciesPromise = new Promise(resolve => dependenciesPromiseResolve = resolve);
1704
+ }
1730
1705
  runDependencies++;
1731
1706
  Module["monitorRunDependencies"]?.(runDependencies);
1732
1707
  };
@@ -1860,6 +1835,53 @@ var FS = {
1860
1835
  get isDevice() {
1861
1836
  return FS.isChrdev(this.mode);
1862
1837
  }
1838
+ // The per-inode readiness wait-queue. The node carries a Set of listener
1839
+ // entries {cb}; producers (SOCKFS, PIPEFS) call notifyListeners on a
1840
+ // readiness transition, and poll()/epoll consume it. It lives on the node
1841
+ // (not the fd) so dup'd fds share one queue. Only nodes that derive real
1842
+ // readiness (sockets, pipes, and an epoll's own node) ever use this -
1843
+ // always-ready types (regular files, ttys) never register or notify.
1844
+ addListener(cb, exclusive = false) {
1845
+ var entry = {
1846
+ cb,
1847
+ exclusive
1848
+ };
1849
+ var listeners = (this.listeners ??= new Set);
1850
+ listeners.add(entry);
1851
+ return {
1852
+ listeners,
1853
+ entry
1854
+ };
1855
+ }
1856
+ notifyListeners(flags) {
1857
+ // Iterates the set without copying, which is safe ONLY under a
1858
+ // load-bearing contract that every internal listener must honour:
1859
+ // 1. A listener must not run user code synchronously (a poll waiter only
1860
+ // resolves a Promise; an epoll registration only re-lists +
1861
+ // re-notifies; the epoll callback only schedules a tick). User code
1862
+ // runs on a later tick, never inside this loop.
1863
+ // 2. A listener may delete entries only from ITS OWN waiter, never from
1864
+ // a sibling node's set that may be mid-iteration. (Deleting an entry
1865
+ // of the set being iterated here is fine - a Set tolerates removal of
1866
+ // a not-yet-visited entry mid-iteration; mutating a *different* node's
1867
+ // set is fine because that set is not being iterated.)
1868
+ // Violating either gives silently skipped wakeups that are near-impossible
1869
+ // to reproduce. Any new producer/listener must preserve it.
1870
+ if (!this.listeners) return;
1871
+ // Fire every non-exclusive listener. Among EPOLLEXCLUSIVE registrations
1872
+ // (one fd watched by several epolls) wake only one, rotating round-robin
1873
+ // per node, to avoid a thundering herd. (Only epoll registrations are ever
1874
+ // exclusive; poll waiters and a node's own consumers are not.)
1875
+ var excl;
1876
+ for (var entry of this.listeners) {
1877
+ if (entry.exclusive) (excl ||= []).push(entry); else entry.cb(flags);
1878
+ }
1879
+ if (excl) {
1880
+ var i = (this.exclTurn || 0) % excl.length;
1881
+ this.exclTurn = i + 1;
1882
+ excl[i].cb(flags);
1883
+ }
1884
+ }
1863
1885
  },
1864
1886
  lookupPath(path, opts = {}) {
1865
1887
  if (!path) {
@@ -2405,6 +2427,27 @@ var FS = {
2405
2427
  }
2406
2428
  return parent.node_ops.symlink(parent, newname, oldpath);
2407
2429
  },
2430
+ link(oldpath, newpath, flags) {
2431
+ var lookup = FS.lookupPath(newpath, {
2432
+ parent: true
2433
+ });
2434
+ var parent = lookup.node;
2435
+ if (!parent) {
2436
+ throw new FS.ErrnoError(44);
2437
+ }
2438
+ var newname = PATH.basename(newpath);
2439
+ var errCode = FS.mayCreate(parent, newname);
2440
+ if (errCode) {
2441
+ throw new FS.ErrnoError(errCode);
2442
+ }
2443
+ // Hardlinks are only supported by filesystem backends that provide a
2444
+ // `link` node op (e.g. NODERAWFS backed by the host). NODEFS omits it:
2445
+ // a host hardlink cannot be confined to the mount root.
2446
+ if (!parent.node_ops.link) {
2447
+ throw new FS.ErrnoError(34);
2448
+ }
2449
+ return parent.node_ops.link(parent, newname, oldpath, flags);
2450
+ },
2408
2451
  rename(old_path, new_path) {
2409
2452
  var old_dirname = PATH.dirname(old_path);
2410
2453
  var new_dirname = PATH.dirname(new_path);
@@ -2662,15 +2705,14 @@ var FS = {
2662
2705
  }
2663
2706
  FS.doTruncate(stream, stream.node, len);
2664
2707
  },
2665
- utime(path, atime, mtime) {
2708
+ utime(path, atime, mtime, dontFollow) {
2666
2709
  var lookup = FS.lookupPath(path, {
2667
- follow: true
2710
+ follow: !dontFollow
2668
2711
  });
2669
- var node = lookup.node;
2670
- var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
2671
- setattr(node, {
2712
+ FS.doSetAttr(null, lookup.node, {
2672
2713
  atime,
2673
- mtime
2714
+ mtime,
2715
+ dontFollow
2674
2716
  });
2675
2717
  },
2676
2718
  open(path, flags, mode = 438) {
@@ -2772,6 +2814,11 @@ var FS = {
2772
2814
  }
2773
2815
  if (stream.getdents) stream.getdents = null;
2774
2816
  // free readdir state
2817
+ // The fd is going away: wake anything waiting on it (poll/epoll) with
2818
+ // POLLNVAL so a blocking wait unblocks and an epoll registration is evicted
2819
+ // on its next derive. Only sockets/pipes/epoll ever carry a wait-queue, so
2820
+ // for every other stream (incl. nodeless noderawfs stdio) this is a no-op.
2821
+ stream.node?.notifyListeners(32);
2775
2822
  try {
2776
2823
  if (stream.stream_ops.close) {
2777
2824
  stream.stream_ops.close(stream);
@@ -3239,7 +3286,7 @@ var FS = {
3239
3286
  var xhr = new XMLHttpRequest;
3240
3287
  xhr.open("HEAD", url, false);
3241
3288
  xhr.send(null);
3242
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status);
3289
+ if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`);
3243
3290
  var datalength = Number(xhr.getResponseHeader("Content-length"));
3244
3291
  var header;
3245
3292
  var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
@@ -3254,14 +3301,14 @@ var FS = {
3254
3301
  // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
3255
3302
  var xhr = new XMLHttpRequest;
3256
3303
  xhr.open("GET", url, false);
3257
- if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
3304
+ if (datalength !== chunkSize) xhr.setRequestHeader("Range", `bytes=${from}-${to}`);
3258
3305
  // Some hints to the browser that we want binary data.
3259
3306
  xhr.responseType = "arraybuffer";
3260
3307
  if (xhr.overrideMimeType) {
3261
3308
  xhr.overrideMimeType("text/plain; charset=x-user-defined");
3262
3309
  }
3263
3310
  xhr.send(null);
3264
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status);
3311
+ if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`);
3265
3312
  if (xhr.response !== undefined) {
3266
3313
  return new Uint8Array(/** @type{Array<number>} */ (xhr.response || []));
3267
3314
  }
@@ -3480,7 +3527,7 @@ var SYSCALLS = {
3480
3527
  // MAP_PRIVATE calls need not to be synced back to underlying fs
3481
3528
  return 0;
3482
3529
  }
3483
- var buffer = HEAPU8.slice(addr, addr + len);
3530
+ var buffer = HEAPU8.subarray(addr, addr + len);
3484
3531
  FS.msync(stream, buffer, offset, len, flags);
3485
3532
  },
3486
3533
  getStreamFromFD(fd) {
@@ -3542,6 +3589,8 @@ var syscallGetVarargI = () => {
3542
3589
 
3543
3590
  var syscallGetVarargP = syscallGetVarargI;
3544
3591
 
3592
+ /** @type {!Int16Array} */ var HEAP16;
3593
+
3545
3594
  function ___syscall_fcntl64(fd, cmd, varargs) {
3546
3595
  SYSCALLS.varargs = varargs;
3547
3596
  try {
@@ -3801,6 +3850,9 @@ var __abort_js = () => abort("");
3801
3850
  function __gmtime_js(time_low, time_high, tmPtr) {
3802
3851
  var time = convertI32PairToI53Checked(time_low, time_high);
3803
3852
  var date = new Date(time * 1e3);
3853
+ if (isNaN(date.getTime())) {
3854
+ return 1;
3855
+ }
3804
3856
  HEAP32[((tmPtr) >> 2)] = date.getUTCSeconds();
3805
3857
  HEAP32[(((tmPtr) + (4)) >> 2)] = date.getUTCMinutes();
3806
3858
  HEAP32[(((tmPtr) + (8)) >> 2)] = date.getUTCHours();
@@ -3811,6 +3863,7 @@ function __gmtime_js(time_low, time_high, tmPtr) {
3811
3863
  var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
3812
3864
  var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0;
3813
3865
  HEAP32[(((tmPtr) + (28)) >> 2)] = yday;
3866
+ return 0;
3814
3867
  }
3815
3868
 
3816
3869
  var isLeapYear = year => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
@@ -3830,6 +3883,9 @@ var ydayFromDate = date => {
3830
3883
  function __localtime_js(time_low, time_high, tmPtr) {
3831
3884
  var time = convertI32PairToI53Checked(time_low, time_high);
3832
3885
  var date = new Date(time * 1e3);
3886
+ if (isNaN(date.getTime())) {
3887
+ return 1;
3888
+ }
3833
3889
  HEAP32[((tmPtr) >> 2)] = date.getSeconds();
3834
3890
  HEAP32[(((tmPtr) + (4)) >> 2)] = date.getMinutes();
3835
3891
  HEAP32[(((tmPtr) + (8)) >> 2)] = date.getHours();
@@ -3846,6 +3902,7 @@ function __localtime_js(time_low, time_high, tmPtr) {
3846
3902
  var winterOffset = start.getTimezoneOffset();
3847
3903
  var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;
3848
3904
  HEAP32[(((tmPtr) + (32)) >> 2)] = dst;
3905
+ return 0;
3849
3906
  }
3850
3907
 
3851
3908
  var setTempRet0 = val => __emscripten_tempret_set(val);
@@ -3868,13 +3925,17 @@ var __mktime_js = function(tmPtr) {
3868
3925
  // DST is in December in South
3869
3926
  if (dst < 0) {
3870
3927
  // Attention: some regions don't have DST at all.
3871
- HEAP32[(((tmPtr) + (32)) >> 2)] = Number(summerOffset != winterOffset && dstOffset == guessedOffset);
3928
+ dst = Number(summerOffset != winterOffset && dstOffset == guessedOffset);
3872
3929
  } else if ((dst > 0) != (dstOffset == guessedOffset)) {
3873
3930
  var nonDstOffset = Math.max(winterOffset, summerOffset);
3874
3931
  var trueOffset = dst > 0 ? dstOffset : nonDstOffset;
3875
3932
  // Don't try setMinutes(date.getMinutes() + ...) -- it's messed up.
3876
3933
  date.setTime(date.getTime() + (trueOffset - guessedOffset) * 6e4);
3934
+ if (isNaN(date.getTime())) {
3935
+ return -1;
3936
+ }
3877
3937
  }
3938
+ HEAP32[(((tmPtr) + (32)) >> 2)] = dst;
3878
3939
  HEAP32[(((tmPtr) + (24)) >> 2)] = date.getDay();
3879
3940
  var yday = ydayFromDate(date) | 0;
3880
3941
  HEAP32[(((tmPtr) + (28)) >> 2)] = yday;
@@ -3995,6 +4056,8 @@ function _clock_time_get(clk_id, ignored_precision_low, ignored_precision_high,
3995
4056
 
3996
4057
  var readEmAsmArgsArray = [];
3997
4058
 
4059
+ /** @type {!Float64Array} */ var HEAPF64;
4060
+
3998
4061
  var readEmAsmArgs = (sigPtr, buf) => {
3999
4062
  readEmAsmArgsArray.length = 0;
4000
4063
  var ch;
@@ -4180,7 +4243,7 @@ var _emscripten_stack_unwind_buffer = (addr, buffer, count) => {
4180
4243
  ++offset;
4181
4244
  }
4182
4245
  for (var i = 0; i < count && stack[i + offset]; ++i) {
4183
- HEAP32[(((buffer) + (i * 4)) >> 2)] = convertFrameToPC(stack[i + offset]);
4246
+ HEAPU32[(((buffer) + (i * 4)) >> 2)] = convertFrameToPC(stack[i + offset]);
4184
4247
  }
4185
4248
  return i;
4186
4249
  };
@@ -4575,7 +4638,7 @@ var webglPowerPreferences = [ "default", "low-power", "high-performance" ];
4575
4638
  /** @type {Object} */ var specialHTMLTargets = [ 0, globalThis.document ?? 0, globalThis.window ?? 0 ];
4576
4639
 
4577
4640
  var findEventTarget = target => {
4578
- // The sensible "default" target varies between events, but use window as the default
4641
+ // The sensible 'default' target varies between events, but use window as the default
4579
4642
  // since DOM events mostly can default to that. Specific callback registrations
4580
4643
  // override their own defaults.
4581
4644
  if (!target) return window;
@@ -4607,6 +4670,7 @@ var _emscripten_webgl_do_create_context = (target, attributes) => {
4607
4670
  "preserveDrawingBuffer": !!HEAP8[attributes + 5],
4608
4671
  "powerPreference": webglPowerPreferences[powerPreference],
4609
4672
  "failIfMajorPerformanceCaveat": !!HEAP8[attributes + 12],
4673
+ "desynchronized": !!HEAP8[attributes + 33],
4610
4674
  // The following are not predefined WebGL context attributes in the WebGL specification, so the property names can be minified by Closure.
4611
4675
  majorVersion: HEAP32[attr32 + (16 >> 2)],
4612
4676
  minorVersion: HEAP32[attr32 + (20 >> 2)],
@@ -4648,6 +4712,7 @@ var _emscripten_webgl_get_context_attributes = (c, a) => {
4648
4712
  var power = t["powerPreference"] && webglPowerPreferences.indexOf(t["powerPreference"]);
4649
4713
  HEAP32[(((a) + (8)) >> 2)] = power;
4650
4714
  HEAP8[(a) + (12)] = t.failIfMajorPerformanceCaveat;
4715
+ HEAP8[(a) + (33)] = t.desynchronized;
4651
4716
  HEAP32[(((a) + (16)) >> 2)] = c.version;
4652
4717
  HEAP32[(((a) + (20)) >> 2)] = 0;
4653
4718
  HEAP8[(a) + (24)] = c.attributes.enableExtensionsByDefault;
@@ -4690,6 +4755,8 @@ var getWasmTableEntry = funcPtr => {
4690
4755
  return func;
4691
4756
  };
4692
4757
 
4758
+ /** @type {!Float32Array} */ var HEAPF32;
4759
+
4693
4760
  var WebGPU = {
4694
4761
  Internals: {
4695
4762
  jsObjects: [],
@@ -5152,6 +5219,28 @@ var WebGPU = {
5152
5219
  HEAP32[(((infoStruct) + (40)) >> 2)] = adapterType;
5153
5220
  HEAPU32[(((infoStruct) + (44)) >> 2)] = 0;
5154
5221
  HEAPU32[(((infoStruct) + (48)) >> 2)] = 0;
5222
+ WebGPU.iterateExtensions(infoStruct, {
5223
+ 327739: ext => {
5224
+ let configCount = 0;
5225
+ let configsPtr = 0;
5226
+ if (info.subgroupMatrixConfigs) {
5227
+ configCount = info.subgroupMatrixConfigs.length;
5228
+ configsPtr = _malloc(configCount * 20);
5229
+ for (const [i, cfg] of info.subgroupMatrixConfigs.entries()) {
5230
+ const ptr = configsPtr + i * 20;
5231
+ const componentType = WebGPU.SubgroupMatrixComponentType.indexOf(cfg.componentType);
5232
+ const resultComponentType = WebGPU.SubgroupMatrixComponentType.indexOf(cfg.resultComponentType);
5233
+ HEAP32[((ptr) >> 2)] = componentType;
5234
+ HEAP32[(((ptr) + (4)) >> 2)] = resultComponentType;
5235
+ HEAPU32[(((ptr) + (8)) >> 2)] = cfg.M;
5236
+ HEAPU32[(((ptr) + (12)) >> 2)] = cfg.N;
5237
+ HEAPU32[(((ptr) + (16)) >> 2)] = cfg.K;
5238
+ }
5239
+ }
5240
+ HEAPU32[(((ext) + (12)) >> 2)] = configsPtr;
5241
+ HEAPU32[(((ext) + (8)) >> 2)] = configCount;
5242
+ }
5243
+ });
5155
5244
  },
5156
5245
  AddressMode: [ , "clamp-to-edge", "repeat", "mirror-repeat" ],
5157
5246
  BlendFactor: [ , "zero", "one", "src", "one-minus-src", "src-alpha", "one-minus-src-alpha", "dst", "one-minus-dst", "dst-alpha", "one-minus-dst-alpha", "src-alpha-saturated", "constant", "one-minus-constant", "src1", "one-minus-src1", "src1-alpha", "one-minus-src1-alpha" ],
@@ -5190,7 +5279,8 @@ var WebGPU = {
5190
5279
  22: "texture-component-swizzle",
5191
5280
  23: "subgroup-size-control",
5192
5281
  327692: "chromium-experimental-unorm16-texture-formats",
5193
- 327729: "chromium-experimental-multi-draw-indirect"
5282
+ 327729: "chromium-experimental-multi-draw-indirect",
5283
+ 327732: "chromium-experimental-subgroup-matrix"
5194
5284
  },
5195
5285
  FilterMode: [ , "nearest", "linear" ],
5196
5286
  FrontFace: [ , "ccw", "cw" ],
@@ -5208,6 +5298,7 @@ var WebGPU = {
5208
5298
  StencilOperation: [ , "keep", "zero", "replace", "invert", "increment-clamp", "decrement-clamp", "increment-wrap", "decrement-wrap" ],
5209
5299
  StorageTextureAccess: [ , , "write-only", "read-only", "read-write" ],
5210
5300
  StoreOp: [ , "store", "discard" ],
5301
+ SubgroupMatrixComponentType: [ , "f32", "f16", "u32", "i32", "u8", "i8" ],
5211
5302
  SurfaceGetCurrentTextureStatus: [ , "success-optimal", "success-suboptimal", "timeout", "outdated", "lost", "error" ],
5212
5303
  TextureAspect: [ , "all", "stencil-only", "depth-only" ],
5213
5304
  TextureDimension: [ , "1d", "2d", "3d" ],
@@ -5217,7 +5308,7 @@ var WebGPU = {
5217
5308
  ToneMappingMode: [ , "standard", "extended" ],
5218
5309
  VertexFormat: [ , "uint8", "uint8x2", "uint8x4", "sint8", "sint8x2", "sint8x4", "unorm8", "unorm8x2", "unorm8x4", "snorm8", "snorm8x2", "snorm8x4", "uint16", "uint16x2", "uint16x4", "sint16", "sint16x2", "sint16x4", "unorm16", "unorm16x2", "unorm16x4", "snorm16", "snorm16x2", "snorm16x4", "float16", "float16x2", "float16x4", "float32", "float32x2", "float32x3", "float32x4", "uint32", "uint32x2", "uint32x3", "uint32x4", "sint32", "sint32x2", "sint32x3", "sint32x4", "unorm10-10-10-2", "unorm8x4-bgra", "snorm10-10-10-2" ],
5219
5310
  VertexStepMode: [ , "vertex", "instance" ],
5220
- WGSLLanguageFeatureName: [ , "readonly_and_readwrite_storage_textures", "packed_4x8_integer_dot_product", "unrestricted_pointer_parameters", "pointer_composite_access", "uniform_buffer_standard_layout", "subgroup_id", "texture_and_sampler_let", "subgroup_uniformity", "texture_formats_tier1", "linear_indexing", "immediate_address_space", "buffer_view" ]
5311
+ WGSLLanguageFeatureName: [ , "readonly_and_readwrite_storage_textures", "packed_4x8_integer_dot_product", "unrestricted_pointer_parameters", "pointer_composite_access", "uniform_buffer_standard_layout", "subgroup_id", "texture_and_sampler_let", "subgroup_uniformity", "texture_formats_tier1", "linear_indexing", "immediate_address_space", "buffer_view", "swizzle_assignment", "fragment_depth" ]
5221
5312
  };
5222
5313
 
5223
5314
  var _emwgpuBufferDestroy = bufferPtr => {
@@ -5339,7 +5430,17 @@ function _fd_close(fd) {
5339
5430
  var ptr = HEAPU32[((iov) >> 2)];
5340
5431
  var len = HEAPU32[(((iov) + (4)) >> 2)];
5341
5432
  iov += 8;
5342
- var curr = FS.read(stream, HEAP8, ptr, len, offset);
5433
+ try {
5434
+ var curr = FS.read(stream, HEAP8, ptr, len, offset);
5435
+ } catch (e) {
5436
+ // On a non-blocking stream a subsequent read may would-block after we
5437
+ // already gathered data. POSIX readv is a single gather-read: return
5438
+ // what we have rather than failing the whole call.
5439
+ if (ret > 0 && e instanceof FS.ErrnoError && (e.errno == 6 || e.errno == 6)) {
5440
+ break;
5441
+ }
5442
+ throw e;
5443
+ }
5343
5444
  if (curr < 0) return -1;
5344
5445
  ret += curr;
5345
5446
  if (curr < len) break;
@@ -5381,23 +5482,27 @@ function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
5381
5482
  }
5382
5483
 
5383
5484
  /** @param {number=} offset */ var doWritev = (stream, iov, iovcnt, offset) => {
5384
- var ret = 0;
5385
- for (var i = 0; i < iovcnt; i++) {
5485
+ // Gather all iovecs into one contiguous buffer and issue a single
5486
+ // FS.write, matching POSIX writev's single gather-write semantics (as
5487
+ // __syscall_sendmsg already does). Per-iovec writes fragment a stream
5488
+ // socket send into multiple segments, breaking stream byte semantics.
5489
+ if (iovcnt == 1) {
5490
+ // Single iovec: write directly from HEAP8, no gather buffer needed.
5491
+ return FS.write(stream, HEAP8, HEAPU32[((iov) >> 2)], HEAPU32[(((iov) + (4)) >> 2)], offset);
5492
+ }
5493
+ var total = 0;
5494
+ for (var i = 0, p = iov; i < iovcnt; i++, p += 8) {
5495
+ total += HEAPU32[(((p) + (4)) >> 2)];
5496
+ }
5497
+ var view = new Uint8Array(total);
5498
+ var voff = 0;
5499
+ for (var i = 0; i < iovcnt; i++, iov += 8) {
5386
5500
  var ptr = HEAPU32[((iov) >> 2)];
5387
5501
  var len = HEAPU32[(((iov) + (4)) >> 2)];
5388
- iov += 8;
5389
- var curr = FS.write(stream, HEAP8, ptr, len, offset);
5390
- if (curr < 0) return -1;
5391
- ret += curr;
5392
- if (curr < len) {
5393
- // No more space to write.
5394
- break;
5395
- }
5396
- if (typeof offset != "undefined") {
5397
- offset += curr;
5398
- }
5502
+ view.set(HEAPU8.subarray(ptr, ptr + len), voff);
5503
+ voff += len;
5399
5504
  }
5400
- return ret;
5505
+ return FS.write(stream, view, 0, total, offset);
5401
5506
  };
5402
5507
 
5403
5508
  function _fd_write(fd, iov, iovcnt, pnum) {
@@ -6090,6 +6195,8 @@ var colorChannelsInGlTextureFormat = format => {
6090
6195
  return colorChannels[format - 6402] || 1;
6091
6196
  };
6092
6197
 
6198
+ /** @type {!Uint16Array} */ var HEAPU16;
6199
+
6093
6200
  var heapObjectForWebGLType = type => {
6094
6201
  // Micro-optimization for size: Subtract lowest GL enum number (0x1400/* GL_BYTE */) from type to compare
6095
6202
  // smaller values for the heap, for shorter generated code size.
@@ -6359,18 +6466,19 @@ registerPreMainLoop(() => GL.newRenderingFrameStarted());
6359
6466
  // but before the wasm module is created.
6360
6467
  {
6361
6468
  // Begin ATMODULES hooks
6362
- if (Module["preloadPlugins"]) preloadPlugins = Module["preloadPlugins"];
6363
6469
  if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
6364
6470
  if (Module["print"]) out = Module["print"];
6365
6471
  if (Module["printErr"]) err = Module["printErr"];
6366
- if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
6367
6472
  // End ATMODULES hooks
6368
6473
  if (Module["arguments"]) programArgs = Module["arguments"];
6369
6474
  if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
6370
- if (Module["preInit"]) {
6371
- if (typeof Module["preInit"] == "function") Module["preInit"] = [ Module["preInit"] ];
6372
- while (Module["preInit"].length > 0) {
6373
- Module["preInit"].shift()();
6475
+ var preInit = Module["preInit"];
6476
+ if (preInit) {
6477
+ if (typeof preInit == "function") Module["preInit"] = preInit = [ preInit ];
6478
+ // Written as a loop so that preInit functions that themselves add more
6479
+ // preInit functions. Is this actually needed?
6480
+ while (preInit.length > 0) {
6481
+ preInit.shift()();
6374
6482
  }
6375
6483
  }
6376
6484
  }
@@ -6401,7 +6509,7 @@ Module["FS_createLazyFile"] = FS_createLazyFile;
6401
6509
  // End JS library exports
6402
6510
  // end include: postlibrary.js
6403
6511
  var ASM_CONSTS = {
6404
- 751048: () => {
6512
+ 754808: () => {
6405
6513
  specialHTMLTargets["#canvas"] = Module.canvas;
6406
6514
  }
6407
6515
  };
@@ -6551,7 +6659,7 @@ function JsWrapErrorListenerInternal(code, message) {
6551
6659
  }
6552
6660
 
6553
6661
  // Imports from the Wasm binary.
6554
- var _free, _malloc, _mediapipeLoggerGetEncodedApiKey, _registerModelResourcesGraphService, _bindTextureToStream, _addBoundTextureToStream, _addDoubleToInputStream, _addFloatToInputStream, _addBoolToInputStream, _addIntToInputStream, _addUintToInputStream, _addStringToInputStream, _addRawDataSpanToInputStream, _allocateBoolVector, _allocateFloatVector, _allocateDoubleVector, _allocateIntVector, _allocateUintVector, _allocateStringVector, _addBoolVectorEntry, _addFloatVectorEntry, _addDoubleVectorEntry, _addIntVectorEntry, _addUintVectorEntry, _addStringVectorEntry, _addBoolVectorToInputStream, _addFloatVectorToInputStream, _addDoubleVectorToInputStream, _addIntVectorToInputStream, _addUintVectorToInputStream, _addStringVectorToInputStream, _addFlatHashMapToInputStream, _addProtoToInputStream, _addEmptyPacketToInputStream, _addBoolToInputSidePacket, _addDoubleToInputSidePacket, _addFloatToInputSidePacket, _addIntToInputSidePacket, _addUintToInputSidePacket, _addStringToInputSidePacket, _addRawDataSpanToInputSidePacket, _addProtoToInputSidePacket, _addBoolVectorToInputSidePacket, _addDoubleVectorToInputSidePacket, _addFloatVectorToInputSidePacket, _addIntVectorToInputSidePacket, _addUintVectorToInputSidePacket, _addStringVectorToInputSidePacket, _attachBoolListener, _attachBoolVectorListener, _attachDoubleListener, _attachDoubleVectorListener, _attachFloatListener, _attachFloatVectorListener, _attachIntListener, _attachIntVectorListener, _attachUintListener, _attachUintVectorListener, _attachStringListener, _attachStringVectorListener, _attachProtoListener, _attachProtoVectorListener, _getGraphConfig, _emwgpuCreateBindGroup, _emwgpuCreateBindGroupLayout, _emwgpuCreateCommandBuffer, _emwgpuCreateCommandEncoder, _emwgpuCreateComputePassEncoder, _emwgpuCreateComputePipeline, _emwgpuCreateExternalTexture, _emwgpuCreatePipelineLayout, _emwgpuCreateQuerySet, _emwgpuCreateRenderBundle, _emwgpuCreateRenderBundleEncoder, _emwgpuCreateRenderPassEncoder, _emwgpuCreateRenderPipeline, _emwgpuCreateSampler, _emwgpuCreateSurface, _emwgpuCreateTexture, _emwgpuCreateTextureView, _emwgpuCreateAdapter, _emwgpuImportBuffer, _emwgpuCreateDevice, _emwgpuCreateQueue, _emwgpuCreateShaderModule, _clearSubgraphs, _pushBinarySubgraph, _pushTextSubgraph, _changeBinaryGraph, _changeTextGraph, _processGl, _process, _bindTextureToCanvas, _requestShaderRefreshOnGraphChange, _waitUntilIdle, _closeGraph, _setAutoRenderToScreen, _emscripten_builtin_memalign, __emscripten_tempret_set, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, dynCall_jii, dynCall_ji, dynCall_iiiijij, dynCall_viji, dynCall_viijii, dynCall_ijj, dynCall_jjj, dynCall_iiiijj, dynCall_viijj, dynCall_viiijjj, dynCall_iiiji, dynCall_vij, dynCall_vijjj, dynCall_vj, dynCall_viij, dynCall_jiji, dynCall_iiiiij, dynCall_iiiiijj, dynCall_iiiiiijj, memory, _kVersionStampBuildChangelistStr, _kVersionStampCitcSnapshotStr, _kVersionStampCitcWorkspaceIdStr, _kVersionStampSourceUriStr, _kVersionStampBuildClientStr, _kVersionStampBuildClientMintStatusStr, _kVersionStampBuildCompilerStr, _kVersionStampBuildDateTimePstStr, _kVersionStampBuildDepotPathStr, _kVersionStampBuildIdStr, _kVersionStampBuildInfoStr, _kVersionStampBuildLabelStr, _kVersionStampBuildTargetStr, _kVersionStampBuildTimestampStr, _kVersionStampBuildToolStr, _kVersionStampG3BuildTargetStr, _kVersionStampVerifiableStr, _kVersionStampBuildFdoTypeStr, _kVersionStampBuildBaselineChangelistStr, _kVersionStampBuildLtoTypeStr, _kVersionStampBuildPropellerTypeStr, _kVersionStampBuildPghoTypeStr, _kVersionStampBuildFdoProfileChangelistStr, _kVersionStampBuildMemprofProfileChangelistStr, _kVersionStampBuildUsernameStr, _kVersionStampBuildHostnameStr, _kVersionStampBuildDirectoryStr, _kVersionStampBuildChangelistInt, _kVersionStampCitcSnapshotInt, _kVersionStampBuildClientMintStatusInt, _kVersionStampBuildTimestampInt, _kVersionStampVerifiableInt, _kVersionStampBuildCoverageEnabledInt, _kVersionStampBuildBaselineChangelistInt, _kVersionStampPrecookedTimestampStr, _kVersionStampPrecookedClientInfoStr, __indirect_function_table, _kVersionStampBuildHasHardeningProtobuf, wasmMemory, wasmTable;
6662
+ var _free, _malloc, _mediapipeLoggerGetEncodedApiKey, _registerModelResourcesGraphService, _bindTextureToStream, _addBoundTextureToStream, _addDoubleToInputStream, _addFloatToInputStream, _addBoolToInputStream, _addIntToInputStream, _addUintToInputStream, _addStringToInputStream, _addRawDataSpanToInputStream, _allocateBoolVector, _allocateFloatVector, _allocateDoubleVector, _allocateIntVector, _allocateUintVector, _allocateStringVector, _addBoolVectorEntry, _addFloatVectorEntry, _addDoubleVectorEntry, _addIntVectorEntry, _addUintVectorEntry, _addStringVectorEntry, _addBoolVectorToInputStream, _addFloatVectorToInputStream, _addDoubleVectorToInputStream, _addIntVectorToInputStream, _addUintVectorToInputStream, _addStringVectorToInputStream, _addFlatHashMapToInputStream, _addProtoToInputStream, _addEmptyPacketToInputStream, _addBoolToInputSidePacket, _addDoubleToInputSidePacket, _addFloatToInputSidePacket, _addIntToInputSidePacket, _addUintToInputSidePacket, _addStringToInputSidePacket, _addRawDataSpanToInputSidePacket, _addProtoToInputSidePacket, _addBoolVectorToInputSidePacket, _addDoubleVectorToInputSidePacket, _addFloatVectorToInputSidePacket, _addIntVectorToInputSidePacket, _addUintVectorToInputSidePacket, _addStringVectorToInputSidePacket, _attachBoolListener, _attachBoolVectorListener, _attachDoubleListener, _attachDoubleVectorListener, _attachFloatListener, _attachFloatVectorListener, _attachIntListener, _attachIntVectorListener, _attachUintListener, _attachUintVectorListener, _attachStringListener, _attachStringVectorListener, _attachProtoListener, _attachProtoVectorListener, _getGraphConfig, _emwgpuCreateBindGroup, _emwgpuCreateBindGroupLayout, _emwgpuCreateCommandBuffer, _emwgpuCreateCommandEncoder, _emwgpuCreateComputePassEncoder, _emwgpuCreateComputePipeline, _emwgpuCreateExternalTexture, _emwgpuCreatePipelineLayout, _emwgpuCreateQuerySet, _emwgpuCreateRenderBundle, _emwgpuCreateRenderBundleEncoder, _emwgpuCreateRenderPassEncoder, _emwgpuCreateRenderPipeline, _emwgpuCreateSampler, _emwgpuCreateSurface, _emwgpuCreateTexture, _emwgpuCreateTextureView, _emwgpuCreateAdapter, _emwgpuImportBuffer, _emwgpuCreateDevice, _emwgpuCreateQueue, _emwgpuCreateShaderModule, _clearSubgraphs, _pushBinarySubgraph, _pushTextSubgraph, _changeBinaryGraph, _changeTextGraph, _processGl, _process, _bindTextureToCanvas, _requestShaderRefreshOnGraphChange, _waitUntilIdle, _closeGraph, _setAutoRenderToScreen, _emscripten_builtin_memalign, __emscripten_tempret_set, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, dynCall_jii, dynCall_ji, dynCall_iiiijij, dynCall_viji, dynCall_viijii, dynCall_jjj, dynCall_iiiijj, dynCall_viijj, dynCall_viiijjj, dynCall_iiiji, dynCall_vij, dynCall_vijjj, dynCall_vj, dynCall_viij, dynCall_jiji, dynCall_iiiiij, dynCall_iiiiijj, dynCall_iiiiiijj, memory, _kVersionStampBuildChangelistStr, _kVersionStampCitcSnapshotStr, _kVersionStampCitcWorkspaceIdStr, _kVersionStampSourceUriStr, _kVersionStampBuildClientStr, _kVersionStampBuildClientMintStatusStr, _kVersionStampBuildCompilerStr, _kVersionStampBuildDateTimePstStr, _kVersionStampBuildDepotPathStr, _kVersionStampBuildIdStr, _kVersionStampBuildInfoStr, _kVersionStampBuildLabelStr, _kVersionStampBuildTargetStr, _kVersionStampBuildTimestampStr, _kVersionStampBuildToolStr, _kVersionStampG3BuildTargetStr, _kVersionStampVerifiableStr, _kVersionStampBuildFdoTypeStr, _kVersionStampBuildBaselineChangelistStr, _kVersionStampBuildLtoTypeStr, _kVersionStampBuildPropellerTypeStr, _kVersionStampBuildPghoTypeStr, _kVersionStampBuildFdoProfileChangelistStr, _kVersionStampBuildMemprofProfileChangelistStr, _kVersionStampBuildUsernameStr, _kVersionStampBuildHostnameStr, _kVersionStampBuildDirectoryStr, _kVersionStampBuildChangelistInt, _kVersionStampCitcSnapshotInt, _kVersionStampBuildClientMintStatusInt, _kVersionStampBuildTimestampInt, _kVersionStampVerifiableInt, _kVersionStampBuildCoverageEnabledInt, _kVersionStampBuildBaselineChangelistInt, _kVersionStampPrecookedTimestampStr, _kVersionStampPrecookedClientInfoStr, __indirect_function_table, _kVersionStampBuildHasHardeningProtobuf, wasmMemory, wasmTable;
6555
6663
 
6556
6664
  function assignWasmExports(wasmExports) {
6557
6665
  _free = Module["_free"] = wasmExports["Vb"];
@@ -6661,7 +6769,6 @@ function assignWasmExports(wasmExports) {
6661
6769
  dynCall_iiiijij = wasmExports["dynCall_iiiijij"];
6662
6770
  dynCall_viji = wasmExports["dynCall_viji"];
6663
6771
  dynCall_viijii = wasmExports["dynCall_viijii"];
6664
- dynCall_ijj = wasmExports["dynCall_ijj"];
6665
6772
  dynCall_jjj = wasmExports["dynCall_jjj"];
6666
6773
  dynCall_iiiijj = wasmExports["dynCall_iiiijj"];
6667
6774
  dynCall_viijj = wasmExports["dynCall_viijj"];
@@ -6838,37 +6945,22 @@ var wasmImports = {
6838
6945
  // include: postamble.js
6839
6946
  // === Auto-generated postamble setup entry stuff ===
6840
6947
  async function run() {
6841
- if (runDependencies > 0) {
6842
- await new Promise(resolve => dependenciesFulfilled = resolve);
6843
- }
6844
6948
  preRun();
6845
- // a preRun added a dependency, run will be called later
6846
- if (runDependencies > 0) {
6847
- await new Promise(resolve => dependenciesFulfilled = resolve);
6949
+ if (runDependencies) {
6950
+ await resolveRunDependencies();
6848
6951
  }
6849
- function doRun() {
6850
- // run may have just been called through dependencies being fulfilled just in this very frame,
6851
- // or while the async setStatus time below was happening
6852
- Module["calledRun"] = true;
6853
- if (ABORT) return;
6854
- initRuntime();
6855
- Module["onRuntimeInitialized"]?.();
6856
- postRun();
6857
- }
6858
- if (Module["setStatus"]) {
6859
- Module["setStatus"]("Running...");
6860
- // Yield the main thread to allow the browser to paint "Running...", then clear
6861
- // the status text after the synchronous doRun() completes.
6862
- await new Promise(resolve => {
6863
- setTimeout(() => {
6864
- setTimeout(() => Module["setStatus"](""), 1);
6865
- doRun();
6866
- resolve();
6867
- }, 1);
6868
- });
6869
- } else {
6870
- doRun();
6952
+ var setStatus = Module["setStatus"];
6953
+ if (setStatus) {
6954
+ setStatus("Running...");
6955
+ // Yield to the event loop to allow the browser to paint "Running..."
6956
+ await new Promise(resolve => setTimeout(resolve, 1));
6957
+ // Then we want to clear the status text, but only after the rest of this function runs.
6958
+ setTimeout(setStatus, 1, "");
6871
6959
  }
6960
+ if (ABORT) return;
6961
+ initRuntime();
6962
+ Module["onRuntimeInitialized"]?.();
6963
+ postRun();
6872
6964
  }
6873
6965
 
6874
6966
  var wasmExports;