@mediapipe/tasks-vision 1.0.1 → 1.1.0-rc.20260916

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);
@@ -1080,7 +1044,7 @@ var initRandomFill = () => {
1080
1044
  // This block is not needed on v19+ since crypto.getRandomValues is builtin
1081
1045
  if (ENVIRONMENT_IS_NODE) {
1082
1046
  var nodeCrypto = require("node:crypto");
1083
- return view => nodeCrypto.randomFillSync(view);
1047
+ return view => (nodeCrypto.randomFillSync(view), 0);
1084
1048
  }
1085
1049
  return view => (crypto.getRandomValues(view), 0);
1086
1050
  };
@@ -1142,7 +1106,13 @@ var PATH_FS = {
1142
1106
 
1143
1107
  var UTF8Decoder = new TextDecoder;
1144
1108
 
1145
- var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
1109
+ /**
1110
+ * heapOrArray is either a regular array, or a JavaScript typed array view.
1111
+ * @param {number} idx
1112
+ * @param {number=} maxBytesToRead
1113
+ * @param {boolean=} ignoreNul
1114
+ * @return {number}
1115
+ */ var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
1146
1116
  var maxIdx = idx + maxBytesToRead;
1147
1117
  if (ignoreNul) return maxIdx;
1148
1118
  // TextDecoder needs to know the byte length in advance, it doesn't stop on
@@ -1405,6 +1375,8 @@ var TTY = {
1405
1375
  }
1406
1376
  };
1407
1377
 
1378
+ /** @type {!Uint8Array} */ var HEAPU8;
1379
+
1408
1380
  var zeroMemory = (ptr, size) => HEAPU8.fill(0, ptr, ptr + size);
1409
1381
 
1410
1382
  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
@@ -1766,23 +1738,26 @@ var FS_createDataFile = (...args) => FS.createDataFile(...args);
1766
1738
 
1767
1739
  var getUniqueRunDependency = id => id;
1768
1740
 
1741
+ var dependenciesPromise = null;
1742
+
1743
+ var resolveRunDependencies = async () => dependenciesPromise;
1744
+
1769
1745
  var runDependencies = 0;
1770
1746
 
1771
- var dependenciesFulfilled = null;
1747
+ var dependenciesPromiseResolve = null;
1772
1748
 
1773
1749
  var removeRunDependency = id => {
1774
1750
  runDependencies--;
1775
1751
  Module["monitorRunDependencies"]?.(runDependencies);
1776
- if (runDependencies == 0) {
1777
- if (dependenciesFulfilled) {
1778
- var callback = dependenciesFulfilled;
1779
- dependenciesFulfilled = null;
1780
- callback();
1781
- }
1752
+ if (!runDependencies) {
1753
+ dependenciesPromiseResolve();
1782
1754
  }
1783
1755
  };
1784
1756
 
1785
1757
  var addRunDependency = id => {
1758
+ if (!runDependencies) {
1759
+ dependenciesPromise = new Promise(resolve => dependenciesPromiseResolve = resolve);
1760
+ }
1786
1761
  runDependencies++;
1787
1762
  Module["monitorRunDependencies"]?.(runDependencies);
1788
1763
  };
@@ -1916,6 +1891,53 @@ var FS = {
1916
1891
  get isDevice() {
1917
1892
  return FS.isChrdev(this.mode);
1918
1893
  }
1894
+ // The per-inode readiness wait-queue. The node carries a Set of listener
1895
+ // entries {cb}; producers (SOCKFS, PIPEFS) call notifyListeners on a
1896
+ // readiness transition, and poll()/epoll consume it. It lives on the node
1897
+ // (not the fd) so dup'd fds share one queue. Only nodes that derive real
1898
+ // readiness (sockets, pipes, and an epoll's own node) ever use this -
1899
+ // always-ready types (regular files, ttys) never register or notify.
1900
+ addListener(cb, exclusive = false) {
1901
+ var entry = {
1902
+ cb,
1903
+ exclusive
1904
+ };
1905
+ var listeners = (this.listeners ??= new Set);
1906
+ listeners.add(entry);
1907
+ return {
1908
+ listeners,
1909
+ entry
1910
+ };
1911
+ }
1912
+ notifyListeners(flags) {
1913
+ // Iterates the set without copying, which is safe ONLY under a
1914
+ // load-bearing contract that every internal listener must honour:
1915
+ // 1. A listener must not run user code synchronously (a poll waiter only
1916
+ // resolves a Promise; an epoll registration only re-lists +
1917
+ // re-notifies; the epoll callback only schedules a tick). User code
1918
+ // runs on a later tick, never inside this loop.
1919
+ // 2. A listener may delete entries only from ITS OWN waiter, never from
1920
+ // a sibling node's set that may be mid-iteration. (Deleting an entry
1921
+ // of the set being iterated here is fine - a Set tolerates removal of
1922
+ // a not-yet-visited entry mid-iteration; mutating a *different* node's
1923
+ // set is fine because that set is not being iterated.)
1924
+ // Violating either gives silently skipped wakeups that are near-impossible
1925
+ // to reproduce. Any new producer/listener must preserve it.
1926
+ if (!this.listeners) return;
1927
+ // Fire every non-exclusive listener. Among EPOLLEXCLUSIVE registrations
1928
+ // (one fd watched by several epolls) wake only one, rotating round-robin
1929
+ // per node, to avoid a thundering herd. (Only epoll registrations are ever
1930
+ // exclusive; poll waiters and a node's own consumers are not.)
1931
+ var excl;
1932
+ for (var entry of this.listeners) {
1933
+ if (entry.exclusive) (excl ||= []).push(entry); else entry.cb(flags);
1934
+ }
1935
+ if (excl) {
1936
+ var i = (this.exclTurn || 0) % excl.length;
1937
+ this.exclTurn = i + 1;
1938
+ excl[i].cb(flags);
1939
+ }
1940
+ }
1919
1941
  },
1920
1942
  lookupPath(path, opts = {}) {
1921
1943
  if (!path) {
@@ -2461,6 +2483,27 @@ var FS = {
2461
2483
  }
2462
2484
  return parent.node_ops.symlink(parent, newname, oldpath);
2463
2485
  },
2486
+ link(oldpath, newpath, flags) {
2487
+ var lookup = FS.lookupPath(newpath, {
2488
+ parent: true
2489
+ });
2490
+ var parent = lookup.node;
2491
+ if (!parent) {
2492
+ throw new FS.ErrnoError(44);
2493
+ }
2494
+ var newname = PATH.basename(newpath);
2495
+ var errCode = FS.mayCreate(parent, newname);
2496
+ if (errCode) {
2497
+ throw new FS.ErrnoError(errCode);
2498
+ }
2499
+ // Hardlinks are only supported by filesystem backends that provide a
2500
+ // `link` node op (e.g. NODERAWFS backed by the host). NODEFS omits it:
2501
+ // a host hardlink cannot be confined to the mount root.
2502
+ if (!parent.node_ops.link) {
2503
+ throw new FS.ErrnoError(34);
2504
+ }
2505
+ return parent.node_ops.link(parent, newname, oldpath, flags);
2506
+ },
2464
2507
  rename(old_path, new_path) {
2465
2508
  var old_dirname = PATH.dirname(old_path);
2466
2509
  var new_dirname = PATH.dirname(new_path);
@@ -2718,15 +2761,14 @@ var FS = {
2718
2761
  }
2719
2762
  FS.doTruncate(stream, stream.node, len);
2720
2763
  },
2721
- utime(path, atime, mtime) {
2764
+ utime(path, atime, mtime, dontFollow) {
2722
2765
  var lookup = FS.lookupPath(path, {
2723
- follow: true
2766
+ follow: !dontFollow
2724
2767
  });
2725
- var node = lookup.node;
2726
- var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
2727
- setattr(node, {
2768
+ FS.doSetAttr(null, lookup.node, {
2728
2769
  atime,
2729
- mtime
2770
+ mtime,
2771
+ dontFollow
2730
2772
  });
2731
2773
  },
2732
2774
  open(path, flags, mode = 438) {
@@ -2828,6 +2870,11 @@ var FS = {
2828
2870
  }
2829
2871
  if (stream.getdents) stream.getdents = null;
2830
2872
  // free readdir state
2873
+ // The fd is going away: wake anything waiting on it (poll/epoll) with
2874
+ // POLLNVAL so a blocking wait unblocks and an epoll registration is evicted
2875
+ // on its next derive. Only sockets/pipes/epoll ever carry a wait-queue, so
2876
+ // for every other stream (incl. nodeless noderawfs stdio) this is a no-op.
2877
+ stream.node?.notifyListeners(32);
2831
2878
  try {
2832
2879
  if (stream.stream_ops.close) {
2833
2880
  stream.stream_ops.close(stream);
@@ -3295,7 +3342,7 @@ var FS = {
3295
3342
  var xhr = new XMLHttpRequest;
3296
3343
  xhr.open("HEAD", url, false);
3297
3344
  xhr.send(null);
3298
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status);
3345
+ if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`);
3299
3346
  var datalength = Number(xhr.getResponseHeader("Content-length"));
3300
3347
  var header;
3301
3348
  var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
@@ -3310,14 +3357,14 @@ var FS = {
3310
3357
  // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
3311
3358
  var xhr = new XMLHttpRequest;
3312
3359
  xhr.open("GET", url, false);
3313
- if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
3360
+ if (datalength !== chunkSize) xhr.setRequestHeader("Range", `bytes=${from}-${to}`);
3314
3361
  // Some hints to the browser that we want binary data.
3315
3362
  xhr.responseType = "arraybuffer";
3316
3363
  if (xhr.overrideMimeType) {
3317
3364
  xhr.overrideMimeType("text/plain; charset=x-user-defined");
3318
3365
  }
3319
3366
  xhr.send(null);
3320
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status);
3367
+ if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`);
3321
3368
  if (xhr.response !== undefined) {
3322
3369
  return new Uint8Array(/** @type{Array<number>} */ (xhr.response || []));
3323
3370
  }
@@ -3536,7 +3583,7 @@ var SYSCALLS = {
3536
3583
  // MAP_PRIVATE calls need not to be synced back to underlying fs
3537
3584
  return 0;
3538
3585
  }
3539
- var buffer = HEAPU8.slice(addr, addr + len);
3586
+ var buffer = HEAPU8.subarray(addr, addr + len);
3540
3587
  FS.msync(stream, buffer, offset, len, flags);
3541
3588
  },
3542
3589
  getStreamFromFD(fd) {
@@ -3598,6 +3645,8 @@ var syscallGetVarargI = () => {
3598
3645
 
3599
3646
  var syscallGetVarargP = syscallGetVarargI;
3600
3647
 
3648
+ /** @type {!Int16Array} */ var HEAP16;
3649
+
3601
3650
  function ___syscall_fcntl64(fd, cmd, varargs) {
3602
3651
  SYSCALLS.varargs = varargs;
3603
3652
  try {
@@ -3871,12 +3920,12 @@ var registeredTypes = {};
3871
3920
 
3872
3921
  var typeDependencies = {};
3873
3922
 
3874
- var BindingError = class BindingError extends Error {
3923
+ class BindingError extends Error {
3875
3924
  constructor(message) {
3876
3925
  super(message);
3877
3926
  this.name = "BindingError";
3878
3927
  }
3879
- };
3928
+ }
3880
3929
 
3881
3930
  var throwBindingError = message => {
3882
3931
  throw new BindingError(message);
@@ -3988,6 +4037,10 @@ var EmValType = {
3988
4037
 
3989
4038
  var __embind_register_emval = rawType => registerType(rawType, EmValType);
3990
4039
 
4040
+ /** @type {!Float32Array} */ var HEAPF32;
4041
+
4042
+ /** @type {!Float64Array} */ var HEAPF64;
4043
+
3991
4044
  var floatReadValueFromPointer = (name, width) => {
3992
4045
  switch (width) {
3993
4046
  case 4:
@@ -4016,6 +4069,8 @@ var __embind_register_float = (rawType, name, size) => {
4016
4069
  });
4017
4070
  };
4018
4071
 
4072
+ /** @type {!Uint16Array} */ var HEAPU16;
4073
+
4019
4074
  var integerReadValueFromPointer = (name, width, signed) => {
4020
4075
  // integers are quite common, so generate very specialized functions
4021
4076
  switch (width) {
@@ -4148,9 +4203,7 @@ var UTF16ToString = (ptr, maxBytesToRead, ignoreNul) => {
4148
4203
  return UTF16Decoder.decode(HEAPU16.subarray(idx, endIdx));
4149
4204
  };
4150
4205
 
4151
- var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
4152
- // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
4153
- maxBytesToWrite ??= 2147483647;
4206
+ var stringToUTF16 = (str, outPtr, maxBytesToWrite = 2147483647) => {
4154
4207
  if (maxBytesToWrite < 2) return 0;
4155
4208
  maxBytesToWrite -= 2;
4156
4209
  // Null terminator.
@@ -4183,9 +4236,7 @@ var UTF32ToString = (ptr, maxBytesToRead, ignoreNul) => {
4183
4236
  return str;
4184
4237
  };
4185
4238
 
4186
- var stringToUTF32 = (str, outPtr, maxBytesToWrite) => {
4187
- // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
4188
- maxBytesToWrite ??= 2147483647;
4239
+ var stringToUTF32 = (str, outPtr, maxBytesToWrite = 2147483647) => {
4189
4240
  if (maxBytesToWrite < 4) return 0;
4190
4241
  var startPtr = outPtr;
4191
4242
  var endPtr = startPtr + maxBytesToWrite - 4;
@@ -4426,6 +4477,9 @@ var __emval_typeof = handle => {
4426
4477
  function __gmtime_js(time_low, time_high, tmPtr) {
4427
4478
  var time = convertI32PairToI53Checked(time_low, time_high);
4428
4479
  var date = new Date(time * 1e3);
4480
+ if (isNaN(date.getTime())) {
4481
+ return 1;
4482
+ }
4429
4483
  HEAP32[((tmPtr) >> 2)] = date.getUTCSeconds();
4430
4484
  HEAP32[(((tmPtr) + (4)) >> 2)] = date.getUTCMinutes();
4431
4485
  HEAP32[(((tmPtr) + (8)) >> 2)] = date.getUTCHours();
@@ -4436,6 +4490,7 @@ function __gmtime_js(time_low, time_high, tmPtr) {
4436
4490
  var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
4437
4491
  var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0;
4438
4492
  HEAP32[(((tmPtr) + (28)) >> 2)] = yday;
4493
+ return 0;
4439
4494
  }
4440
4495
 
4441
4496
  var isLeapYear = year => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
@@ -4455,6 +4510,9 @@ var ydayFromDate = date => {
4455
4510
  function __localtime_js(time_low, time_high, tmPtr) {
4456
4511
  var time = convertI32PairToI53Checked(time_low, time_high);
4457
4512
  var date = new Date(time * 1e3);
4513
+ if (isNaN(date.getTime())) {
4514
+ return 1;
4515
+ }
4458
4516
  HEAP32[((tmPtr) >> 2)] = date.getSeconds();
4459
4517
  HEAP32[(((tmPtr) + (4)) >> 2)] = date.getMinutes();
4460
4518
  HEAP32[(((tmPtr) + (8)) >> 2)] = date.getHours();
@@ -4471,6 +4529,7 @@ function __localtime_js(time_low, time_high, tmPtr) {
4471
4529
  var winterOffset = start.getTimezoneOffset();
4472
4530
  var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;
4473
4531
  HEAP32[(((tmPtr) + (32)) >> 2)] = dst;
4532
+ return 0;
4474
4533
  }
4475
4534
 
4476
4535
  var setTempRet0 = val => __emscripten_tempret_set(val);
@@ -4493,13 +4552,17 @@ var __mktime_js = function(tmPtr) {
4493
4552
  // DST is in December in South
4494
4553
  if (dst < 0) {
4495
4554
  // Attention: some regions don't have DST at all.
4496
- HEAP32[(((tmPtr) + (32)) >> 2)] = Number(summerOffset != winterOffset && dstOffset == guessedOffset);
4555
+ dst = Number(summerOffset != winterOffset && dstOffset == guessedOffset);
4497
4556
  } else if ((dst > 0) != (dstOffset == guessedOffset)) {
4498
4557
  var nonDstOffset = Math.max(winterOffset, summerOffset);
4499
4558
  var trueOffset = dst > 0 ? dstOffset : nonDstOffset;
4500
4559
  // Don't try setMinutes(date.getMinutes() + ...) -- it's messed up.
4501
4560
  date.setTime(date.getTime() + (trueOffset - guessedOffset) * 6e4);
4561
+ if (isNaN(date.getTime())) {
4562
+ return -1;
4563
+ }
4502
4564
  }
4565
+ HEAP32[(((tmPtr) + (32)) >> 2)] = dst;
4503
4566
  HEAP32[(((tmPtr) + (24)) >> 2)] = date.getDay();
4504
4567
  var yday = ydayFromDate(date) | 0;
4505
4568
  HEAP32[(((tmPtr) + (28)) >> 2)] = yday;
@@ -4805,7 +4868,7 @@ var _emscripten_stack_unwind_buffer = (addr, buffer, count) => {
4805
4868
  ++offset;
4806
4869
  }
4807
4870
  for (var i = 0; i < count && stack[i + offset]; ++i) {
4808
- HEAP32[(((buffer) + (i * 4)) >> 2)] = convertFrameToPC(stack[i + offset]);
4871
+ HEAPU32[(((buffer) + (i * 4)) >> 2)] = convertFrameToPC(stack[i + offset]);
4809
4872
  }
4810
4873
  return i;
4811
4874
  };
@@ -5200,7 +5263,7 @@ var webglPowerPreferences = [ "default", "low-power", "high-performance" ];
5200
5263
  /** @type {Object} */ var specialHTMLTargets = [ 0, globalThis.document ?? 0, globalThis.window ?? 0 ];
5201
5264
 
5202
5265
  var findEventTarget = target => {
5203
- // The sensible "default" target varies between events, but use window as the default
5266
+ // The sensible 'default' target varies between events, but use window as the default
5204
5267
  // since DOM events mostly can default to that. Specific callback registrations
5205
5268
  // override their own defaults.
5206
5269
  if (!target) return window;
@@ -5232,6 +5295,7 @@ var _emscripten_webgl_do_create_context = (target, attributes) => {
5232
5295
  "preserveDrawingBuffer": !!HEAP8[attributes + 5],
5233
5296
  "powerPreference": webglPowerPreferences[powerPreference],
5234
5297
  "failIfMajorPerformanceCaveat": !!HEAP8[attributes + 12],
5298
+ "desynchronized": !!HEAP8[attributes + 33],
5235
5299
  // The following are not predefined WebGL context attributes in the WebGL specification, so the property names can be minified by Closure.
5236
5300
  majorVersion: HEAP32[attr32 + (16 >> 2)],
5237
5301
  minorVersion: HEAP32[attr32 + (20 >> 2)],
@@ -5273,6 +5337,7 @@ var _emscripten_webgl_get_context_attributes = (c, a) => {
5273
5337
  var power = t["powerPreference"] && webglPowerPreferences.indexOf(t["powerPreference"]);
5274
5338
  HEAP32[(((a) + (8)) >> 2)] = power;
5275
5339
  HEAP8[(a) + (12)] = t.failIfMajorPerformanceCaveat;
5340
+ HEAP8[(a) + (33)] = t.desynchronized;
5276
5341
  HEAP32[(((a) + (16)) >> 2)] = c.version;
5277
5342
  HEAP32[(((a) + (20)) >> 2)] = 0;
5278
5343
  HEAP8[(a) + (24)] = c.attributes.enableExtensionsByDefault;
@@ -5777,6 +5842,28 @@ var WebGPU = {
5777
5842
  HEAP32[(((infoStruct) + (40)) >> 2)] = adapterType;
5778
5843
  HEAPU32[(((infoStruct) + (44)) >> 2)] = 0;
5779
5844
  HEAPU32[(((infoStruct) + (48)) >> 2)] = 0;
5845
+ WebGPU.iterateExtensions(infoStruct, {
5846
+ 327739: ext => {
5847
+ let configCount = 0;
5848
+ let configsPtr = 0;
5849
+ if (info.subgroupMatrixConfigs) {
5850
+ configCount = info.subgroupMatrixConfigs.length;
5851
+ configsPtr = _malloc(configCount * 20);
5852
+ for (const [i, cfg] of info.subgroupMatrixConfigs.entries()) {
5853
+ const ptr = configsPtr + i * 20;
5854
+ const componentType = WebGPU.SubgroupMatrixComponentType.indexOf(cfg.componentType);
5855
+ const resultComponentType = WebGPU.SubgroupMatrixComponentType.indexOf(cfg.resultComponentType);
5856
+ HEAP32[((ptr) >> 2)] = componentType;
5857
+ HEAP32[(((ptr) + (4)) >> 2)] = resultComponentType;
5858
+ HEAPU32[(((ptr) + (8)) >> 2)] = cfg.M;
5859
+ HEAPU32[(((ptr) + (12)) >> 2)] = cfg.N;
5860
+ HEAPU32[(((ptr) + (16)) >> 2)] = cfg.K;
5861
+ }
5862
+ }
5863
+ HEAPU32[(((ext) + (12)) >> 2)] = configsPtr;
5864
+ HEAPU32[(((ext) + (8)) >> 2)] = configCount;
5865
+ }
5866
+ });
5780
5867
  },
5781
5868
  AddressMode: [ , "clamp-to-edge", "repeat", "mirror-repeat" ],
5782
5869
  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" ],
@@ -5815,7 +5902,8 @@ var WebGPU = {
5815
5902
  22: "texture-component-swizzle",
5816
5903
  23: "subgroup-size-control",
5817
5904
  327692: "chromium-experimental-unorm16-texture-formats",
5818
- 327729: "chromium-experimental-multi-draw-indirect"
5905
+ 327729: "chromium-experimental-multi-draw-indirect",
5906
+ 327732: "chromium-experimental-subgroup-matrix"
5819
5907
  },
5820
5908
  FilterMode: [ , "nearest", "linear" ],
5821
5909
  FrontFace: [ , "ccw", "cw" ],
@@ -5833,6 +5921,7 @@ var WebGPU = {
5833
5921
  StencilOperation: [ , "keep", "zero", "replace", "invert", "increment-clamp", "decrement-clamp", "increment-wrap", "decrement-wrap" ],
5834
5922
  StorageTextureAccess: [ , , "write-only", "read-only", "read-write" ],
5835
5923
  StoreOp: [ , "store", "discard" ],
5924
+ SubgroupMatrixComponentType: [ , "f32", "f16", "u32", "i32", "u8", "i8" ],
5836
5925
  SurfaceGetCurrentTextureStatus: [ , "success-optimal", "success-suboptimal", "timeout", "outdated", "lost", "error" ],
5837
5926
  TextureAspect: [ , "all", "stencil-only", "depth-only" ],
5838
5927
  TextureDimension: [ , "1d", "2d", "3d" ],
@@ -5842,7 +5931,7 @@ var WebGPU = {
5842
5931
  ToneMappingMode: [ , "standard", "extended" ],
5843
5932
  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" ],
5844
5933
  VertexStepMode: [ , "vertex", "instance" ],
5845
- 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" ]
5934
+ 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" ]
5846
5935
  };
5847
5936
 
5848
5937
  var _emscripten_webgpu_get_device = () => {
@@ -6075,7 +6164,17 @@ function _fd_close(fd) {
6075
6164
  var ptr = HEAPU32[((iov) >> 2)];
6076
6165
  var len = HEAPU32[(((iov) + (4)) >> 2)];
6077
6166
  iov += 8;
6078
- var curr = FS.read(stream, HEAP8, ptr, len, offset);
6167
+ try {
6168
+ var curr = FS.read(stream, HEAP8, ptr, len, offset);
6169
+ } catch (e) {
6170
+ // On a non-blocking stream a subsequent read may would-block after we
6171
+ // already gathered data. POSIX readv is a single gather-read: return
6172
+ // what we have rather than failing the whole call.
6173
+ if (ret > 0 && e instanceof FS.ErrnoError && (e.errno == 6 || e.errno == 6)) {
6174
+ break;
6175
+ }
6176
+ throw e;
6177
+ }
6079
6178
  if (curr < 0) return -1;
6080
6179
  ret += curr;
6081
6180
  if (curr < len) break;
@@ -6117,23 +6216,27 @@ function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
6117
6216
  }
6118
6217
 
6119
6218
  /** @param {number=} offset */ var doWritev = (stream, iov, iovcnt, offset) => {
6120
- var ret = 0;
6121
- for (var i = 0; i < iovcnt; i++) {
6219
+ // Gather all iovecs into one contiguous buffer and issue a single
6220
+ // FS.write, matching POSIX writev's single gather-write semantics (as
6221
+ // __syscall_sendmsg already does). Per-iovec writes fragment a stream
6222
+ // socket send into multiple segments, breaking stream byte semantics.
6223
+ if (iovcnt == 1) {
6224
+ // Single iovec: write directly from HEAP8, no gather buffer needed.
6225
+ return FS.write(stream, HEAP8, HEAPU32[((iov) >> 2)], HEAPU32[(((iov) + (4)) >> 2)], offset);
6226
+ }
6227
+ var total = 0;
6228
+ for (var i = 0, p = iov; i < iovcnt; i++, p += 8) {
6229
+ total += HEAPU32[(((p) + (4)) >> 2)];
6230
+ }
6231
+ var view = new Uint8Array(total);
6232
+ var voff = 0;
6233
+ for (var i = 0; i < iovcnt; i++, iov += 8) {
6122
6234
  var ptr = HEAPU32[((iov) >> 2)];
6123
6235
  var len = HEAPU32[(((iov) + (4)) >> 2)];
6124
- iov += 8;
6125
- var curr = FS.write(stream, HEAP8, ptr, len, offset);
6126
- if (curr < 0) return -1;
6127
- ret += curr;
6128
- if (curr < len) {
6129
- // No more space to write.
6130
- break;
6131
- }
6132
- if (typeof offset != "undefined") {
6133
- offset += curr;
6134
- }
6236
+ view.set(HEAPU8.subarray(ptr, ptr + len), voff);
6237
+ voff += len;
6135
6238
  }
6136
- return ret;
6239
+ return FS.write(stream, view, 0, total, offset);
6137
6240
  };
6138
6241
 
6139
6242
  function _fd_write(fd, iov, iovcnt, pnum) {
@@ -8017,18 +8120,19 @@ for (/**@suppress{duplicate}*/ var i = 0; i <= 288; ++i) {
8017
8120
  // but before the wasm module is created.
8018
8121
  {
8019
8122
  // Begin ATMODULES hooks
8020
- if (Module["preloadPlugins"]) preloadPlugins = Module["preloadPlugins"];
8021
8123
  if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
8022
8124
  if (Module["print"]) out = Module["print"];
8023
8125
  if (Module["printErr"]) err = Module["printErr"];
8024
- if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
8025
8126
  // End ATMODULES hooks
8026
8127
  if (Module["arguments"]) programArgs = Module["arguments"];
8027
8128
  if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
8028
- if (Module["preInit"]) {
8029
- if (typeof Module["preInit"] == "function") Module["preInit"] = [ Module["preInit"] ];
8030
- while (Module["preInit"].length > 0) {
8031
- Module["preInit"].shift()();
8129
+ var preInit = Module["preInit"];
8130
+ if (preInit) {
8131
+ if (typeof preInit == "function") Module["preInit"] = preInit = [ preInit ];
8132
+ // Written as a loop so that preInit functions that themselves add more
8133
+ // preInit functions. Is this actually needed?
8134
+ while (preInit.length > 0) {
8135
+ preInit.shift()();
8032
8136
  }
8033
8137
  }
8034
8138
  }
@@ -8059,12 +8163,12 @@ Module["FS_createLazyFile"] = FS_createLazyFile;
8059
8163
  // End JS library exports
8060
8164
  // end include: postlibrary.js
8061
8165
  var ASM_CONSTS = {
8062
- 1516932: $0 => {
8166
+ 1513412: $0 => {
8063
8167
  const canvas = Emval.toValue($0);
8064
8168
  const context = canvas.getContext("webgpu");
8065
8169
  return WebGPU.importJsTexture(context.getCurrentTexture());
8066
8170
  },
8067
- 1517075: ($0, $1, $2, $3, $4) => {
8171
+ 1513555: ($0, $1, $2, $3, $4) => {
8068
8172
  const drawable = Emval.toValue($0);
8069
8173
  const device = WebGPU.getJsObject($1);
8070
8174
  const texture = WebGPU.getJsObject($2);
@@ -8076,7 +8180,7 @@ var ASM_CONSTS = {
8076
8180
  texture
8077
8181
  }, [ width, height ]);
8078
8182
  },
8079
- 1517334: ($0, $1, $2, $3) => {
8183
+ 1513814: ($0, $1, $2, $3) => {
8080
8184
  const sourceExtTex = Emval.toValue($0);
8081
8185
  const device = WebGPU.getJsObject($1);
8082
8186
  const sampler = WebGPU.getJsObject($2);
@@ -8093,29 +8197,29 @@ var ASM_CONSTS = {
8093
8197
  });
8094
8198
  return WebGPU.importJsBindGroup(bindGroup);
8095
8199
  },
8096
- 1517704: ($0, $1) => {
8200
+ 1514184: ($0, $1) => {
8097
8201
  const input = Emval.toValue($0);
8098
8202
  const output = Emval.toValue($1);
8099
8203
  const ctx = output.getContext("2d");
8100
8204
  ctx.drawImage(input, 0, 0, output.width, output.height);
8101
8205
  },
8102
- 1517869: ($0, $1) => {
8206
+ 1514349: ($0, $1) => {
8103
8207
  const inputArray = Emval.toValue($0);
8104
8208
  const output = Emval.toValue($1);
8105
8209
  const ctx = output.getContext("2d");
8106
8210
  const image_data = new ImageData(inputArray, output.width, output.height);
8107
8211
  ctx.putImageData(image_data, 0, 0);
8108
8212
  },
8109
- 1518093: ($0, $1) => {
8213
+ 1514573: ($0, $1) => {
8110
8214
  const input = Emval.toValue($0);
8111
8215
  const outputArray = Emval.toValue($1);
8112
8216
  const ctx = input.getContext("2d");
8113
8217
  const data = ctx.getImageData(0, 0, input.width, input.height);
8114
8218
  outputArray.set(data.data);
8115
8219
  },
8116
- 1518297: () => (typeof HTMLCanvasElement !== "undefined"),
8117
- 1518352: () => !!Module["preinitializedWebGPUDevice"],
8118
- 1518403: () => {
8220
+ 1514777: () => (typeof HTMLCanvasElement !== "undefined"),
8221
+ 1514832: () => !!Module["preinitializedWebGPUDevice"],
8222
+ 1514883: () => {
8119
8223
  specialHTMLTargets["#canvas"] = Module.canvas;
8120
8224
  }
8121
8225
  };
@@ -8375,7 +8479,7 @@ function JsWrapErrorListenerInternal(code, message) {
8375
8479
  }
8376
8480
 
8377
8481
  // Imports from the Wasm binary.
8378
- var _free, _malloc, _interactive_segmenter_create, _interactive_segmenter_set_image, _interactive_segmenter_segment, _interactive_segmenter_close, _wgpuDeviceAddRef, _addBoundTextureAsImageToStream, _attachImageListener, _attachImageVectorListener, _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, ___getTypeName, _emwgpuCreateBindGroup, _emwgpuCreateBindGroupLayout, _emwgpuCreateCommandBuffer, _emwgpuCreateCommandEncoder, _emwgpuCreateComputePassEncoder, _emwgpuCreateComputePipeline, _emwgpuCreateExternalTexture, _emwgpuCreatePipelineLayout, _emwgpuCreateQuerySet, _emwgpuCreateRenderBundle, _emwgpuCreateRenderBundleEncoder, _emwgpuCreateRenderPassEncoder, _emwgpuCreateRenderPipeline, _emwgpuCreateSampler, _emwgpuCreateSurface, _emwgpuCreateTexture, _emwgpuCreateTextureView, _emwgpuCreateAdapter, _emwgpuImportBuffer, _emwgpuCreateDevice, _emwgpuCreateQueue, _emwgpuCreateShaderModule, _emwgpuOnCreateComputePipelineCompleted, _emwgpuOnCreateRenderPipelineCompleted, _clearSubgraphs, _pushBinarySubgraph, _pushTextSubgraph, _changeBinaryGraph, _changeTextGraph, _processGl, _process, _bindTextureToCanvas, _requestShaderRefreshOnGraphChange, _waitUntilIdle, _closeGraph, _setAutoRenderToScreen, _emscripten_builtin_memalign, _memalign, __emscripten_tempret_set, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, dynCall_ji, dynCall_jii, dynCall_iiiijij, dynCall_vij, dynCall_viiji, dynCall_viji, dynCall_iiiji, dynCall_ijj, dynCall_jjj, dynCall_iiiijj, dynCall_viijj, dynCall_viiijjj, dynCall_viijii, 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;
8482
+ var _free, _malloc, _interactive_segmenter_create, _interactive_segmenter_set_image, _interactive_segmenter_segment, _interactive_segmenter_close, _wgpuDeviceAddRef, _addBoundTextureAsImageToStream, _attachImageListener, _attachImageVectorListener, _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, ___getTypeName, _emwgpuCreateBindGroup, _emwgpuCreateBindGroupLayout, _emwgpuCreateCommandBuffer, _emwgpuCreateCommandEncoder, _emwgpuCreateComputePassEncoder, _emwgpuCreateComputePipeline, _emwgpuCreateExternalTexture, _emwgpuCreatePipelineLayout, _emwgpuCreateQuerySet, _emwgpuCreateRenderBundle, _emwgpuCreateRenderBundleEncoder, _emwgpuCreateRenderPassEncoder, _emwgpuCreateRenderPipeline, _emwgpuCreateSampler, _emwgpuCreateSurface, _emwgpuCreateTexture, _emwgpuCreateTextureView, _emwgpuCreateAdapter, _emwgpuImportBuffer, _emwgpuCreateDevice, _emwgpuCreateQueue, _emwgpuCreateShaderModule, _emwgpuOnCreateComputePipelineCompleted, _emwgpuOnCreateRenderPipelineCompleted, _clearSubgraphs, _pushBinarySubgraph, _pushTextSubgraph, _changeBinaryGraph, _changeTextGraph, _processGl, _process, _bindTextureToCanvas, _requestShaderRefreshOnGraphChange, _waitUntilIdle, _closeGraph, _setAutoRenderToScreen, _emscripten_builtin_memalign, _memalign, __emscripten_tempret_set, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, dynCall_ji, dynCall_jii, dynCall_iiiijij, dynCall_vij, dynCall_viiji, dynCall_viji, dynCall_iiiji, dynCall_jjj, dynCall_iiiijj, dynCall_viijj, dynCall_viiijjj, dynCall_viijii, 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;
8379
8483
 
8380
8484
  function assignWasmExports(wasmExports) {
8381
8485
  _free = Module["_free"] = wasmExports["Wd"];
@@ -8499,7 +8603,6 @@ function assignWasmExports(wasmExports) {
8499
8603
  dynCall_viiji = wasmExports["dynCall_viiji"];
8500
8604
  dynCall_viji = wasmExports["dynCall_viji"];
8501
8605
  dynCall_iiiji = wasmExports["dynCall_iiiji"];
8502
- dynCall_ijj = wasmExports["dynCall_ijj"];
8503
8606
  dynCall_jjj = wasmExports["dynCall_jjj"];
8504
8607
  dynCall_iiiijj = wasmExports["dynCall_iiiijj"];
8505
8608
  dynCall_viijj = wasmExports["dynCall_viijj"];
@@ -8604,7 +8707,7 @@ var wasmImports = {
8604
8707
  /** @export */ wc: __embind_register_bool,
8605
8708
  /** @export */ vc: __embind_register_emval,
8606
8709
  /** @export */ ib: __embind_register_float,
8607
- /** @export */ J: __embind_register_integer,
8710
+ /** @export */ H: __embind_register_integer,
8608
8711
  /** @export */ q: __embind_register_memory_view,
8609
8712
  /** @export */ uc: __embind_register_std_string,
8610
8713
  /** @export */ Ma: __embind_register_std_wstring,
@@ -8673,8 +8776,8 @@ var wasmImports = {
8673
8776
  /** @export */ bb: _glBlendEquation,
8674
8777
  /** @export */ _b: _glBlendFunc,
8675
8778
  /** @export */ j: _glBufferData,
8676
- /** @export */ I: _glClear,
8677
- /** @export */ H: _glClearColor,
8779
+ /** @export */ O: _glClear,
8780
+ /** @export */ N: _glClearColor,
8678
8781
  /** @export */ ea: _glClientWaitSync,
8679
8782
  /** @export */ ha: _glColorMask,
8680
8783
  /** @export */ ab: _glCompileShader,
@@ -8696,7 +8799,7 @@ var wasmImports = {
8696
8799
  /** @export */ l: _glEnableVertexAttribArray,
8697
8800
  /** @export */ Ya: _glFenceSync,
8698
8801
  /** @export */ qa: _glFinish,
8699
- /** @export */ w: _glFlush,
8802
+ /** @export */ x: _glFlush,
8700
8803
  /** @export */ C: _glFramebufferTexture2D,
8701
8804
  /** @export */ Xa: _glFramebufferTextureLayer,
8702
8805
  /** @export */ r: _glGenBuffers,
@@ -8706,11 +8809,11 @@ var wasmImports = {
8706
8809
  /** @export */ Wa: _glGetAttribLocation,
8707
8810
  /** @export */ fa: _glGetError,
8708
8811
  /** @export */ Yb: _glGetFloatv,
8709
- /** @export */ x: _glGetIntegerv,
8812
+ /** @export */ w: _glGetIntegerv,
8710
8813
  /** @export */ Xb: _glGetProgramiv,
8711
8814
  /** @export */ Wb: _glGetShaderInfoLog,
8712
8815
  /** @export */ Vb: _glGetShaderiv,
8713
- /** @export */ O: _glGetString,
8816
+ /** @export */ M: _glGetString,
8714
8817
  /** @export */ Ub: _glGetUniformBlockIndex,
8715
8818
  /** @export */ d: _glGetUniformLocation,
8716
8819
  /** @export */ Tb: _glLineWidth,
@@ -8726,7 +8829,7 @@ var wasmImports = {
8726
8829
  /** @export */ Sb: _glTexStorage3D,
8727
8830
  /** @export */ X: _glTexSubImage2D,
8728
8831
  /** @export */ Rb: _glTexSubImage3D,
8729
- /** @export */ N: _glUniform1f,
8832
+ /** @export */ L: _glUniform1f,
8730
8833
  /** @export */ la: _glUniform1fv,
8731
8834
  /** @export */ e: _glUniform1i,
8732
8835
  /** @export */ W: _glUniform2f,
@@ -8754,7 +8857,7 @@ var wasmImports = {
8754
8857
  /** @export */ vb: _wgpuCommandEncoderCopyBufferToTexture,
8755
8858
  /** @export */ ub: _wgpuCommandEncoderCopyTextureToBuffer,
8756
8859
  /** @export */ tb: _wgpuCommandEncoderCopyTextureToTexture,
8757
- /** @export */ M: _wgpuCommandEncoderFinish,
8860
+ /** @export */ K: _wgpuCommandEncoderFinish,
8758
8861
  /** @export */ Da: _wgpuComputePassEncoderDispatchWorkgroups,
8759
8862
  /** @export */ Ca: _wgpuComputePassEncoderEnd,
8760
8863
  /** @export */ Ba: _wgpuComputePassEncoderSetBindGroup,
@@ -8762,13 +8865,13 @@ var wasmImports = {
8762
8865
  /** @export */ za: _wgpuComputePipelineGetBindGroupLayout,
8763
8866
  /** @export */ da: _wgpuDeviceCreateBindGroup,
8764
8867
  /** @export */ sb: _wgpuDeviceCreateBindGroupLayout,
8765
- /** @export */ L: _wgpuDeviceCreateCommandEncoder,
8868
+ /** @export */ J: _wgpuDeviceCreateCommandEncoder,
8766
8869
  /** @export */ rb: _wgpuDeviceCreateComputePipeline,
8767
8870
  /** @export */ qb: _wgpuDeviceCreatePipelineLayout,
8768
8871
  /** @export */ Ra: _wgpuDeviceCreateRenderPipeline,
8769
8872
  /** @export */ T: _wgpuDeviceCreateSampler,
8770
8873
  /** @export */ ca: _wgpuDeviceCreateTexture,
8771
- /** @export */ K: _wgpuQueueSubmit,
8874
+ /** @export */ I: _wgpuQueueSubmit,
8772
8875
  /** @export */ ka: _wgpuQueueWriteBuffer,
8773
8876
  /** @export */ pb: _wgpuQueueWriteTexture,
8774
8877
  /** @export */ ya: _wgpuRenderPassEncoderDraw,
@@ -8784,37 +8887,22 @@ var wasmImports = {
8784
8887
  // include: postamble.js
8785
8888
  // === Auto-generated postamble setup entry stuff ===
8786
8889
  async function run() {
8787
- if (runDependencies > 0) {
8788
- await new Promise(resolve => dependenciesFulfilled = resolve);
8789
- }
8790
8890
  preRun();
8791
- // a preRun added a dependency, run will be called later
8792
- if (runDependencies > 0) {
8793
- await new Promise(resolve => dependenciesFulfilled = resolve);
8794
- }
8795
- function doRun() {
8796
- // run may have just been called through dependencies being fulfilled just in this very frame,
8797
- // or while the async setStatus time below was happening
8798
- Module["calledRun"] = true;
8799
- if (ABORT) return;
8800
- initRuntime();
8801
- Module["onRuntimeInitialized"]?.();
8802
- postRun();
8803
- }
8804
- if (Module["setStatus"]) {
8805
- Module["setStatus"]("Running...");
8806
- // Yield the main thread to allow the browser to paint "Running...", then clear
8807
- // the status text after the synchronous doRun() completes.
8808
- await new Promise(resolve => {
8809
- setTimeout(() => {
8810
- setTimeout(() => Module["setStatus"](""), 1);
8811
- doRun();
8812
- resolve();
8813
- }, 1);
8814
- });
8815
- } else {
8816
- doRun();
8817
- }
8891
+ if (runDependencies) {
8892
+ await resolveRunDependencies();
8893
+ }
8894
+ var setStatus = Module["setStatus"];
8895
+ if (setStatus) {
8896
+ setStatus("Running...");
8897
+ // Yield to the event loop to allow the browser to paint "Running..."
8898
+ await new Promise(resolve => setTimeout(resolve, 1));
8899
+ // Then we want to clear the status text, but only after the rest of this function runs.
8900
+ setTimeout(setStatus, 1, "");
8901
+ }
8902
+ if (ABORT) return;
8903
+ initRuntime();
8904
+ Module["onRuntimeInitialized"]?.();
8905
+ postRun();
8818
8906
  }
8819
8907
 
8820
8908
  var wasmExports;