@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.
- package/README.md +1 -1
- package/dist/kernel-worker.js +19 -6
- package/dist/kernel-worker.js.map +3 -3
- package/dist/node-driver-worker.js +12 -1
- package/dist/node-driver-worker.js.map +2 -2
- package/dist/node-process-worker.cjs +112 -53
- package/dist/node-process-worker.cjs.map +3 -3
- package/dist/node-process-worker.js +112 -53
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +19 -6
- package/dist/node.js.map +3 -3
- package/dist/process-worker.js +93 -45
- package/dist/process-worker.js.map +3 -3
- package/dist/types/process/js/js-sync.d.ts +3 -2
- package/dist/types/realm/sync-sab-bridge.d.ts +1 -1
- package/dist/types/realm/sync-sab-wire.d.ts +4 -0
- package/package.json +2 -2
package/dist/process-worker.js
CHANGED
|
@@ -174,19 +174,22 @@ var init_lockdown = __esm({
|
|
|
174
174
|
});
|
|
175
175
|
|
|
176
176
|
// src/realm/sync-sab-wire.ts
|
|
177
|
+
function copyWindow(out, window, chunk, at) {
|
|
178
|
+
setBytes.call(out, bytesPart.call(window, 0, chunk), at);
|
|
179
|
+
}
|
|
177
180
|
function loadBlocked(header) {
|
|
178
|
-
return [
|
|
181
|
+
return [sabLoad(header, SAB_I_BLOCKED), sabLoad(header, SAB_I_BLOCKED_HI)];
|
|
179
182
|
}
|
|
180
183
|
function storeBlocked(header, [low, high]) {
|
|
181
|
-
|
|
182
|
-
|
|
184
|
+
sabStore(header, SAB_I_BLOCKED_HI, high);
|
|
185
|
+
sabStore(header, SAB_I_BLOCKED, low);
|
|
183
186
|
}
|
|
184
187
|
function loadU53(header, lo, hi) {
|
|
185
|
-
return (
|
|
188
|
+
return (sabLoad(header, lo) >>> 0) + sabLoad(header, hi) * U32;
|
|
186
189
|
}
|
|
187
190
|
function publishMemory(sab, bytes) {
|
|
188
191
|
if (bytes > 0)
|
|
189
|
-
|
|
192
|
+
sabStore(new capturedInt32Array(sab, 0, SAB_HEADER_I32), SAB_I_MEMORY, capturedMath.ceil(bytes / 65536));
|
|
190
193
|
}
|
|
191
194
|
function decodeSabResult(status2, payload) {
|
|
192
195
|
switch (status2) {
|
|
@@ -196,14 +199,14 @@ function decodeSabResult(status2, payload) {
|
|
|
196
199
|
return { ok: true, kind: "void" };
|
|
197
200
|
case SAB_STATUS_JSON: {
|
|
198
201
|
try {
|
|
199
|
-
return { ok: true, kind: "json", json: capturedJSON.parse(
|
|
202
|
+
return { ok: true, kind: "json", json: capturedJSON.parse(decodeText.call(decoder, payload)) };
|
|
200
203
|
} catch {
|
|
201
204
|
return { ok: false, errno: "EIO", message: "sync-sab: malformed json payload" };
|
|
202
205
|
}
|
|
203
206
|
}
|
|
204
207
|
case SAB_STATUS_ERRNO: {
|
|
205
208
|
try {
|
|
206
|
-
const parsed = capturedJSON.parse(
|
|
209
|
+
const parsed = capturedJSON.parse(decodeText.call(decoder, payload));
|
|
207
210
|
const errno2 = typeof parsed.errno === "string" && /^E[A-Z]+$|^EAI_[A-Z]+$/.test(parsed.errno) ? parsed.errno : "EIO";
|
|
208
211
|
const message2 = capturedString(parsed.message ?? errno2);
|
|
209
212
|
return {
|
|
@@ -230,11 +233,20 @@ function sabViews(sab) {
|
|
|
230
233
|
window: new capturedUint8Array(sab, SAB_HEADER_BYTES)
|
|
231
234
|
};
|
|
232
235
|
}
|
|
233
|
-
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;
|
|
236
|
+
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;
|
|
234
237
|
var init_sync_sab_wire = __esm({
|
|
235
238
|
"src/realm/sync-sab-wire.ts"() {
|
|
236
239
|
"use strict";
|
|
237
240
|
init_captured_globals();
|
|
241
|
+
atomicLoad = capturedAtomics.load;
|
|
242
|
+
atomicStore = capturedAtomics.store;
|
|
243
|
+
atomicWaitAsync = capturedAtomics.waitAsync;
|
|
244
|
+
setBytes = capturedUint8Array.prototype.set;
|
|
245
|
+
bytesPart = capturedUint8Array.prototype.subarray;
|
|
246
|
+
decodeText = capturedTextDecoder.prototype.decode;
|
|
247
|
+
sabLoad = (a, i) => atomicLoad(a, i);
|
|
248
|
+
sabStore = (a, i, v) => atomicStore(a, i, v);
|
|
249
|
+
sabWaitAsync = atomicWaitAsync;
|
|
238
250
|
SAB_HEADER_I32 = 18;
|
|
239
251
|
SAB_CLOCK_OFFSET = SAB_HEADER_I32 * 4;
|
|
240
252
|
SAB_CLOCK_I64 = 3;
|
|
@@ -287,9 +299,9 @@ function useLocalClock(sab) {
|
|
|
287
299
|
if (!local) return;
|
|
288
300
|
localSab = sab;
|
|
289
301
|
localStart = epochMicros();
|
|
290
|
-
const wait2 = (
|
|
291
|
-
() => rawWait(
|
|
292
|
-
timeout !== 0 && capturedAtomics.load(
|
|
302
|
+
const wait2 = (typed3, index3, value2, timeout) => localWait(
|
|
303
|
+
() => rawWait(typed3, index3, value2, timeout),
|
|
304
|
+
timeout !== 0 && capturedAtomics.load(typed3, index3) === value2
|
|
293
305
|
);
|
|
294
306
|
capturedAtomics.wait = wait2;
|
|
295
307
|
}
|
|
@@ -1344,7 +1356,7 @@ function createSyncSabTransport(sab, port2, deps = {}) {
|
|
|
1344
1356
|
const now = deps.now ?? (() => capturedperformance.now());
|
|
1345
1357
|
let seq = 0;
|
|
1346
1358
|
let typical = 0;
|
|
1347
|
-
const ready = (id) =>
|
|
1359
|
+
const ready = (id) => sabLoad(header, SAB_I_STATE) === SAB_STATE_READY && sabLoad(header, SAB_I_SEQ) === id;
|
|
1348
1360
|
function spinUntil(id, until) {
|
|
1349
1361
|
for (let stride = 0; stride < SPIN_STRIDES; stride++) {
|
|
1350
1362
|
for (let i = 0; i < SPIN_STRIDE; i++) if (ready(id)) return true;
|
|
@@ -1362,7 +1374,7 @@ function createSyncSabTransport(sab, port2, deps = {}) {
|
|
|
1362
1374
|
return;
|
|
1363
1375
|
}
|
|
1364
1376
|
for (; ; ) {
|
|
1365
|
-
const published =
|
|
1377
|
+
const published = sabLoad(header, SAB_I_PUB);
|
|
1366
1378
|
if (ready(id)) {
|
|
1367
1379
|
settled2(start2);
|
|
1368
1380
|
return;
|
|
@@ -1373,7 +1385,7 @@ function createSyncSabTransport(sab, port2, deps = {}) {
|
|
|
1373
1385
|
}
|
|
1374
1386
|
}
|
|
1375
1387
|
return {
|
|
1376
|
-
call(asked, timeoutMs2, label, given = []) {
|
|
1388
|
+
call(asked, timeoutMs2, label, given = [], sink) {
|
|
1377
1389
|
if (deps.memory) publishMemory(sab, deps.memory());
|
|
1378
1390
|
const { req, transfer } = exactBody(asked, given);
|
|
1379
1391
|
const id = ++seq;
|
|
@@ -1381,10 +1393,10 @@ function createSyncSabTransport(sab, port2, deps = {}) {
|
|
|
1381
1393
|
let out = null;
|
|
1382
1394
|
let status2 = 0;
|
|
1383
1395
|
let offset = 0;
|
|
1384
|
-
|
|
1396
|
+
sabStore(header, SAB_I_REQ, id);
|
|
1385
1397
|
try {
|
|
1386
1398
|
for (; ; ) {
|
|
1387
|
-
|
|
1399
|
+
sabStore(header, SAB_I_STATE, SAB_STATE_PENDING);
|
|
1388
1400
|
const msg = offset === 0 ? { type: SYNC_SAB_REQ_MSG, id, req } : { type: SYNC_SAB_NEXT_MSG, id, offset };
|
|
1389
1401
|
try {
|
|
1390
1402
|
if (offset === 0 && transfer.length > 0) port2.postMessage(msg, transfer);
|
|
@@ -1394,28 +1406,34 @@ function createSyncSabTransport(sab, port2, deps = {}) {
|
|
|
1394
1406
|
}
|
|
1395
1407
|
awaitReady(id, now() + timeoutMs2, label);
|
|
1396
1408
|
const total = loadU53(header, SAB_I_TOTAL, SAB_I_TOTAL_HI);
|
|
1397
|
-
const chunk =
|
|
1409
|
+
const chunk = sabLoad(header, SAB_I_CHUNK);
|
|
1398
1410
|
const at = loadU53(header, SAB_I_OFFSET, SAB_I_OFFSET_HI);
|
|
1399
1411
|
if (at !== offset || chunk < 0 || total < 0 || offset + chunk > total) {
|
|
1400
1412
|
throw syncError("EIO", label);
|
|
1401
1413
|
}
|
|
1402
1414
|
if (out === null) {
|
|
1403
|
-
status2 =
|
|
1404
|
-
out =
|
|
1415
|
+
status2 = sabLoad(header, SAB_I_STATUS);
|
|
1416
|
+
out = landing(status2, total, sink);
|
|
1405
1417
|
}
|
|
1406
|
-
out
|
|
1418
|
+
copyWindow(out, window, chunk, offset);
|
|
1407
1419
|
offset += chunk;
|
|
1408
1420
|
if (offset >= total) break;
|
|
1409
1421
|
if (chunk === 0) throw syncError("EIO", label);
|
|
1410
1422
|
}
|
|
1411
1423
|
} finally {
|
|
1412
|
-
|
|
1413
|
-
|
|
1424
|
+
sabStore(header, SAB_I_REQ, 0);
|
|
1425
|
+
sabStore(header, SAB_I_STATE, SAB_STATE_IDLE);
|
|
1414
1426
|
}
|
|
1415
1427
|
return decodeSabResult(status2, out);
|
|
1416
1428
|
}
|
|
1417
1429
|
};
|
|
1418
1430
|
}
|
|
1431
|
+
function landing(status2, total, sink) {
|
|
1432
|
+
if (!sink || status2 !== SAB_STATUS_BYTES || total > lengthOf.call(sink)) {
|
|
1433
|
+
return new capturedUint8Array(total);
|
|
1434
|
+
}
|
|
1435
|
+
return new capturedUint8Array(bufferOf.call(sink), offsetOf.call(sink), total);
|
|
1436
|
+
}
|
|
1419
1437
|
function errnoError(code2, path, direct) {
|
|
1420
1438
|
const err = syncError(code2, `sync-sab bridge, '${path}'`);
|
|
1421
1439
|
return direct ? capturedObject.assign(err, { direct }) : err;
|
|
@@ -1607,7 +1625,7 @@ function createSyncFsSabBridge(transport, opts = {}) {
|
|
|
1607
1625
|
)
|
|
1608
1626
|
};
|
|
1609
1627
|
}
|
|
1610
|
-
var UNCOUNTED_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS;
|
|
1628
|
+
var UNCOUNTED_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS, typed, getter, bufferOf, offsetOf, lengthOf;
|
|
1611
1629
|
var init_sync_sab_bridge = __esm({
|
|
1612
1630
|
"src/realm/sync-sab-bridge.ts"() {
|
|
1613
1631
|
"use strict";
|
|
@@ -1625,6 +1643,11 @@ var init_sync_sab_bridge = __esm({
|
|
|
1625
1643
|
SPIN_CORES = 4;
|
|
1626
1644
|
spinning = (capturedGlobalThis.navigator?.hardwareConcurrency ?? 0) >= SPIN_CORES;
|
|
1627
1645
|
SPIN_CAP_MS = 1;
|
|
1646
|
+
typed = capturedObject.getPrototypeOf(capturedUint8Array.prototype);
|
|
1647
|
+
getter = (name2) => capturedObject.getOwnPropertyDescriptor(typed, name2)?.get;
|
|
1648
|
+
bufferOf = getter("buffer");
|
|
1649
|
+
offsetOf = getter("byteOffset");
|
|
1650
|
+
lengthOf = getter("length");
|
|
1628
1651
|
}
|
|
1629
1652
|
});
|
|
1630
1653
|
|
|
@@ -3083,7 +3106,7 @@ var init_version = __esm({
|
|
|
3083
3106
|
"src/version.ts"() {
|
|
3084
3107
|
"use strict";
|
|
3085
3108
|
init_captured_globals();
|
|
3086
|
-
KERNEL_VERSION = true ? "1.166.
|
|
3109
|
+
KERNEL_VERSION = true ? "1.166.5" : "0.0.0-dev";
|
|
3087
3110
|
OS_RELEASE = "6.0.0-slicc";
|
|
3088
3111
|
}
|
|
3089
3112
|
});
|
|
@@ -3556,7 +3579,7 @@ function syncFsync(imports, fs, glue) {
|
|
|
3556
3579
|
};
|
|
3557
3580
|
}
|
|
3558
3581
|
}
|
|
3559
|
-
function
|
|
3582
|
+
function offsetOf2(rest2) {
|
|
3560
3583
|
const at = rest2.length >= 3 ? capturedNumber(rest2[1]) * 2 ** 32 + (capturedNumber(rest2[0]) >>> 0) : capturedNumber(capturedBigInt.asIntN(64, capturedBigInt(rest2[0])));
|
|
3561
3584
|
return at >= 0 && capturedNumber.isSafeInteger(at) ? at : void 0;
|
|
3562
3585
|
}
|
|
@@ -3578,7 +3601,7 @@ function positioned(original, write2, deps) {
|
|
|
3578
3601
|
if (kfd === void 0 || !memory || !(write2 ? deps.sys.pwrite : deps.sys.pread)) {
|
|
3579
3602
|
return original(fd, iov, iovcnt, ...rest2);
|
|
3580
3603
|
}
|
|
3581
|
-
const at =
|
|
3604
|
+
const at = offsetOf2(rest2);
|
|
3582
3605
|
if (at === void 0) return wasiErrno("EINVAL");
|
|
3583
3606
|
const view = new capturedDataView(memory.buffer);
|
|
3584
3607
|
let done = 0;
|
|
@@ -8025,8 +8048,8 @@ function createAsyncSabTransport(sab, port2, waitAsync = defaultWaitAsync) {
|
|
|
8025
8048
|
let tail = capturedPromise.resolve();
|
|
8026
8049
|
async function ready(id) {
|
|
8027
8050
|
for (; ; ) {
|
|
8028
|
-
const published =
|
|
8029
|
-
if (
|
|
8051
|
+
const published = sabLoad(header, SAB_I_PUB);
|
|
8052
|
+
if (sabLoad(header, SAB_I_STATE) === SAB_STATE_READY && sabLoad(header, SAB_I_SEQ) === id) {
|
|
8030
8053
|
return;
|
|
8031
8054
|
}
|
|
8032
8055
|
await changed(header, SAB_I_PUB, published, waitAsync);
|
|
@@ -8038,31 +8061,31 @@ function createAsyncSabTransport(sab, port2, waitAsync = defaultWaitAsync) {
|
|
|
8038
8061
|
let out = null;
|
|
8039
8062
|
let status2 = 0;
|
|
8040
8063
|
let offset = 0;
|
|
8041
|
-
|
|
8064
|
+
sabStore(header, SAB_I_REQ, id);
|
|
8042
8065
|
try {
|
|
8043
8066
|
for (; ; ) {
|
|
8044
|
-
|
|
8067
|
+
sabStore(header, SAB_I_STATE, SAB_STATE_PENDING);
|
|
8045
8068
|
if (offset === 0) port2.postMessage({ type: SYNC_SAB_REQ_MSG, id, req }, transfer);
|
|
8046
8069
|
else port2.postMessage({ type: SYNC_SAB_NEXT_MSG, id, offset });
|
|
8047
8070
|
await ready(id);
|
|
8048
8071
|
const total = loadU53(header, SAB_I_TOTAL, SAB_I_TOTAL_HI);
|
|
8049
|
-
const chunk =
|
|
8072
|
+
const chunk = sabLoad(header, SAB_I_CHUNK);
|
|
8050
8073
|
const at = loadU53(header, SAB_I_OFFSET, SAB_I_OFFSET_HI);
|
|
8051
8074
|
if (at !== offset || chunk < 0 || total < 0 || offset + chunk > total) {
|
|
8052
8075
|
return { ok: false, errno: "EIO", message: "sync-sab: torn reply" };
|
|
8053
8076
|
}
|
|
8054
8077
|
if (out === null) {
|
|
8055
|
-
status2 =
|
|
8078
|
+
status2 = sabLoad(header, SAB_I_STATUS);
|
|
8056
8079
|
out = new capturedUint8Array(total);
|
|
8057
8080
|
}
|
|
8058
|
-
out
|
|
8081
|
+
copyWindow(out, window, chunk, offset);
|
|
8059
8082
|
offset += chunk;
|
|
8060
8083
|
if (offset >= total) break;
|
|
8061
8084
|
if (chunk === 0) return { ok: false, errno: "EIO", message: "sync-sab: empty chunk" };
|
|
8062
8085
|
}
|
|
8063
8086
|
} finally {
|
|
8064
|
-
|
|
8065
|
-
|
|
8087
|
+
sabStore(header, SAB_I_REQ, 0);
|
|
8088
|
+
sabStore(header, SAB_I_STATE, SAB_STATE_IDLE);
|
|
8066
8089
|
}
|
|
8067
8090
|
return decodeSabResult(status2, out);
|
|
8068
8091
|
}
|
|
@@ -8081,7 +8104,7 @@ var init_async_sab = __esm({
|
|
|
8081
8104
|
init_captured_globals();
|
|
8082
8105
|
init_sync_sab_bridge();
|
|
8083
8106
|
init_sync_sab_wire();
|
|
8084
|
-
defaultWaitAsync = (a, i, v) =>
|
|
8107
|
+
defaultWaitAsync = (a, i, v) => sabWaitAsync(a, i, v);
|
|
8085
8108
|
}
|
|
8086
8109
|
});
|
|
8087
8110
|
|
|
@@ -17734,13 +17757,17 @@ var init_js_run = __esm({
|
|
|
17734
17757
|
});
|
|
17735
17758
|
|
|
17736
17759
|
// src/process/js/js-sync.ts
|
|
17760
|
+
function viewOf(into, at, length) {
|
|
17761
|
+
return new capturedUint8Array(bufferOf2.call(into), offsetOf3.call(into) + at, length);
|
|
17762
|
+
}
|
|
17737
17763
|
function laneOf(lane, silence = SYNC_FS_REQUEST_TIMEOUT_MS, open = createSyncSabTransport) {
|
|
17738
17764
|
if (!lane) return noLane;
|
|
17739
17765
|
const transport = open(lane.sab, lane.port);
|
|
17740
|
-
return (req) => {
|
|
17741
|
-
if (!READ_ONLY.has(req.op))
|
|
17766
|
+
return (req, sink) => {
|
|
17767
|
+
if (!READ_ONLY.has(req.op))
|
|
17768
|
+
return transport.call(req, capturedNumber.POSITIVE_INFINITY, req.op, void 0, sink);
|
|
17742
17769
|
try {
|
|
17743
|
-
return transport.call(req, silence, req.op);
|
|
17770
|
+
return transport.call(req, silence, req.op, void 0, sink);
|
|
17744
17771
|
} catch (err) {
|
|
17745
17772
|
const errno2 = err?.code;
|
|
17746
17773
|
return {
|
|
@@ -17906,10 +17933,17 @@ function syncFile(kernel, fd, path, append, forget) {
|
|
|
17906
17933
|
live();
|
|
17907
17934
|
const max = capturedMath.min(length - got, MAX_PREAD);
|
|
17908
17935
|
if (max <= 0) break;
|
|
17909
|
-
const
|
|
17936
|
+
const req = { op: "fd-pread", fd, offset: position + got, max };
|
|
17937
|
+
if (target) {
|
|
17938
|
+
const at = target.at + got;
|
|
17939
|
+
const n = kernel.bytesInto(req, viewOf(target.into, at, max));
|
|
17940
|
+
if (n === 0) break;
|
|
17941
|
+
got += n;
|
|
17942
|
+
continue;
|
|
17943
|
+
}
|
|
17944
|
+
const chunk = kernel.bytes(req);
|
|
17910
17945
|
if (chunk.length === 0) break;
|
|
17911
|
-
|
|
17912
|
-
else parts.push(chunk);
|
|
17946
|
+
parts.push(chunk);
|
|
17913
17947
|
got += chunk.length;
|
|
17914
17948
|
} while (got < length);
|
|
17915
17949
|
return target ? got : joined(parts, got);
|
|
@@ -18038,7 +18072,7 @@ function syncPathOps(kernel, resolve, statOf, open, clean) {
|
|
|
18038
18072
|
}
|
|
18039
18073
|
};
|
|
18040
18074
|
}
|
|
18041
|
-
var encoder4, noLane, READ_ONLY, JsSyncKernel;
|
|
18075
|
+
var encoder4, typed2, getter2, bufferOf2, offsetOf3, setInto, noLane, READ_ONLY, JsSyncKernel;
|
|
18042
18076
|
var init_js_sync = __esm({
|
|
18043
18077
|
"src/process/js/js-sync.ts"() {
|
|
18044
18078
|
"use strict";
|
|
@@ -18053,6 +18087,11 @@ var init_js_sync = __esm({
|
|
|
18053
18087
|
init_js_proc();
|
|
18054
18088
|
init_js_rights();
|
|
18055
18089
|
encoder4 = new capturedTextEncoder();
|
|
18090
|
+
typed2 = capturedObject.getPrototypeOf(capturedUint8Array.prototype);
|
|
18091
|
+
getter2 = (name2) => capturedObject.getOwnPropertyDescriptor(typed2, name2)?.get;
|
|
18092
|
+
bufferOf2 = getter2("buffer");
|
|
18093
|
+
offsetOf3 = getter2("byteOffset");
|
|
18094
|
+
setInto = capturedUint8Array.prototype.set;
|
|
18056
18095
|
noLane = () => ({ ok: false, errno: "ENOSYS", message: "no sync lane" });
|
|
18057
18096
|
READ_ONLY = new capturedSet([...SYNC_FS_READ_ONLY, "fd-path-flush"]);
|
|
18058
18097
|
JsSyncKernel = class {
|
|
@@ -18065,9 +18104,9 @@ var init_js_sync = __esm({
|
|
|
18065
18104
|
this.kernel = kernel;
|
|
18066
18105
|
this.unwind = unwind;
|
|
18067
18106
|
}
|
|
18068
|
-
raw(req) {
|
|
18107
|
+
raw(req, sink) {
|
|
18069
18108
|
this.unwind();
|
|
18070
|
-
const result = this.lane(req);
|
|
18109
|
+
const result = this.lane(req, sink);
|
|
18071
18110
|
this.kernel.deliver();
|
|
18072
18111
|
this.unwind();
|
|
18073
18112
|
return result;
|
|
@@ -18085,6 +18124,15 @@ var init_js_sync = __esm({
|
|
|
18085
18124
|
const result = this.call(req);
|
|
18086
18125
|
return result.ok && result.kind === "bytes" ? result.bytes : new capturedUint8Array(0);
|
|
18087
18126
|
}
|
|
18127
|
+
bytesInto(req, sink) {
|
|
18128
|
+
const result = this.raw(req, sink);
|
|
18129
|
+
if (!result.ok) throw callError(result, req.op);
|
|
18130
|
+
if (result.kind !== "bytes") return 0;
|
|
18131
|
+
const { bytes } = result;
|
|
18132
|
+
if (bufferOf2.call(bytes) !== bufferOf2.call(sink) || offsetOf3.call(bytes) !== offsetOf3.call(sink))
|
|
18133
|
+
setInto.call(sink, bytes);
|
|
18134
|
+
return bytes.length;
|
|
18135
|
+
}
|
|
18088
18136
|
blocking(req) {
|
|
18089
18137
|
for (; ; ) {
|
|
18090
18138
|
const result = this.raw(req);
|