@ai-ecoverse/slicc-kernel 1.166.3 → 1.166.5

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.
@@ -1690,19 +1690,22 @@ var init_wasi_files = __esm({
1690
1690
  });
1691
1691
 
1692
1692
  // src/realm/sync-sab-wire.ts
1693
+ function copyWindow(out, window, chunk, at) {
1694
+ setBytes.call(out, bytesPart.call(window, 0, chunk), at);
1695
+ }
1693
1696
  function loadBlocked(header) {
1694
- return [capturedAtomics.load(header, SAB_I_BLOCKED), capturedAtomics.load(header, SAB_I_BLOCKED_HI)];
1697
+ return [sabLoad(header, SAB_I_BLOCKED), sabLoad(header, SAB_I_BLOCKED_HI)];
1695
1698
  }
1696
1699
  function storeBlocked(header, [low, high]) {
1697
- capturedAtomics.store(header, SAB_I_BLOCKED_HI, high);
1698
- capturedAtomics.store(header, SAB_I_BLOCKED, low);
1700
+ sabStore(header, SAB_I_BLOCKED_HI, high);
1701
+ sabStore(header, SAB_I_BLOCKED, low);
1699
1702
  }
1700
1703
  function loadU53(header, lo, hi) {
1701
- return (capturedAtomics.load(header, lo) >>> 0) + capturedAtomics.load(header, hi) * U32;
1704
+ return (sabLoad(header, lo) >>> 0) + sabLoad(header, hi) * U32;
1702
1705
  }
1703
1706
  function publishMemory(sab, bytes) {
1704
1707
  if (bytes > 0)
1705
- capturedAtomics.store(new capturedInt32Array(sab, 0, SAB_HEADER_I32), SAB_I_MEMORY, capturedMath.ceil(bytes / 65536));
1708
+ sabStore(new capturedInt32Array(sab, 0, SAB_HEADER_I32), SAB_I_MEMORY, capturedMath.ceil(bytes / 65536));
1706
1709
  }
1707
1710
  function decodeSabResult(status2, payload) {
1708
1711
  switch (status2) {
@@ -1712,14 +1715,14 @@ function decodeSabResult(status2, payload) {
1712
1715
  return { ok: true, kind: "void" };
1713
1716
  case SAB_STATUS_JSON: {
1714
1717
  try {
1715
- return { ok: true, kind: "json", json: capturedJSON.parse(decoder.decode(payload)) };
1718
+ return { ok: true, kind: "json", json: capturedJSON.parse(decodeText.call(decoder, payload)) };
1716
1719
  } catch {
1717
1720
  return { ok: false, errno: "EIO", message: "sync-sab: malformed json payload" };
1718
1721
  }
1719
1722
  }
1720
1723
  case SAB_STATUS_ERRNO: {
1721
1724
  try {
1722
- const parsed = capturedJSON.parse(decoder.decode(payload));
1725
+ const parsed = capturedJSON.parse(decodeText.call(decoder, payload));
1723
1726
  const errno2 = typeof parsed.errno === "string" && /^E[A-Z]+$|^EAI_[A-Z]+$/.test(parsed.errno) ? parsed.errno : "EIO";
1724
1727
  const message2 = capturedString(parsed.message ?? errno2);
1725
1728
  return {
@@ -1746,11 +1749,20 @@ function sabViews(sab) {
1746
1749
  window: new capturedUint8Array(sab, SAB_HEADER_BYTES)
1747
1750
  };
1748
1751
  }
1749
- var SAB_HEADER_I32, SAB_CLOCK_OFFSET, SAB_CLOCK_I64, SAB_HEADER_BYTES, SAB_I_STATE, SAB_I_SEQ, SAB_I_STATUS, SAB_I_TOTAL, SAB_I_CHUNK, SAB_I_OFFSET, SAB_I_REQ, SAB_I_PUB, SAB_I_SIGNALS, SAB_I_TIMERS, SAB_I_MEMORY, SAB_I_TOTAL_HI, SAB_I_OFFSET_HI, SAB_I_KILLED, SAB_I_ASYNC, SAB_I_STOP, SAB_I_BLOCKED, SAB_I_BLOCKED_HI, anyBlocked, U32, SAB_STATE_IDLE, SAB_STATE_PENDING, SAB_STATE_READY, SAB_STATUS_BYTES, SAB_STATUS_JSON, SAB_STATUS_VOID, SAB_STATUS_ERRNO, SAB_DEFAULT_WINDOW_BYTES, SAB_MIN_BYTES, SYNC_SAB_REQ_MSG, SYNC_SAB_NEXT_MSG, encoder, decoder;
1752
+ var atomicLoad, atomicStore, atomicWaitAsync, setBytes, bytesPart, decodeText, sabLoad, sabStore, sabWaitAsync, SAB_HEADER_I32, SAB_CLOCK_OFFSET, SAB_CLOCK_I64, SAB_HEADER_BYTES, SAB_I_STATE, SAB_I_SEQ, SAB_I_STATUS, SAB_I_TOTAL, SAB_I_CHUNK, SAB_I_OFFSET, SAB_I_REQ, SAB_I_PUB, SAB_I_SIGNALS, SAB_I_TIMERS, SAB_I_MEMORY, SAB_I_TOTAL_HI, SAB_I_OFFSET_HI, SAB_I_KILLED, SAB_I_ASYNC, SAB_I_STOP, SAB_I_BLOCKED, SAB_I_BLOCKED_HI, anyBlocked, U32, SAB_STATE_IDLE, SAB_STATE_PENDING, SAB_STATE_READY, SAB_STATUS_BYTES, SAB_STATUS_JSON, SAB_STATUS_VOID, SAB_STATUS_ERRNO, SAB_DEFAULT_WINDOW_BYTES, SAB_MIN_BYTES, SYNC_SAB_REQ_MSG, SYNC_SAB_NEXT_MSG, encoder, decoder;
1750
1753
  var init_sync_sab_wire = __esm({
1751
1754
  "src/realm/sync-sab-wire.ts"() {
1752
1755
  "use strict";
1753
1756
  init_captured_globals();
1757
+ atomicLoad = capturedAtomics.load;
1758
+ atomicStore = capturedAtomics.store;
1759
+ atomicWaitAsync = capturedAtomics.waitAsync;
1760
+ setBytes = capturedUint8Array.prototype.set;
1761
+ bytesPart = capturedUint8Array.prototype.subarray;
1762
+ decodeText = capturedTextDecoder.prototype.decode;
1763
+ sabLoad = (a, i) => atomicLoad(a, i);
1764
+ sabStore = (a, i, v) => atomicStore(a, i, v);
1765
+ sabWaitAsync = atomicWaitAsync;
1754
1766
  SAB_HEADER_I32 = 18;
1755
1767
  SAB_CLOCK_OFFSET = SAB_HEADER_I32 * 4;
1756
1768
  SAB_CLOCK_I64 = 3;
@@ -1993,9 +2005,9 @@ function useLocalClock(sab) {
1993
2005
  if (!local) return;
1994
2006
  localSab = sab;
1995
2007
  localStart = epochMicros();
1996
- const wait2 = (typed, index3, value2, timeout) => localWait(
1997
- () => rawWait(typed, index3, value2, timeout),
1998
- timeout !== 0 && capturedAtomics.load(typed, index3) === value2
2008
+ const wait2 = (typed3, index3, value2, timeout) => localWait(
2009
+ () => rawWait(typed3, index3, value2, timeout),
2010
+ timeout !== 0 && capturedAtomics.load(typed3, index3) === value2
1999
2011
  );
2000
2012
  capturedAtomics.wait = wait2;
2001
2013
  }
@@ -2186,7 +2198,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2186
2198
  const now = deps.now ?? (() => capturedperformance.now());
2187
2199
  let seq = 0;
2188
2200
  let typical = 0;
2189
- const ready = (id) => capturedAtomics.load(header, SAB_I_STATE) === SAB_STATE_READY && capturedAtomics.load(header, SAB_I_SEQ) === id;
2201
+ const ready = (id) => sabLoad(header, SAB_I_STATE) === SAB_STATE_READY && sabLoad(header, SAB_I_SEQ) === id;
2190
2202
  function spinUntil(id, until) {
2191
2203
  for (let stride = 0; stride < SPIN_STRIDES; stride++) {
2192
2204
  for (let i = 0; i < SPIN_STRIDE; i++) if (ready(id)) return true;
@@ -2204,7 +2216,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2204
2216
  return;
2205
2217
  }
2206
2218
  for (; ; ) {
2207
- const published = capturedAtomics.load(header, SAB_I_PUB);
2219
+ const published = sabLoad(header, SAB_I_PUB);
2208
2220
  if (ready(id)) {
2209
2221
  settled2(start2);
2210
2222
  return;
@@ -2215,7 +2227,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2215
2227
  }
2216
2228
  }
2217
2229
  return {
2218
- call(asked, timeoutMs2, label, given = []) {
2230
+ call(asked, timeoutMs2, label, given = [], sink) {
2219
2231
  if (deps.memory) publishMemory(sab, deps.memory());
2220
2232
  const { req, transfer } = exactBody(asked, given);
2221
2233
  const id = ++seq;
@@ -2223,10 +2235,10 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2223
2235
  let out = null;
2224
2236
  let status2 = 0;
2225
2237
  let offset = 0;
2226
- capturedAtomics.store(header, SAB_I_REQ, id);
2238
+ sabStore(header, SAB_I_REQ, id);
2227
2239
  try {
2228
2240
  for (; ; ) {
2229
- capturedAtomics.store(header, SAB_I_STATE, SAB_STATE_PENDING);
2241
+ sabStore(header, SAB_I_STATE, SAB_STATE_PENDING);
2230
2242
  const msg = offset === 0 ? { type: SYNC_SAB_REQ_MSG, id, req } : { type: SYNC_SAB_NEXT_MSG, id, offset };
2231
2243
  try {
2232
2244
  if (offset === 0 && transfer.length > 0) port3.postMessage(msg, transfer);
@@ -2236,28 +2248,34 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2236
2248
  }
2237
2249
  awaitReady(id, now() + timeoutMs2, label);
2238
2250
  const total = loadU53(header, SAB_I_TOTAL, SAB_I_TOTAL_HI);
2239
- const chunk = capturedAtomics.load(header, SAB_I_CHUNK);
2251
+ const chunk = sabLoad(header, SAB_I_CHUNK);
2240
2252
  const at = loadU53(header, SAB_I_OFFSET, SAB_I_OFFSET_HI);
2241
2253
  if (at !== offset || chunk < 0 || total < 0 || offset + chunk > total) {
2242
2254
  throw syncError("EIO", label);
2243
2255
  }
2244
2256
  if (out === null) {
2245
- status2 = capturedAtomics.load(header, SAB_I_STATUS);
2246
- out = new capturedUint8Array(total);
2257
+ status2 = sabLoad(header, SAB_I_STATUS);
2258
+ out = landing(status2, total, sink);
2247
2259
  }
2248
- out.set(window.subarray(0, chunk), offset);
2260
+ copyWindow(out, window, chunk, offset);
2249
2261
  offset += chunk;
2250
2262
  if (offset >= total) break;
2251
2263
  if (chunk === 0) throw syncError("EIO", label);
2252
2264
  }
2253
2265
  } finally {
2254
- capturedAtomics.store(header, SAB_I_REQ, 0);
2255
- capturedAtomics.store(header, SAB_I_STATE, SAB_STATE_IDLE);
2266
+ sabStore(header, SAB_I_REQ, 0);
2267
+ sabStore(header, SAB_I_STATE, SAB_STATE_IDLE);
2256
2268
  }
2257
2269
  return decodeSabResult(status2, out);
2258
2270
  }
2259
2271
  };
2260
2272
  }
2273
+ function landing(status2, total, sink) {
2274
+ if (!sink || status2 !== SAB_STATUS_BYTES || total > lengthOf.call(sink)) {
2275
+ return new capturedUint8Array(total);
2276
+ }
2277
+ return new capturedUint8Array(bufferOf.call(sink), offsetOf.call(sink), total);
2278
+ }
2261
2279
  function errnoError(code2, path, direct) {
2262
2280
  const err = syncError(code2, `sync-sab bridge, '${path}'`);
2263
2281
  return direct ? capturedObject.assign(err, { direct }) : err;
@@ -2449,7 +2467,7 @@ function createSyncFsSabBridge(transport, opts = {}) {
2449
2467
  )
2450
2468
  };
2451
2469
  }
2452
- var UNCOUNTED_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS;
2470
+ var UNCOUNTED_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS, typed, getter, bufferOf, offsetOf, lengthOf;
2453
2471
  var init_sync_sab_bridge = __esm({
2454
2472
  "src/realm/sync-sab-bridge.ts"() {
2455
2473
  "use strict";
@@ -2467,6 +2485,11 @@ var init_sync_sab_bridge = __esm({
2467
2485
  SPIN_CORES = 4;
2468
2486
  spinning = (capturedGlobalThis.navigator?.hardwareConcurrency ?? 0) >= SPIN_CORES;
2469
2487
  SPIN_CAP_MS = 1;
2488
+ typed = capturedObject.getPrototypeOf(capturedUint8Array.prototype);
2489
+ getter = (name2) => capturedObject.getOwnPropertyDescriptor(typed, name2)?.get;
2490
+ bufferOf = getter("buffer");
2491
+ offsetOf = getter("byteOffset");
2492
+ lengthOf = getter("length");
2470
2493
  }
2471
2494
  });
2472
2495
 
@@ -2481,8 +2504,8 @@ function createAsyncSabTransport(sab, port3, waitAsync = defaultWaitAsync) {
2481
2504
  let tail = capturedPromise.resolve();
2482
2505
  async function ready(id) {
2483
2506
  for (; ; ) {
2484
- const published = capturedAtomics.load(header, SAB_I_PUB);
2485
- if (capturedAtomics.load(header, SAB_I_STATE) === SAB_STATE_READY && capturedAtomics.load(header, SAB_I_SEQ) === id) {
2507
+ const published = sabLoad(header, SAB_I_PUB);
2508
+ if (sabLoad(header, SAB_I_STATE) === SAB_STATE_READY && sabLoad(header, SAB_I_SEQ) === id) {
2486
2509
  return;
2487
2510
  }
2488
2511
  await changed(header, SAB_I_PUB, published, waitAsync);
@@ -2494,31 +2517,31 @@ function createAsyncSabTransport(sab, port3, waitAsync = defaultWaitAsync) {
2494
2517
  let out = null;
2495
2518
  let status2 = 0;
2496
2519
  let offset = 0;
2497
- capturedAtomics.store(header, SAB_I_REQ, id);
2520
+ sabStore(header, SAB_I_REQ, id);
2498
2521
  try {
2499
2522
  for (; ; ) {
2500
- capturedAtomics.store(header, SAB_I_STATE, SAB_STATE_PENDING);
2523
+ sabStore(header, SAB_I_STATE, SAB_STATE_PENDING);
2501
2524
  if (offset === 0) port3.postMessage({ type: SYNC_SAB_REQ_MSG, id, req }, transfer);
2502
2525
  else port3.postMessage({ type: SYNC_SAB_NEXT_MSG, id, offset });
2503
2526
  await ready(id);
2504
2527
  const total = loadU53(header, SAB_I_TOTAL, SAB_I_TOTAL_HI);
2505
- const chunk = capturedAtomics.load(header, SAB_I_CHUNK);
2528
+ const chunk = sabLoad(header, SAB_I_CHUNK);
2506
2529
  const at = loadU53(header, SAB_I_OFFSET, SAB_I_OFFSET_HI);
2507
2530
  if (at !== offset || chunk < 0 || total < 0 || offset + chunk > total) {
2508
2531
  return { ok: false, errno: "EIO", message: "sync-sab: torn reply" };
2509
2532
  }
2510
2533
  if (out === null) {
2511
- status2 = capturedAtomics.load(header, SAB_I_STATUS);
2534
+ status2 = sabLoad(header, SAB_I_STATUS);
2512
2535
  out = new capturedUint8Array(total);
2513
2536
  }
2514
- out.set(window.subarray(0, chunk), offset);
2537
+ copyWindow(out, window, chunk, offset);
2515
2538
  offset += chunk;
2516
2539
  if (offset >= total) break;
2517
2540
  if (chunk === 0) return { ok: false, errno: "EIO", message: "sync-sab: empty chunk" };
2518
2541
  }
2519
2542
  } finally {
2520
- capturedAtomics.store(header, SAB_I_REQ, 0);
2521
- capturedAtomics.store(header, SAB_I_STATE, SAB_STATE_IDLE);
2543
+ sabStore(header, SAB_I_REQ, 0);
2544
+ sabStore(header, SAB_I_STATE, SAB_STATE_IDLE);
2522
2545
  }
2523
2546
  return decodeSabResult(status2, out);
2524
2547
  }
@@ -2537,7 +2560,7 @@ var init_async_sab = __esm({
2537
2560
  init_captured_globals();
2538
2561
  init_sync_sab_bridge();
2539
2562
  init_sync_sab_wire();
2540
- defaultWaitAsync = (a, i, v) => capturedAtomics.waitAsync(a, i, v);
2563
+ defaultWaitAsync = (a, i, v) => sabWaitAsync(a, i, v);
2541
2564
  }
2542
2565
  });
2543
2566
 
@@ -7466,7 +7489,7 @@ var init_version = __esm({
7466
7489
  "src/version.ts"() {
7467
7490
  "use strict";
7468
7491
  init_captured_globals();
7469
- KERNEL_VERSION = true ? "1.166.3" : "0.0.0-dev";
7492
+ KERNEL_VERSION = true ? "1.166.5" : "0.0.0-dev";
7470
7493
  OS_RELEASE = "6.0.0-slicc";
7471
7494
  }
7472
7495
  });
@@ -10234,7 +10257,7 @@ function errnoOf(err) {
10234
10257
  const errno2 = err?.errno;
10235
10258
  return typeof errno2 === "number" ? errno2 : wasiErrno("EIO");
10236
10259
  }
10237
- function sizeOf(Fs, stream) {
10260
+ function sizeOf2(Fs, stream) {
10238
10261
  const st = Fs.fstat?.(stream.fd);
10239
10262
  return st?.size ?? 0;
10240
10263
  }
@@ -10265,7 +10288,7 @@ function refused2(kind, flags) {
10265
10288
  return kind === "write" && access === O_RDONLY || kind === "read" && access === O_WRONLY4;
10266
10289
  }
10267
10290
  function baseOf2(Fs, stream) {
10268
- return (whence) => whence === SEEK_CUR3 ? stream.position : whence === SEEK_END3 ? sizeOf(Fs, stream) : 0;
10291
+ return (whence) => whence === SEEK_CUR3 ? stream.position : whence === SEEK_END3 ? sizeOf2(Fs, stream) : 0;
10269
10292
  }
10270
10293
  function recordLock(fcntl, deps) {
10271
10294
  return (fd, cmd, varargs) => {
@@ -10688,7 +10711,7 @@ function syncFsync(imports, fs, glue) {
10688
10711
  };
10689
10712
  }
10690
10713
  }
10691
- function offsetOf(rest2) {
10714
+ function offsetOf2(rest2) {
10692
10715
  const at = rest2.length >= 3 ? capturedNumber(rest2[1]) * 2 ** 32 + (capturedNumber(rest2[0]) >>> 0) : capturedNumber(capturedBigInt.asIntN(64, capturedBigInt(rest2[0])));
10693
10716
  return at >= 0 && capturedNumber.isSafeInteger(at) ? at : void 0;
10694
10717
  }
@@ -10710,7 +10733,7 @@ function positioned(original, write2, deps) {
10710
10733
  if (kfd === void 0 || !memory || !(write2 ? deps.sys.pwrite : deps.sys.pread)) {
10711
10734
  return original(fd, iov, iovcnt, ...rest2);
10712
10735
  }
10713
- const at = offsetOf(rest2);
10736
+ const at = offsetOf2(rest2);
10714
10737
  if (at === void 0) return wasiErrno("EINVAL");
10715
10738
  const view = new capturedDataView(memory.buffer);
10716
10739
  let done = 0;
@@ -12560,13 +12583,17 @@ var init_js_run = __esm({
12560
12583
  });
12561
12584
 
12562
12585
  // src/process/js/js-sync.ts
12586
+ function viewOf(into, at, length) {
12587
+ return new capturedUint8Array(bufferOf2.call(into), offsetOf3.call(into) + at, length);
12588
+ }
12563
12589
  function laneOf(lane, silence = SYNC_FS_REQUEST_TIMEOUT_MS, open = createSyncSabTransport) {
12564
12590
  if (!lane) return noLane;
12565
12591
  const transport = open(lane.sab, lane.port);
12566
- return (req) => {
12567
- if (!READ_ONLY.has(req.op)) return transport.call(req, capturedNumber.POSITIVE_INFINITY, req.op);
12592
+ return (req, sink) => {
12593
+ if (!READ_ONLY.has(req.op))
12594
+ return transport.call(req, capturedNumber.POSITIVE_INFINITY, req.op, void 0, sink);
12568
12595
  try {
12569
- return transport.call(req, silence, req.op);
12596
+ return transport.call(req, silence, req.op, void 0, sink);
12570
12597
  } catch (err) {
12571
12598
  const errno2 = err?.code;
12572
12599
  return {
@@ -12732,10 +12759,17 @@ function syncFile(kernel, fd, path, append, forget) {
12732
12759
  live();
12733
12760
  const max = capturedMath.min(length - got, MAX_PREAD);
12734
12761
  if (max <= 0) break;
12735
- const chunk = kernel.bytes({ op: "fd-pread", fd, offset: position + got, max });
12762
+ const req = { op: "fd-pread", fd, offset: position + got, max };
12763
+ if (target) {
12764
+ const at = target.at + got;
12765
+ const n = kernel.bytesInto(req, viewOf(target.into, at, max));
12766
+ if (n === 0) break;
12767
+ got += n;
12768
+ continue;
12769
+ }
12770
+ const chunk = kernel.bytes(req);
12736
12771
  if (chunk.length === 0) break;
12737
- if (target) target.into.set(chunk, target.at + got);
12738
- else parts.push(chunk);
12772
+ parts.push(chunk);
12739
12773
  got += chunk.length;
12740
12774
  } while (got < length);
12741
12775
  return target ? got : joined(parts, got);
@@ -12864,7 +12898,7 @@ function syncPathOps(kernel, resolve2, statOf, open, clean) {
12864
12898
  }
12865
12899
  };
12866
12900
  }
12867
- var encoder4, noLane, READ_ONLY, JsSyncKernel;
12901
+ var encoder4, typed2, getter2, bufferOf2, offsetOf3, setInto, noLane, READ_ONLY, JsSyncKernel;
12868
12902
  var init_js_sync = __esm({
12869
12903
  "src/process/js/js-sync.ts"() {
12870
12904
  "use strict";
@@ -12879,6 +12913,11 @@ var init_js_sync = __esm({
12879
12913
  init_js_proc();
12880
12914
  init_js_rights();
12881
12915
  encoder4 = new capturedTextEncoder();
12916
+ typed2 = capturedObject.getPrototypeOf(capturedUint8Array.prototype);
12917
+ getter2 = (name2) => capturedObject.getOwnPropertyDescriptor(typed2, name2)?.get;
12918
+ bufferOf2 = getter2("buffer");
12919
+ offsetOf3 = getter2("byteOffset");
12920
+ setInto = capturedUint8Array.prototype.set;
12882
12921
  noLane = () => ({ ok: false, errno: "ENOSYS", message: "no sync lane" });
12883
12922
  READ_ONLY = new capturedSet([...SYNC_FS_READ_ONLY, "fd-path-flush"]);
12884
12923
  JsSyncKernel = class {
@@ -12891,9 +12930,9 @@ var init_js_sync = __esm({
12891
12930
  this.kernel = kernel;
12892
12931
  this.unwind = unwind;
12893
12932
  }
12894
- raw(req) {
12933
+ raw(req, sink) {
12895
12934
  this.unwind();
12896
- const result = this.lane(req);
12935
+ const result = this.lane(req, sink);
12897
12936
  this.kernel.deliver();
12898
12937
  this.unwind();
12899
12938
  return result;
@@ -12911,6 +12950,15 @@ var init_js_sync = __esm({
12911
12950
  const result = this.call(req);
12912
12951
  return result.ok && result.kind === "bytes" ? result.bytes : new capturedUint8Array(0);
12913
12952
  }
12953
+ bytesInto(req, sink) {
12954
+ const result = this.raw(req, sink);
12955
+ if (!result.ok) throw callError(result, req.op);
12956
+ if (result.kind !== "bytes") return 0;
12957
+ const { bytes } = result;
12958
+ if (bufferOf2.call(bytes) !== bufferOf2.call(sink) || offsetOf3.call(bytes) !== offsetOf3.call(sink))
12959
+ setInto.call(sink, bytes);
12960
+ return bytes.length;
12961
+ }
12914
12962
  blocking(req) {
12915
12963
  for (; ; ) {
12916
12964
  const result = this.raw(req);
@@ -19098,7 +19146,7 @@ function fillMemory(memory, copy2) {
19098
19146
  if (pages2 > 0) memory.grow(pages2);
19099
19147
  new capturedUint8Array(memory.buffer).set(copy2);
19100
19148
  }
19101
- function sizeOf2(main) {
19149
+ function sizeOf3(main) {
19102
19150
  return () => main.memory?.buffer.byteLength ?? 0;
19103
19151
  }
19104
19152
  function memoryOf(instance, imported2) {
@@ -19327,7 +19375,7 @@ async function runWasiProcess(init, port3) {
19327
19375
  call: kernelCall,
19328
19376
  say,
19329
19377
  gate
19330
- } = kernelOf(init, port3, signals, sizeOf2(main));
19378
+ } = kernelOf(init, port3, signals, sizeOf3(main));
19331
19379
  const id = identify(transport, init);
19332
19380
  const stats = init.env.SLICC_WASI_STATS === "1" ? new WasiStats() : void 0;
19333
19381
  const call3 = stats ? timedCalls(stats, kernelCall) : kernelCall;
@@ -19389,7 +19437,7 @@ async function runWasiProcess(init, port3) {
19389
19437
  });
19390
19438
  restoreExportedMemory(instance, memory, init);
19391
19439
  main.memory = memoryOf(instance, memory);
19392
- publishMemory(init.sab, sizeOf2(main)());
19440
+ publishMemory(init.sab, sizeOf3(main)());
19393
19441
  port3.postMessage({ type: WASM_PROCESS_READY });
19394
19442
  signals.bind(instance.exports);
19395
19443
  if (importsSigactionHook(module2)) signals.useHook();
@@ -19814,6 +19862,17 @@ function programScript(name2, hash) {
19814
19862
  }
19815
19863
  var SOURCE_NAMES = 4096;
19816
19864
  var sourceNames = new capturedSet();
19865
+ var setDelete = capturedSet.prototype.delete;
19866
+ var setValues = capturedSet.prototype.values;
19867
+ var sizeOf = capturedObject.getOwnPropertyDescriptor(capturedSet.prototype, "size")?.get;
19868
+ var nextOf = capturedObject.getPrototypeOf(new capturedSet().values()).next;
19869
+ function noteName(name2) {
19870
+ if (apply(setDelete, sourceNames, [name2]) !== true && apply(sizeOf, sourceNames, []) >= SOURCE_NAMES) {
19871
+ const oldest = apply(nextOf, apply(setValues, sourceNames, []), []);
19872
+ apply(setDelete, sourceNames, [oldest.value]);
19873
+ }
19874
+ apply(setAdd, sourceNames, [name2]);
19875
+ }
19817
19876
  function programName(name2) {
19818
19877
  return apply(startsWith, name2, ["data:"]) === true || apply(setHas, programNames, [name2]) === true || apply(setHas, sourceNames, [name2]) === true;
19819
19878
  }
@@ -19825,7 +19884,7 @@ function noteSourceUrls(trace) {
19825
19884
  if (typeof origin !== "string" || evalAt(origin)) continue;
19826
19885
  const name2 = apply(nameOf, site, []);
19827
19886
  if (typeof name2 !== "string" || apply(setHas, ownNames, [name2]) === true) continue;
19828
- if (sourceNames.size < SOURCE_NAMES) apply(setAdd, sourceNames, [name2]);
19887
+ noteName(name2);
19829
19888
  }
19830
19889
  }
19831
19890
  function rootOrigin(origin) {
@@ -20093,8 +20152,8 @@ function refuseModules() {
20093
20152
  const known = sources.get(url);
20094
20153
  if (known !== void 0) return { format: "module", source: known, shortCircuit: true };
20095
20154
  const payload = url.startsWith(BASE64_MODULE) ? url.slice(BASE64_MODULE.length) : "";
20096
- const typed = capturedObject.keys(context.importAttributes ?? {}).length > 0;
20097
- if (typed || payload.length % 4 !== 0 || !PLAIN_BASE64.test(payload))
20155
+ const typed3 = capturedObject.keys(context.importAttributes ?? {}).length > 0;
20156
+ if (typed3 || payload.length % 4 !== 0 || !PLAIN_BASE64.test(payload))
20098
20157
  return next2(url, context);
20099
20158
  const source = toText(fromBase64(payload, "base64"), "utf8");
20100
20159
  return { format: "module", source, shortCircuit: true };