@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.
@@ -192,8 +192,6 @@ var EXITSTATUS;
192
192
  */ var isFileURI = filename => filename.startsWith("file://");
193
193
 
194
194
  // include: runtime_common.js
195
- // include: runtime_stack_check.js
196
- // end include: runtime_stack_check.js
197
195
  // include: runtime_exceptions.js
198
196
  // Base Emscripten EH error class
199
197
  class EmscriptenEH {}
@@ -206,8 +204,17 @@ class EmscriptenSjLj extends EmscriptenEH {}
206
204
  // Memory management
207
205
  var runtimeInitialized = false;
208
206
 
207
+ // When ALLOW_MEMORY_GROWTH is enabled, the conversion from Wasm
208
+ // memory to ArrayBuffer requires some additional logic.
209
+ function getMemoryBuffer() {
210
+ return wasmMemory.buffer;
211
+ }
212
+
209
213
  function updateMemoryViews() {
210
- var b = wasmMemory.buffer;
214
+ // If we already have a heap that is resizeable/growable buffer we don't
215
+ // need to do anything in updateMemoryViews.
216
+ if (HEAP8?.buffer?.resizable) return;
217
+ var b = getMemoryBuffer();
211
218
  HEAP8 = new Int8Array(b);
212
219
  HEAP16 = new Int16Array(b);
213
220
  Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
@@ -222,11 +229,10 @@ function updateMemoryViews() {
222
229
  // end include: memoryprofiler.js
223
230
  // end include: runtime_common.js
224
231
  function preRun() {
225
- if (Module["preRun"]) {
226
- if (typeof Module["preRun"] == "function") Module["preRun"] = [ Module["preRun"] ];
227
- while (Module["preRun"].length) {
228
- addOnPreRun(Module["preRun"].shift());
229
- }
232
+ var preRun = Module["preRun"];
233
+ if (preRun) {
234
+ if (typeof preRun == "function") preRun = [ preRun ];
235
+ onPreRuns.push(...preRun);
230
236
  }
231
237
  // Begin ATPRERUNS hooks
232
238
  callRuntimeCallbacks(onPreRuns);
@@ -244,12 +250,10 @@ function initRuntime() {
244
250
  }
245
251
 
246
252
  function postRun() {
247
- // PThreads reuse the runtime from the main thread.
248
- if (Module["postRun"]) {
249
- if (typeof Module["postRun"] == "function") Module["postRun"] = [ Module["postRun"] ];
250
- while (Module["postRun"].length) {
251
- addOnPostRun(Module["postRun"].shift());
252
- }
253
+ var postRun = Module["postRun"];
254
+ if (postRun) {
255
+ if (typeof postRun == "function") postRun = [ postRun ];
256
+ onPostRuns.push(...postRun);
253
257
  }
254
258
  // Begin ATPOSTRUNS hooks
255
259
  callRuntimeCallbacks(onPostRuns);
@@ -295,9 +299,6 @@ function findWasmBinary() {
295
299
  }
296
300
 
297
301
  function getBinarySync(file) {
298
- if (file == wasmBinaryFile && wasmBinary) {
299
- return new Uint8Array(wasmBinary);
300
- }
301
302
  if (readBinary) {
302
303
  return readBinary(file);
303
304
  }
@@ -362,7 +363,7 @@ async function createWasm() {
362
363
  // Load the wasm module and create an instance of using native support in the JS engine.
363
364
  // handle a generated wasm instance, receiving its exports and
364
365
  // performing other necessary setup
365
- /** @param {WebAssembly.Module=} module*/ function receiveInstance(instance, module) {
366
+ function receiveInstance(instance) {
366
367
  wasmExports = instance.exports;
367
368
  assignWasmExports(wasmExports);
368
369
  updateMemoryViews();
@@ -383,11 +384,10 @@ async function createWasm() {
383
384
  // performing.
384
385
  // Also pthreads and wasm workers initialize the wasm instance through this
385
386
  // path.
386
- if (Module["instantiateWasm"]) {
387
- return new Promise((resolve, reject) => {
388
- Module["instantiateWasm"](info, (inst, mod) => {
389
- resolve(receiveInstance(inst, mod));
390
- });
387
+ var instantiateWasm = Module["instantiateWasm"];
388
+ if (instantiateWasm) {
389
+ return new Promise(resolve => {
390
+ instantiateWasm(info, inst => resolve(receiveInstance(inst)));
391
391
  });
392
392
  }
393
393
  wasmBinaryFile ??= findWasmBinary();
@@ -467,7 +467,7 @@ var callUserCallback = func => {
467
467
  };
468
468
 
469
469
  function getFullscreenElement() {
470
- return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.webkitCurrentFullScreenElement || document.msFullscreenElement;
470
+ return document.fullscreenElement ?? document.webkitFullscreenElement;
471
471
  }
472
472
 
473
473
  /** @param {number=} timeout */ var safeSetTimeout = (func, timeout) => setTimeout(() => {
@@ -485,12 +485,15 @@ var warnOnce = text => {
485
485
 
486
486
  var preloadPlugins = [];
487
487
 
488
+ /** @type {!Int32Array} */ var HEAP32;
489
+
490
+ /** @type {!Uint32Array} */ var HEAPU32;
491
+
488
492
  var Browser = {
489
493
  useWebGL: false,
490
494
  isFullscreen: false,
491
495
  pointerLock: false,
492
496
  moduleContextCreatedCallbacks: [],
493
- workers: [],
494
497
  preloadedImages: {},
495
498
  preloadedAudios: {},
496
499
  getCanvas: () => Module["canvas"],
@@ -557,7 +560,7 @@ var Browser = {
557
560
  var url = URL.createObjectURL(b);
558
561
  // XXX we never revoke this!
559
562
  var audio = new Audio;
560
- audio.addEventListener("canplaythrough", () => finish(audio), false);
563
+ audio.addEventListener("canplaythrough", () => finish(audio));
561
564
  // use addEventListener due to chromium bug 124926
562
565
  audio.onerror = event => {
563
566
  if (done) return;
@@ -605,14 +608,14 @@ var Browser = {
605
608
  if (canvas) {
606
609
  // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module
607
610
  // Module['forcedAspectRatio'] = 4 / 3;
608
- document.addEventListener("pointerlockchange", pointerLockChange, false);
611
+ document.addEventListener("pointerlockchange", pointerLockChange);
609
612
  if (Module["elementPointerLock"]) {
610
613
  canvas.addEventListener("click", ev => {
611
614
  if (!Browser.pointerLock && Browser.getCanvas().requestPointerLock) {
612
615
  Browser.getCanvas().requestPointerLock();
613
616
  ev.preventDefault();
614
617
  }
615
- }, false);
618
+ });
616
619
  }
617
620
  }
618
621
  },
@@ -686,32 +689,30 @@ var Browser = {
686
689
  Browser.updateCanvasDimensions(canvas);
687
690
  }
688
691
  }
689
- Module["onFullScreen"]?.(Browser.isFullscreen);
690
- Module["onFullscreen"]?.(Browser.isFullscreen);
691
692
  }
692
693
  if (!Browser.fullscreenHandlersInstalled) {
693
694
  Browser.fullscreenHandlersInstalled = true;
694
- document.addEventListener("fullscreenchange", fullscreenChange, false);
695
- document.addEventListener("mozfullscreenchange", fullscreenChange, false);
696
- document.addEventListener("webkitfullscreenchange", fullscreenChange, false);
697
- document.addEventListener("MSFullscreenChange", fullscreenChange, false);
695
+ document.addEventListener("fullscreenchange", fullscreenChange);
696
+ document.addEventListener("webkitfullscreenchange", fullscreenChange);
698
697
  }
699
698
  // 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
700
699
  var canvasContainer = document.createElement("div");
701
700
  canvas.parentNode.insertBefore(canvasContainer, canvas);
702
701
  canvasContainer.appendChild(canvas);
703
702
  // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size)
704
- 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);
703
+ // Safari didn't support Element.requestFullscreen until 16.4
704
+ // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen
705
+ /** @suppress {checkTypes} */ canvasContainer.requestFullscreen ??= (canvasContainer["webkitRequestFullscreen"] ? () => canvasContainer["webkitRequestFullscreen"](Element.ALLOW_KEYBOARD_INPUT) : null) ?? (canvasContainer["webkitRequestFullScreen"] ? () => canvasContainer["webkitRequestFullScreen"](Element.ALLOW_KEYBOARD_INPUT) : null);
705
706
  canvasContainer.requestFullscreen();
706
707
  },
707
708
  exitFullscreen() {
708
709
  // This is workaround for chrome. Trying to exit from fullscreen
709
- // not in fullscreen state will cause "TypeError: Document not active"
710
+ // not in fullscreen state will cause 'TypeError: Document not active'
710
711
  // in chrome. See https://github.com/emscripten-core/emscripten/pull/8236
711
712
  if (!Browser.isFullscreen) {
712
713
  return false;
713
714
  }
714
- var CFS = document["exitFullscreen"] || document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["msExitFullscreen"] || document["webkitCancelFullScreen"] || (() => {});
715
+ var CFS = document.exitFullscreen ?? document["webkitCancelFullScreen"];
715
716
  CFS.apply(document, []);
716
717
  return true;
717
718
  },
@@ -733,14 +734,7 @@ var Browser = {
733
734
  }[name.slice(name.lastIndexOf(".") + 1)];
734
735
  },
735
736
  getUserMedia(func) {
736
- window.getUserMedia ||= navigator["getUserMedia"] || navigator["mozGetUserMedia"];
737
- window.getUserMedia(func);
738
- },
739
- getMovementX(event) {
740
- return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0;
741
- },
742
- getMovementY(event) {
743
- return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0;
737
+ return navigator.mediaDevices.getUserMedia(func);
744
738
  },
745
739
  getMouseWheelDelta(event) {
746
740
  var delta = 0;
@@ -818,13 +812,8 @@ var Browser = {
818
812
  if (Browser.pointerLock) {
819
813
  // When the pointer is locked, calculate the coordinates
820
814
  // based on the movement of the mouse.
821
- // Workaround for Firefox bug 764498
822
- if (event.type != "mousemove" && ("mozMovementX" in event)) {
823
- Browser.mouseMovementX = Browser.mouseMovementY = 0;
824
- } else {
825
- Browser.mouseMovementX = Browser.getMovementX(event);
826
- Browser.mouseMovementY = Browser.getMovementY(event);
827
- }
815
+ Browser.mouseMovementX = event.movementX;
816
+ Browser.mouseMovementY = event.movementY;
828
817
  // add the mouse delta to the current absolute mouse position
829
818
  Browser.mouseX += Browser.mouseMovementX;
830
819
  Browser.mouseY += Browser.mouseMovementY;
@@ -893,13 +882,6 @@ var Browser = {
893
882
  }
894
883
  var w = wNative;
895
884
  var h = hNative;
896
- if (Module["forcedAspectRatio"] > 0) {
897
- if (w / h < Module["forcedAspectRatio"]) {
898
- w = Math.round(h * Module["forcedAspectRatio"]);
899
- } else {
900
- h = Math.round(w / Module["forcedAspectRatio"]);
901
- }
902
- }
903
885
  if ((getFullscreenElement() === canvas.parentNode) && (typeof screen != "undefined")) {
904
886
  var factor = Math.min(screen.width / w, screen.height / h);
905
887
  w = Math.round(w * factor);
@@ -928,22 +910,8 @@ var Browser = {
928
910
  }
929
911
  };
930
912
 
931
- /** @type {!Int16Array} */ var HEAP16;
932
-
933
- /** @type {!Int32Array} */ var HEAP32;
934
-
935
913
  /** @type {!Int8Array} */ var HEAP8;
936
914
 
937
- /** @type {!Float32Array} */ var HEAPF32;
938
-
939
- /** @type {!Float64Array} */ var HEAPF64;
940
-
941
- /** @type {!Uint16Array} */ var HEAPU16;
942
-
943
- /** @type {!Uint32Array} */ var HEAPU32;
944
-
945
- /** @type {!Uint8Array} */ var HEAPU8;
946
-
947
915
  var callRuntimeCallbacks = callbacks => {
948
916
  while (callbacks.length > 0) {
949
917
  // Pass the module as the first argument.
@@ -953,12 +921,8 @@ var callRuntimeCallbacks = callbacks => {
953
921
 
954
922
  var onPostRuns = [];
955
923
 
956
- var addOnPostRun = cb => onPostRuns.push(cb);
957
-
958
924
  var onPreRuns = [];
959
925
 
960
- var addOnPreRun = cb => onPreRuns.push(cb);
961
-
962
926
  var noExitRuntime = true;
963
927
 
964
928
  var stackRestore = val => __emscripten_stack_restore(val);
@@ -1027,7 +991,7 @@ var initRandomFill = () => {
1027
991
  // This block is not needed on v19+ since crypto.getRandomValues is builtin
1028
992
  if (ENVIRONMENT_IS_NODE) {
1029
993
  var nodeCrypto = require("node:crypto");
1030
- return view => nodeCrypto.randomFillSync(view);
994
+ return view => (nodeCrypto.randomFillSync(view), 0);
1031
995
  }
1032
996
  return view => (crypto.getRandomValues(view), 0);
1033
997
  };
@@ -1089,7 +1053,13 @@ var PATH_FS = {
1089
1053
 
1090
1054
  var UTF8Decoder = new TextDecoder;
1091
1055
 
1092
- var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
1056
+ /**
1057
+ * heapOrArray is either a regular array, or a JavaScript typed array view.
1058
+ * @param {number} idx
1059
+ * @param {number=} maxBytesToRead
1060
+ * @param {boolean=} ignoreNul
1061
+ * @return {number}
1062
+ */ var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
1093
1063
  var maxIdx = idx + maxBytesToRead;
1094
1064
  if (ignoreNul) return maxIdx;
1095
1065
  // TextDecoder needs to know the byte length in advance, it doesn't stop on
@@ -1352,6 +1322,8 @@ var TTY = {
1352
1322
  }
1353
1323
  };
1354
1324
 
1325
+ /** @type {!Uint8Array} */ var HEAPU8;
1326
+
1355
1327
  var zeroMemory = (ptr, size) => HEAPU8.fill(0, ptr, ptr + size);
1356
1328
 
1357
1329
  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
@@ -1713,23 +1685,26 @@ var FS_createDataFile = (...args) => FS.createDataFile(...args);
1713
1685
 
1714
1686
  var getUniqueRunDependency = id => id;
1715
1687
 
1688
+ var dependenciesPromise = null;
1689
+
1690
+ var resolveRunDependencies = async () => dependenciesPromise;
1691
+
1716
1692
  var runDependencies = 0;
1717
1693
 
1718
- var dependenciesFulfilled = null;
1694
+ var dependenciesPromiseResolve = null;
1719
1695
 
1720
1696
  var removeRunDependency = id => {
1721
1697
  runDependencies--;
1722
1698
  Module["monitorRunDependencies"]?.(runDependencies);
1723
- if (runDependencies == 0) {
1724
- if (dependenciesFulfilled) {
1725
- var callback = dependenciesFulfilled;
1726
- dependenciesFulfilled = null;
1727
- callback();
1728
- }
1699
+ if (!runDependencies) {
1700
+ dependenciesPromiseResolve();
1729
1701
  }
1730
1702
  };
1731
1703
 
1732
1704
  var addRunDependency = id => {
1705
+ if (!runDependencies) {
1706
+ dependenciesPromise = new Promise(resolve => dependenciesPromiseResolve = resolve);
1707
+ }
1733
1708
  runDependencies++;
1734
1709
  Module["monitorRunDependencies"]?.(runDependencies);
1735
1710
  };
@@ -1863,6 +1838,53 @@ var FS = {
1863
1838
  get isDevice() {
1864
1839
  return FS.isChrdev(this.mode);
1865
1840
  }
1841
+ // The per-inode readiness wait-queue. The node carries a Set of listener
1842
+ // entries {cb}; producers (SOCKFS, PIPEFS) call notifyListeners on a
1843
+ // readiness transition, and poll()/epoll consume it. It lives on the node
1844
+ // (not the fd) so dup'd fds share one queue. Only nodes that derive real
1845
+ // readiness (sockets, pipes, and an epoll's own node) ever use this -
1846
+ // always-ready types (regular files, ttys) never register or notify.
1847
+ addListener(cb, exclusive = false) {
1848
+ var entry = {
1849
+ cb,
1850
+ exclusive
1851
+ };
1852
+ var listeners = (this.listeners ??= new Set);
1853
+ listeners.add(entry);
1854
+ return {
1855
+ listeners,
1856
+ entry
1857
+ };
1858
+ }
1859
+ notifyListeners(flags) {
1860
+ // Iterates the set without copying, which is safe ONLY under a
1861
+ // load-bearing contract that every internal listener must honour:
1862
+ // 1. A listener must not run user code synchronously (a poll waiter only
1863
+ // resolves a Promise; an epoll registration only re-lists +
1864
+ // re-notifies; the epoll callback only schedules a tick). User code
1865
+ // runs on a later tick, never inside this loop.
1866
+ // 2. A listener may delete entries only from ITS OWN waiter, never from
1867
+ // a sibling node's set that may be mid-iteration. (Deleting an entry
1868
+ // of the set being iterated here is fine - a Set tolerates removal of
1869
+ // a not-yet-visited entry mid-iteration; mutating a *different* node's
1870
+ // set is fine because that set is not being iterated.)
1871
+ // Violating either gives silently skipped wakeups that are near-impossible
1872
+ // to reproduce. Any new producer/listener must preserve it.
1873
+ if (!this.listeners) return;
1874
+ // Fire every non-exclusive listener. Among EPOLLEXCLUSIVE registrations
1875
+ // (one fd watched by several epolls) wake only one, rotating round-robin
1876
+ // per node, to avoid a thundering herd. (Only epoll registrations are ever
1877
+ // exclusive; poll waiters and a node's own consumers are not.)
1878
+ var excl;
1879
+ for (var entry of this.listeners) {
1880
+ if (entry.exclusive) (excl ||= []).push(entry); else entry.cb(flags);
1881
+ }
1882
+ if (excl) {
1883
+ var i = (this.exclTurn || 0) % excl.length;
1884
+ this.exclTurn = i + 1;
1885
+ excl[i].cb(flags);
1886
+ }
1887
+ }
1866
1888
  },
1867
1889
  lookupPath(path, opts = {}) {
1868
1890
  if (!path) {
@@ -2408,6 +2430,27 @@ var FS = {
2408
2430
  }
2409
2431
  return parent.node_ops.symlink(parent, newname, oldpath);
2410
2432
  },
2433
+ link(oldpath, newpath, flags) {
2434
+ var lookup = FS.lookupPath(newpath, {
2435
+ parent: true
2436
+ });
2437
+ var parent = lookup.node;
2438
+ if (!parent) {
2439
+ throw new FS.ErrnoError(44);
2440
+ }
2441
+ var newname = PATH.basename(newpath);
2442
+ var errCode = FS.mayCreate(parent, newname);
2443
+ if (errCode) {
2444
+ throw new FS.ErrnoError(errCode);
2445
+ }
2446
+ // Hardlinks are only supported by filesystem backends that provide a
2447
+ // `link` node op (e.g. NODERAWFS backed by the host). NODEFS omits it:
2448
+ // a host hardlink cannot be confined to the mount root.
2449
+ if (!parent.node_ops.link) {
2450
+ throw new FS.ErrnoError(34);
2451
+ }
2452
+ return parent.node_ops.link(parent, newname, oldpath, flags);
2453
+ },
2411
2454
  rename(old_path, new_path) {
2412
2455
  var old_dirname = PATH.dirname(old_path);
2413
2456
  var new_dirname = PATH.dirname(new_path);
@@ -2665,15 +2708,14 @@ var FS = {
2665
2708
  }
2666
2709
  FS.doTruncate(stream, stream.node, len);
2667
2710
  },
2668
- utime(path, atime, mtime) {
2711
+ utime(path, atime, mtime, dontFollow) {
2669
2712
  var lookup = FS.lookupPath(path, {
2670
- follow: true
2713
+ follow: !dontFollow
2671
2714
  });
2672
- var node = lookup.node;
2673
- var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
2674
- setattr(node, {
2715
+ FS.doSetAttr(null, lookup.node, {
2675
2716
  atime,
2676
- mtime
2717
+ mtime,
2718
+ dontFollow
2677
2719
  });
2678
2720
  },
2679
2721
  open(path, flags, mode = 438) {
@@ -2775,6 +2817,11 @@ var FS = {
2775
2817
  }
2776
2818
  if (stream.getdents) stream.getdents = null;
2777
2819
  // free readdir state
2820
+ // The fd is going away: wake anything waiting on it (poll/epoll) with
2821
+ // POLLNVAL so a blocking wait unblocks and an epoll registration is evicted
2822
+ // on its next derive. Only sockets/pipes/epoll ever carry a wait-queue, so
2823
+ // for every other stream (incl. nodeless noderawfs stdio) this is a no-op.
2824
+ stream.node?.notifyListeners(32);
2778
2825
  try {
2779
2826
  if (stream.stream_ops.close) {
2780
2827
  stream.stream_ops.close(stream);
@@ -3242,7 +3289,7 @@ var FS = {
3242
3289
  var xhr = new XMLHttpRequest;
3243
3290
  xhr.open("HEAD", url, false);
3244
3291
  xhr.send(null);
3245
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status);
3292
+ if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`);
3246
3293
  var datalength = Number(xhr.getResponseHeader("Content-length"));
3247
3294
  var header;
3248
3295
  var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
@@ -3257,14 +3304,14 @@ var FS = {
3257
3304
  // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
3258
3305
  var xhr = new XMLHttpRequest;
3259
3306
  xhr.open("GET", url, false);
3260
- if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
3307
+ if (datalength !== chunkSize) xhr.setRequestHeader("Range", `bytes=${from}-${to}`);
3261
3308
  // Some hints to the browser that we want binary data.
3262
3309
  xhr.responseType = "arraybuffer";
3263
3310
  if (xhr.overrideMimeType) {
3264
3311
  xhr.overrideMimeType("text/plain; charset=x-user-defined");
3265
3312
  }
3266
3313
  xhr.send(null);
3267
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status);
3314
+ if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`);
3268
3315
  if (xhr.response !== undefined) {
3269
3316
  return new Uint8Array(/** @type{Array<number>} */ (xhr.response || []));
3270
3317
  }
@@ -3483,7 +3530,7 @@ var SYSCALLS = {
3483
3530
  // MAP_PRIVATE calls need not to be synced back to underlying fs
3484
3531
  return 0;
3485
3532
  }
3486
- var buffer = HEAPU8.slice(addr, addr + len);
3533
+ var buffer = HEAPU8.subarray(addr, addr + len);
3487
3534
  FS.msync(stream, buffer, offset, len, flags);
3488
3535
  },
3489
3536
  getStreamFromFD(fd) {
@@ -3545,6 +3592,8 @@ var syscallGetVarargI = () => {
3545
3592
 
3546
3593
  var syscallGetVarargP = syscallGetVarargI;
3547
3594
 
3595
+ /** @type {!Int16Array} */ var HEAP16;
3596
+
3548
3597
  function ___syscall_fcntl64(fd, cmd, varargs) {
3549
3598
  SYSCALLS.varargs = varargs;
3550
3599
  try {
@@ -3804,6 +3853,9 @@ var __abort_js = () => abort("");
3804
3853
  function __gmtime_js(time_low, time_high, tmPtr) {
3805
3854
  var time = convertI32PairToI53Checked(time_low, time_high);
3806
3855
  var date = new Date(time * 1e3);
3856
+ if (isNaN(date.getTime())) {
3857
+ return 1;
3858
+ }
3807
3859
  HEAP32[((tmPtr) >> 2)] = date.getUTCSeconds();
3808
3860
  HEAP32[(((tmPtr) + (4)) >> 2)] = date.getUTCMinutes();
3809
3861
  HEAP32[(((tmPtr) + (8)) >> 2)] = date.getUTCHours();
@@ -3814,6 +3866,7 @@ function __gmtime_js(time_low, time_high, tmPtr) {
3814
3866
  var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
3815
3867
  var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0;
3816
3868
  HEAP32[(((tmPtr) + (28)) >> 2)] = yday;
3869
+ return 0;
3817
3870
  }
3818
3871
 
3819
3872
  var isLeapYear = year => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
@@ -3833,6 +3886,9 @@ var ydayFromDate = date => {
3833
3886
  function __localtime_js(time_low, time_high, tmPtr) {
3834
3887
  var time = convertI32PairToI53Checked(time_low, time_high);
3835
3888
  var date = new Date(time * 1e3);
3889
+ if (isNaN(date.getTime())) {
3890
+ return 1;
3891
+ }
3836
3892
  HEAP32[((tmPtr) >> 2)] = date.getSeconds();
3837
3893
  HEAP32[(((tmPtr) + (4)) >> 2)] = date.getMinutes();
3838
3894
  HEAP32[(((tmPtr) + (8)) >> 2)] = date.getHours();
@@ -3849,6 +3905,7 @@ function __localtime_js(time_low, time_high, tmPtr) {
3849
3905
  var winterOffset = start.getTimezoneOffset();
3850
3906
  var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;
3851
3907
  HEAP32[(((tmPtr) + (32)) >> 2)] = dst;
3908
+ return 0;
3852
3909
  }
3853
3910
 
3854
3911
  var setTempRet0 = val => __emscripten_tempret_set(val);
@@ -3871,13 +3928,17 @@ var __mktime_js = function(tmPtr) {
3871
3928
  // DST is in December in South
3872
3929
  if (dst < 0) {
3873
3930
  // Attention: some regions don't have DST at all.
3874
- HEAP32[(((tmPtr) + (32)) >> 2)] = Number(summerOffset != winterOffset && dstOffset == guessedOffset);
3931
+ dst = Number(summerOffset != winterOffset && dstOffset == guessedOffset);
3875
3932
  } else if ((dst > 0) != (dstOffset == guessedOffset)) {
3876
3933
  var nonDstOffset = Math.max(winterOffset, summerOffset);
3877
3934
  var trueOffset = dst > 0 ? dstOffset : nonDstOffset;
3878
3935
  // Don't try setMinutes(date.getMinutes() + ...) -- it's messed up.
3879
3936
  date.setTime(date.getTime() + (trueOffset - guessedOffset) * 6e4);
3937
+ if (isNaN(date.getTime())) {
3938
+ return -1;
3939
+ }
3880
3940
  }
3941
+ HEAP32[(((tmPtr) + (32)) >> 2)] = dst;
3881
3942
  HEAP32[(((tmPtr) + (24)) >> 2)] = date.getDay();
3882
3943
  var yday = ydayFromDate(date) | 0;
3883
3944
  HEAP32[(((tmPtr) + (28)) >> 2)] = yday;
@@ -3998,6 +4059,8 @@ function _clock_time_get(clk_id, ignored_precision_low, ignored_precision_high,
3998
4059
 
3999
4060
  var readEmAsmArgsArray = [];
4000
4061
 
4062
+ /** @type {!Float64Array} */ var HEAPF64;
4063
+
4001
4064
  var readEmAsmArgs = (sigPtr, buf) => {
4002
4065
  readEmAsmArgsArray.length = 0;
4003
4066
  var ch;
@@ -4183,7 +4246,7 @@ var _emscripten_stack_unwind_buffer = (addr, buffer, count) => {
4183
4246
  ++offset;
4184
4247
  }
4185
4248
  for (var i = 0; i < count && stack[i + offset]; ++i) {
4186
- HEAP32[(((buffer) + (i * 4)) >> 2)] = convertFrameToPC(stack[i + offset]);
4249
+ HEAPU32[(((buffer) + (i * 4)) >> 2)] = convertFrameToPC(stack[i + offset]);
4187
4250
  }
4188
4251
  return i;
4189
4252
  };
@@ -4578,7 +4641,7 @@ var webglPowerPreferences = [ "default", "low-power", "high-performance" ];
4578
4641
  /** @type {Object} */ var specialHTMLTargets = [ 0, globalThis.document ?? 0, globalThis.window ?? 0 ];
4579
4642
 
4580
4643
  var findEventTarget = target => {
4581
- // The sensible "default" target varies between events, but use window as the default
4644
+ // The sensible 'default' target varies between events, but use window as the default
4582
4645
  // since DOM events mostly can default to that. Specific callback registrations
4583
4646
  // override their own defaults.
4584
4647
  if (!target) return window;
@@ -4610,6 +4673,7 @@ var _emscripten_webgl_do_create_context = (target, attributes) => {
4610
4673
  "preserveDrawingBuffer": !!HEAP8[attributes + 5],
4611
4674
  "powerPreference": webglPowerPreferences[powerPreference],
4612
4675
  "failIfMajorPerformanceCaveat": !!HEAP8[attributes + 12],
4676
+ "desynchronized": !!HEAP8[attributes + 33],
4613
4677
  // The following are not predefined WebGL context attributes in the WebGL specification, so the property names can be minified by Closure.
4614
4678
  majorVersion: HEAP32[attr32 + (16 >> 2)],
4615
4679
  minorVersion: HEAP32[attr32 + (20 >> 2)],
@@ -4651,6 +4715,7 @@ var _emscripten_webgl_get_context_attributes = (c, a) => {
4651
4715
  var power = t["powerPreference"] && webglPowerPreferences.indexOf(t["powerPreference"]);
4652
4716
  HEAP32[(((a) + (8)) >> 2)] = power;
4653
4717
  HEAP8[(a) + (12)] = t.failIfMajorPerformanceCaveat;
4718
+ HEAP8[(a) + (33)] = t.desynchronized;
4654
4719
  HEAP32[(((a) + (16)) >> 2)] = c.version;
4655
4720
  HEAP32[(((a) + (20)) >> 2)] = 0;
4656
4721
  HEAP8[(a) + (24)] = c.attributes.enableExtensionsByDefault;
@@ -4693,6 +4758,8 @@ var getWasmTableEntry = funcPtr => {
4693
4758
  return func;
4694
4759
  };
4695
4760
 
4761
+ /** @type {!Float32Array} */ var HEAPF32;
4762
+
4696
4763
  var WebGPU = {
4697
4764
  Internals: {
4698
4765
  jsObjects: [],
@@ -5155,6 +5222,28 @@ var WebGPU = {
5155
5222
  HEAP32[(((infoStruct) + (40)) >> 2)] = adapterType;
5156
5223
  HEAPU32[(((infoStruct) + (44)) >> 2)] = 0;
5157
5224
  HEAPU32[(((infoStruct) + (48)) >> 2)] = 0;
5225
+ WebGPU.iterateExtensions(infoStruct, {
5226
+ 327739: ext => {
5227
+ let configCount = 0;
5228
+ let configsPtr = 0;
5229
+ if (info.subgroupMatrixConfigs) {
5230
+ configCount = info.subgroupMatrixConfigs.length;
5231
+ configsPtr = _malloc(configCount * 20);
5232
+ for (const [i, cfg] of info.subgroupMatrixConfigs.entries()) {
5233
+ const ptr = configsPtr + i * 20;
5234
+ const componentType = WebGPU.SubgroupMatrixComponentType.indexOf(cfg.componentType);
5235
+ const resultComponentType = WebGPU.SubgroupMatrixComponentType.indexOf(cfg.resultComponentType);
5236
+ HEAP32[((ptr) >> 2)] = componentType;
5237
+ HEAP32[(((ptr) + (4)) >> 2)] = resultComponentType;
5238
+ HEAPU32[(((ptr) + (8)) >> 2)] = cfg.M;
5239
+ HEAPU32[(((ptr) + (12)) >> 2)] = cfg.N;
5240
+ HEAPU32[(((ptr) + (16)) >> 2)] = cfg.K;
5241
+ }
5242
+ }
5243
+ HEAPU32[(((ext) + (12)) >> 2)] = configsPtr;
5244
+ HEAPU32[(((ext) + (8)) >> 2)] = configCount;
5245
+ }
5246
+ });
5158
5247
  },
5159
5248
  AddressMode: [ , "clamp-to-edge", "repeat", "mirror-repeat" ],
5160
5249
  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" ],
@@ -5193,7 +5282,8 @@ var WebGPU = {
5193
5282
  22: "texture-component-swizzle",
5194
5283
  23: "subgroup-size-control",
5195
5284
  327692: "chromium-experimental-unorm16-texture-formats",
5196
- 327729: "chromium-experimental-multi-draw-indirect"
5285
+ 327729: "chromium-experimental-multi-draw-indirect",
5286
+ 327732: "chromium-experimental-subgroup-matrix"
5197
5287
  },
5198
5288
  FilterMode: [ , "nearest", "linear" ],
5199
5289
  FrontFace: [ , "ccw", "cw" ],
@@ -5211,6 +5301,7 @@ var WebGPU = {
5211
5301
  StencilOperation: [ , "keep", "zero", "replace", "invert", "increment-clamp", "decrement-clamp", "increment-wrap", "decrement-wrap" ],
5212
5302
  StorageTextureAccess: [ , , "write-only", "read-only", "read-write" ],
5213
5303
  StoreOp: [ , "store", "discard" ],
5304
+ SubgroupMatrixComponentType: [ , "f32", "f16", "u32", "i32", "u8", "i8" ],
5214
5305
  SurfaceGetCurrentTextureStatus: [ , "success-optimal", "success-suboptimal", "timeout", "outdated", "lost", "error" ],
5215
5306
  TextureAspect: [ , "all", "stencil-only", "depth-only" ],
5216
5307
  TextureDimension: [ , "1d", "2d", "3d" ],
@@ -5220,7 +5311,7 @@ var WebGPU = {
5220
5311
  ToneMappingMode: [ , "standard", "extended" ],
5221
5312
  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" ],
5222
5313
  VertexStepMode: [ , "vertex", "instance" ],
5223
- 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" ]
5314
+ 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" ]
5224
5315
  };
5225
5316
 
5226
5317
  var _emwgpuBufferDestroy = bufferPtr => {
@@ -5342,7 +5433,17 @@ function _fd_close(fd) {
5342
5433
  var ptr = HEAPU32[((iov) >> 2)];
5343
5434
  var len = HEAPU32[(((iov) + (4)) >> 2)];
5344
5435
  iov += 8;
5345
- var curr = FS.read(stream, HEAP8, ptr, len, offset);
5436
+ try {
5437
+ var curr = FS.read(stream, HEAP8, ptr, len, offset);
5438
+ } catch (e) {
5439
+ // On a non-blocking stream a subsequent read may would-block after we
5440
+ // already gathered data. POSIX readv is a single gather-read: return
5441
+ // what we have rather than failing the whole call.
5442
+ if (ret > 0 && e instanceof FS.ErrnoError && (e.errno == 6 || e.errno == 6)) {
5443
+ break;
5444
+ }
5445
+ throw e;
5446
+ }
5346
5447
  if (curr < 0) return -1;
5347
5448
  ret += curr;
5348
5449
  if (curr < len) break;
@@ -5384,23 +5485,27 @@ function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
5384
5485
  }
5385
5486
 
5386
5487
  /** @param {number=} offset */ var doWritev = (stream, iov, iovcnt, offset) => {
5387
- var ret = 0;
5388
- for (var i = 0; i < iovcnt; i++) {
5488
+ // Gather all iovecs into one contiguous buffer and issue a single
5489
+ // FS.write, matching POSIX writev's single gather-write semantics (as
5490
+ // __syscall_sendmsg already does). Per-iovec writes fragment a stream
5491
+ // socket send into multiple segments, breaking stream byte semantics.
5492
+ if (iovcnt == 1) {
5493
+ // Single iovec: write directly from HEAP8, no gather buffer needed.
5494
+ return FS.write(stream, HEAP8, HEAPU32[((iov) >> 2)], HEAPU32[(((iov) + (4)) >> 2)], offset);
5495
+ }
5496
+ var total = 0;
5497
+ for (var i = 0, p = iov; i < iovcnt; i++, p += 8) {
5498
+ total += HEAPU32[(((p) + (4)) >> 2)];
5499
+ }
5500
+ var view = new Uint8Array(total);
5501
+ var voff = 0;
5502
+ for (var i = 0; i < iovcnt; i++, iov += 8) {
5389
5503
  var ptr = HEAPU32[((iov) >> 2)];
5390
5504
  var len = HEAPU32[(((iov) + (4)) >> 2)];
5391
- iov += 8;
5392
- var curr = FS.write(stream, HEAP8, ptr, len, offset);
5393
- if (curr < 0) return -1;
5394
- ret += curr;
5395
- if (curr < len) {
5396
- // No more space to write.
5397
- break;
5398
- }
5399
- if (typeof offset != "undefined") {
5400
- offset += curr;
5401
- }
5505
+ view.set(HEAPU8.subarray(ptr, ptr + len), voff);
5506
+ voff += len;
5402
5507
  }
5403
- return ret;
5508
+ return FS.write(stream, view, 0, total, offset);
5404
5509
  };
5405
5510
 
5406
5511
  function _fd_write(fd, iov, iovcnt, pnum) {
@@ -6093,6 +6198,8 @@ var colorChannelsInGlTextureFormat = format => {
6093
6198
  return colorChannels[format - 6402] || 1;
6094
6199
  };
6095
6200
 
6201
+ /** @type {!Uint16Array} */ var HEAPU16;
6202
+
6096
6203
  var heapObjectForWebGLType = type => {
6097
6204
  // Micro-optimization for size: Subtract lowest GL enum number (0x1400/* GL_BYTE */) from type to compare
6098
6205
  // smaller values for the heap, for shorter generated code size.
@@ -6362,18 +6469,19 @@ registerPreMainLoop(() => GL.newRenderingFrameStarted());
6362
6469
  // but before the wasm module is created.
6363
6470
  {
6364
6471
  // Begin ATMODULES hooks
6365
- if (Module["preloadPlugins"]) preloadPlugins = Module["preloadPlugins"];
6366
6472
  if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
6367
6473
  if (Module["print"]) out = Module["print"];
6368
6474
  if (Module["printErr"]) err = Module["printErr"];
6369
- if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
6370
6475
  // End ATMODULES hooks
6371
6476
  if (Module["arguments"]) programArgs = Module["arguments"];
6372
6477
  if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
6373
- if (Module["preInit"]) {
6374
- if (typeof Module["preInit"] == "function") Module["preInit"] = [ Module["preInit"] ];
6375
- while (Module["preInit"].length > 0) {
6376
- Module["preInit"].shift()();
6478
+ var preInit = Module["preInit"];
6479
+ if (preInit) {
6480
+ if (typeof preInit == "function") Module["preInit"] = preInit = [ preInit ];
6481
+ // Written as a loop so that preInit functions that themselves add more
6482
+ // preInit functions. Is this actually needed?
6483
+ while (preInit.length > 0) {
6484
+ preInit.shift()();
6377
6485
  }
6378
6486
  }
6379
6487
  }
@@ -6404,7 +6512,7 @@ Module["FS_createLazyFile"] = FS_createLazyFile;
6404
6512
  // End JS library exports
6405
6513
  // end include: postlibrary.js
6406
6514
  var ASM_CONSTS = {
6407
- 751048: () => {
6515
+ 754808: () => {
6408
6516
  specialHTMLTargets["#canvas"] = Module.canvas;
6409
6517
  }
6410
6518
  };
@@ -6554,7 +6662,7 @@ function JsWrapErrorListenerInternal(code, message) {
6554
6662
  }
6555
6663
 
6556
6664
  // Imports from the Wasm binary.
6557
- 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;
6665
+ 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;
6558
6666
 
6559
6667
  function assignWasmExports(wasmExports) {
6560
6668
  _free = Module["_free"] = wasmExports["Vb"];
@@ -6664,7 +6772,6 @@ function assignWasmExports(wasmExports) {
6664
6772
  dynCall_iiiijij = wasmExports["dynCall_iiiijij"];
6665
6773
  dynCall_viji = wasmExports["dynCall_viji"];
6666
6774
  dynCall_viijii = wasmExports["dynCall_viijii"];
6667
- dynCall_ijj = wasmExports["dynCall_ijj"];
6668
6775
  dynCall_jjj = wasmExports["dynCall_jjj"];
6669
6776
  dynCall_iiiijj = wasmExports["dynCall_iiiijj"];
6670
6777
  dynCall_viijj = wasmExports["dynCall_viijj"];
@@ -6841,37 +6948,22 @@ var wasmImports = {
6841
6948
  // include: postamble.js
6842
6949
  // === Auto-generated postamble setup entry stuff ===
6843
6950
  async function run() {
6844
- if (runDependencies > 0) {
6845
- await new Promise(resolve => dependenciesFulfilled = resolve);
6846
- }
6847
6951
  preRun();
6848
- // a preRun added a dependency, run will be called later
6849
- if (runDependencies > 0) {
6850
- await new Promise(resolve => dependenciesFulfilled = resolve);
6952
+ if (runDependencies) {
6953
+ await resolveRunDependencies();
6851
6954
  }
6852
- function doRun() {
6853
- // run may have just been called through dependencies being fulfilled just in this very frame,
6854
- // or while the async setStatus time below was happening
6855
- Module["calledRun"] = true;
6856
- if (ABORT) return;
6857
- initRuntime();
6858
- Module["onRuntimeInitialized"]?.();
6859
- postRun();
6860
- }
6861
- if (Module["setStatus"]) {
6862
- Module["setStatus"]("Running...");
6863
- // Yield the main thread to allow the browser to paint "Running...", then clear
6864
- // the status text after the synchronous doRun() completes.
6865
- await new Promise(resolve => {
6866
- setTimeout(() => {
6867
- setTimeout(() => Module["setStatus"](""), 1);
6868
- doRun();
6869
- resolve();
6870
- }, 1);
6871
- });
6872
- } else {
6873
- doRun();
6955
+ var setStatus = Module["setStatus"];
6956
+ if (setStatus) {
6957
+ setStatus("Running...");
6958
+ // Yield to the event loop to allow the browser to paint "Running..."
6959
+ await new Promise(resolve => setTimeout(resolve, 1));
6960
+ // Then we want to clear the status text, but only after the rest of this function runs.
6961
+ setTimeout(setStatus, 1, "");
6874
6962
  }
6963
+ if (ABORT) return;
6964
+ initRuntime();
6965
+ Module["onRuntimeInitialized"]?.();
6966
+ postRun();
6875
6967
  }
6876
6968
 
6877
6969
  var wasmExports;