@tailwindcss/oxide-wasm32-wasi 0.0.0-insiders.bd30a71 → 0.0.0-insiders.bdcd708
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/node_modules/@emnapi/core/dist/emnapi-core.cjs.js +1142 -373
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts +3 -3
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.d.mts +3 -3
- package/node_modules/@emnapi/core/dist/emnapi-core.d.ts +3 -3
- package/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js +1245 -378
- package/node_modules/@emnapi/core/dist/emnapi-core.js +1271 -416
- package/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts +3 -3
- package/node_modules/@emnapi/core/dist/emnapi-core.min.js +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.min.mjs +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.mjs +1142 -373
- package/node_modules/@emnapi/core/package.json +2 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.js +32 -5
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.d.ts +8 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.d.mts +8 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.d.ts +8 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.esm-bundler.js +33 -5
- package/node_modules/@emnapi/runtime/dist/emnapi.iife.d.ts +8 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.iife.js +33 -5
- package/node_modules/@emnapi/runtime/dist/emnapi.js +33 -5
- package/node_modules/@emnapi/runtime/dist/emnapi.min.d.mts +8 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.min.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.min.mjs +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.mjs +32 -5
- package/node_modules/@emnapi/runtime/package.json +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.js +21 -33
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.d.ts +2 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.js +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.mts +2 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.ts +2 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js +21 -33
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.js +21 -33
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.d.mts +2 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.js +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.mjs +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.mjs +21 -33
- package/node_modules/@emnapi/wasi-threads/package.json +1 -1
- package/node_modules/@napi-rs/wasm-runtime/dist/fs-proxy.cjs +47 -12
- package/node_modules/@napi-rs/wasm-runtime/dist/fs.js +14310 -10201
- package/node_modules/@napi-rs/wasm-runtime/fs-proxy.js +47 -12
- package/node_modules/@napi-rs/wasm-runtime/package.json +6 -4
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm-bundler.js +164 -2
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm.js +164 -2
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm.min.js +1 -1
- package/node_modules/@tybys/wasm-util/dist/wasm-util.js +164 -2
- package/node_modules/@tybys/wasm-util/dist/wasm-util.min.js +1 -1
- package/node_modules/@tybys/wasm-util/lib/cjs/wasi/path.js +142 -0
- package/node_modules/@tybys/wasm-util/lib/cjs/wasi/preview1.js +22 -2
- package/node_modules/@tybys/wasm-util/lib/mjs/wasi/path.mjs +142 -0
- package/node_modules/@tybys/wasm-util/lib/mjs/wasi/preview1.mjs +22 -2
- package/node_modules/@tybys/wasm-util/package.json +1 -1
- package/package.json +6 -6
- package/tailwindcss-oxide.wasi-browser.js +1 -0
- package/tailwindcss-oxide.wasi.cjs +1 -1
- package/tailwindcss-oxide.wasm32-wasi.wasm +0 -0
- package/wasi-worker-browser.mjs +2 -0
|
@@ -216,7 +216,6 @@
|
|
|
216
216
|
function ThreadManager(options) {
|
|
217
217
|
var _a;
|
|
218
218
|
this.unusedWorkers = [];
|
|
219
|
-
this.runningWorkers = [];
|
|
220
219
|
this.pthreads = Object.create(null);
|
|
221
220
|
this.wasmModule = null;
|
|
222
221
|
this.wasmMemory = null;
|
|
@@ -241,6 +240,7 @@
|
|
|
241
240
|
this._beforeLoad = options.beforeLoad;
|
|
242
241
|
}
|
|
243
242
|
this.printErr = (_a = options.printErr) !== null && _a !== void 0 ? _a : console.error.bind(console);
|
|
243
|
+
this.threadSpawn = options.threadSpawn;
|
|
244
244
|
}
|
|
245
245
|
Object.defineProperty(ThreadManager.prototype, "nextWorkerID", {
|
|
246
246
|
get: function () { return nextWorkerID; },
|
|
@@ -324,7 +324,6 @@
|
|
|
324
324
|
delete this.pthreads[tid];
|
|
325
325
|
}
|
|
326
326
|
this.unusedWorkers.push(worker);
|
|
327
|
-
this.runningWorkers.splice(this.runningWorkers.indexOf(worker), 1);
|
|
328
327
|
delete worker.__emnapi_tid;
|
|
329
328
|
if (ENVIRONMENT_IS_NODE) {
|
|
330
329
|
worker.unref();
|
|
@@ -378,6 +377,12 @@
|
|
|
378
377
|
_this_1.cleanThread(worker, payload.tid);
|
|
379
378
|
}
|
|
380
379
|
}
|
|
380
|
+
else if (type === 'spawn-thread') {
|
|
381
|
+
_this_1.threadSpawn(payload.startArg, payload.errorOrTid);
|
|
382
|
+
}
|
|
383
|
+
else if (type === 'terminate-all-threads') {
|
|
384
|
+
_this_1.terminateAllThreads();
|
|
385
|
+
}
|
|
381
386
|
}
|
|
382
387
|
};
|
|
383
388
|
worker.onmessage = function (e) {
|
|
@@ -452,10 +457,6 @@
|
|
|
452
457
|
}
|
|
453
458
|
else {
|
|
454
459
|
delete this.pthreads[tid];
|
|
455
|
-
var index = this.runningWorkers.indexOf(worker);
|
|
456
|
-
if (index !== -1) {
|
|
457
|
-
this.runningWorkers.splice(index, 1);
|
|
458
|
-
}
|
|
459
460
|
this.terminateWorker(worker);
|
|
460
461
|
delete worker.__emnapi_tid;
|
|
461
462
|
}
|
|
@@ -476,14 +477,14 @@
|
|
|
476
477
|
};
|
|
477
478
|
};
|
|
478
479
|
ThreadManager.prototype.terminateAllThreads = function () {
|
|
479
|
-
|
|
480
|
-
|
|
480
|
+
var runningWorkers = Object.values(this.pthreads);
|
|
481
|
+
for (var i = 0; i < runningWorkers.length; ++i) {
|
|
482
|
+
this.terminateWorker(runningWorkers[i]);
|
|
481
483
|
}
|
|
482
484
|
for (var i = 0; i < this.unusedWorkers.length; ++i) {
|
|
483
485
|
this.terminateWorker(this.unusedWorkers[i]);
|
|
484
486
|
}
|
|
485
487
|
this.unusedWorkers = [];
|
|
486
|
-
this.runningWorkers = [];
|
|
487
488
|
this.pthreads = Object.create(null);
|
|
488
489
|
this.preparePool();
|
|
489
490
|
};
|
|
@@ -633,18 +634,6 @@
|
|
|
633
634
|
}
|
|
634
635
|
this.postMessage = postMessage;
|
|
635
636
|
var wasm64 = Boolean(options.wasm64);
|
|
636
|
-
var onMessage = function (e) {
|
|
637
|
-
if (e.data.__emnapi__) {
|
|
638
|
-
var type = e.data.__emnapi__.type;
|
|
639
|
-
var payload = e.data.__emnapi__.payload;
|
|
640
|
-
if (type === 'spawn-thread') {
|
|
641
|
-
threadSpawn(payload.startArg, payload.errorOrTid);
|
|
642
|
-
}
|
|
643
|
-
else if (type === 'terminate-all-threads') {
|
|
644
|
-
_this_1.terminateAllThreads();
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
};
|
|
648
637
|
var threadSpawn = function (startArg, errorOrTid) {
|
|
649
638
|
var _a;
|
|
650
639
|
var EAGAIN = 6;
|
|
@@ -667,7 +656,7 @@
|
|
|
667
656
|
}
|
|
668
657
|
if (!isNewABI) {
|
|
669
658
|
var malloc = _this_1.wasmInstance.exports.malloc;
|
|
670
|
-
errorOrTid = wasm64 ? Number(malloc(BigInt(8))) : malloc(8);
|
|
659
|
+
errorOrTid = wasm64 ? Number(malloc(BigInt(8))) : (malloc(8) >>> 0);
|
|
671
660
|
if (!errorOrTid) {
|
|
672
661
|
return -48; /* ENOMEM */
|
|
673
662
|
}
|
|
@@ -705,10 +694,9 @@
|
|
|
705
694
|
if (!worker) {
|
|
706
695
|
throw new Error('failed to get new worker');
|
|
707
696
|
}
|
|
708
|
-
PThread.addMessageEventListener(worker, onMessage);
|
|
709
697
|
tid = PThread.markId(worker);
|
|
710
698
|
if (ENVIRONMENT_IS_NODE) {
|
|
711
|
-
worker.
|
|
699
|
+
worker.unref();
|
|
712
700
|
}
|
|
713
701
|
worker.postMessage(createMessage('start', {
|
|
714
702
|
tid: tid,
|
|
@@ -719,10 +707,6 @@
|
|
|
719
707
|
if (typeof waitThreadStart === 'number') {
|
|
720
708
|
var waitResult = Atomics.wait(sab, 0, 0, waitThreadStart);
|
|
721
709
|
if (waitResult === 'timed-out') {
|
|
722
|
-
try {
|
|
723
|
-
PThread.cleanThread(worker, tid, true);
|
|
724
|
-
}
|
|
725
|
-
catch (_) { }
|
|
726
710
|
throw new Error('Spawning thread timed out. Please check if the worker is created successfully and if message is handled properly in the worker.');
|
|
727
711
|
}
|
|
728
712
|
}
|
|
@@ -731,15 +715,17 @@
|
|
|
731
715
|
}
|
|
732
716
|
var r = Atomics.load(sab, 0);
|
|
733
717
|
if (r > 1) {
|
|
734
|
-
try {
|
|
735
|
-
PThread.cleanThread(worker, tid, true);
|
|
736
|
-
}
|
|
737
|
-
catch (_) { }
|
|
738
718
|
throw deserizeErrorFromBuffer(sab.buffer);
|
|
739
719
|
}
|
|
740
720
|
}
|
|
741
721
|
}
|
|
742
722
|
catch (e) {
|
|
723
|
+
if (worker !== undefined && tid !== undefined) {
|
|
724
|
+
try {
|
|
725
|
+
PThread.cleanThread(worker, tid, true);
|
|
726
|
+
}
|
|
727
|
+
catch (_) { }
|
|
728
|
+
}
|
|
743
729
|
Atomics.store(struct, 0, 1);
|
|
744
730
|
Atomics.store(struct, 1, EAGAIN);
|
|
745
731
|
Atomics.notify(struct, 1);
|
|
@@ -753,7 +739,6 @@
|
|
|
753
739
|
Atomics.store(struct, 0, 0);
|
|
754
740
|
Atomics.store(struct, 1, tid);
|
|
755
741
|
Atomics.notify(struct, 1);
|
|
756
|
-
PThread.runningWorkers.push(worker);
|
|
757
742
|
if (!shouldWait) {
|
|
758
743
|
worker.whenLoaded.catch(function (err) {
|
|
759
744
|
delete worker.whenLoaded;
|
|
@@ -768,6 +753,9 @@
|
|
|
768
753
|
return tid;
|
|
769
754
|
};
|
|
770
755
|
this.threadSpawn = threadSpawn;
|
|
756
|
+
if (this.PThread) {
|
|
757
|
+
this.PThread.threadSpawn = threadSpawn;
|
|
758
|
+
}
|
|
771
759
|
}
|
|
772
760
|
WASIThreads.prototype.getImportObject = function () {
|
|
773
761
|
return {
|
|
@@ -798,14 +786,14 @@
|
|
|
798
786
|
* @returns A proxied WebAssembly instance if in child thread, other wise the original instance
|
|
799
787
|
*/
|
|
800
788
|
WASIThreads.prototype.initialize = function (instance, module, memory) {
|
|
801
|
-
var exports
|
|
802
|
-
memory !== null && memory !== void 0 ? memory : (memory = exports
|
|
789
|
+
var exports = instance.exports;
|
|
790
|
+
memory !== null && memory !== void 0 ? memory : (memory = exports.memory);
|
|
803
791
|
if (this.childThread) {
|
|
804
792
|
instance = createInstanceProxy(instance, memory);
|
|
805
793
|
}
|
|
806
794
|
this.setup(instance, module, memory);
|
|
807
795
|
var wasi = this.wasi;
|
|
808
|
-
if (('_start' in exports
|
|
796
|
+
if (('_start' in exports) && (typeof exports._start === 'function')) {
|
|
809
797
|
if (this.childThread) {
|
|
810
798
|
wasi.start(instance);
|
|
811
799
|
try {
|
|
@@ -831,8 +819,8 @@
|
|
|
831
819
|
* ```
|
|
832
820
|
*/
|
|
833
821
|
WASIThreads.prototype.start = function (instance, module, memory) {
|
|
834
|
-
var exports
|
|
835
|
-
memory !== null && memory !== void 0 ? memory : (memory = exports
|
|
822
|
+
var exports = instance.exports;
|
|
823
|
+
memory !== null && memory !== void 0 ? memory : (memory = exports.memory);
|
|
836
824
|
if (this.childThread) {
|
|
837
825
|
instance = createInstanceProxy(instance, memory);
|
|
838
826
|
}
|
|
@@ -1061,7 +1049,6 @@
|
|
|
1061
1049
|
filename: '',
|
|
1062
1050
|
childThread: ENVIRONMENT_IS_PTHREAD,
|
|
1063
1051
|
initWorker: undefined,
|
|
1064
|
-
executeAsyncWork: undefined,
|
|
1065
1052
|
waitThreadStart: waitThreadStart,
|
|
1066
1053
|
PThread: undefined,
|
|
1067
1054
|
init: function (options) {
|
|
@@ -1073,10 +1060,10 @@
|
|
|
1073
1060
|
if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
|
|
1074
1061
|
throw new TypeError('Invalid wasm instance');
|
|
1075
1062
|
wasmInstance = instance;
|
|
1076
|
-
var exports
|
|
1063
|
+
var exports = instance.exports;
|
|
1077
1064
|
var module = options.module;
|
|
1078
|
-
var memory = options.memory || exports
|
|
1079
|
-
var table = options.table || exports
|
|
1065
|
+
var memory = options.memory || exports.memory;
|
|
1066
|
+
var table = options.table || exports.__indirect_function_table;
|
|
1080
1067
|
if (!(module instanceof _WebAssembly$1.Module))
|
|
1081
1068
|
throw new TypeError('Invalid wasm module');
|
|
1082
1069
|
if (!(memory instanceof _WebAssembly$1.Memory))
|
|
@@ -1085,12 +1072,12 @@
|
|
|
1085
1072
|
throw new TypeError('Invalid wasm table');
|
|
1086
1073
|
wasmMemory = memory;
|
|
1087
1074
|
wasmTable = table;
|
|
1088
|
-
if (typeof exports
|
|
1075
|
+
if (typeof exports.malloc !== 'function')
|
|
1089
1076
|
throw new TypeError('malloc is not exported');
|
|
1090
|
-
if (typeof exports
|
|
1077
|
+
if (typeof exports.free !== 'function')
|
|
1091
1078
|
throw new TypeError('free is not exported');
|
|
1092
|
-
_malloc = exports
|
|
1093
|
-
_free = exports
|
|
1079
|
+
_malloc = exports.malloc;
|
|
1080
|
+
_free = exports.free;
|
|
1094
1081
|
if (!napiModule.childThread) {
|
|
1095
1082
|
// main thread only
|
|
1096
1083
|
var moduleApiVersion = 8 /* Version.NODE_API_DEFAULT_MODULE_API_VERSION */;
|
|
@@ -1103,11 +1090,11 @@
|
|
|
1103
1090
|
var scope_1 = emnapiCtx.openScope(envObject);
|
|
1104
1091
|
try {
|
|
1105
1092
|
envObject.callIntoModule(function (_envObject) {
|
|
1106
|
-
var exports
|
|
1107
|
-
var exportsHandle = scope_1.add(exports
|
|
1093
|
+
var exports = napiModule.exports;
|
|
1094
|
+
var exportsHandle = scope_1.add(exports);
|
|
1108
1095
|
var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
|
|
1109
1096
|
var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
|
|
1110
|
-
napiModule.exports = (!napiValue) ? exports
|
|
1097
|
+
napiModule.exports = (!napiValue) ? exports : emnapiCtx.handleStore.get(napiValue).value;
|
|
1111
1098
|
});
|
|
1112
1099
|
}
|
|
1113
1100
|
catch (e) {
|
|
@@ -1262,6 +1249,9 @@
|
|
|
1262
1249
|
* @__sig vppp
|
|
1263
1250
|
*/
|
|
1264
1251
|
function _emnapi_get_node_version(major, minor, patch) {
|
|
1252
|
+
major >>>= 0;
|
|
1253
|
+
minor >>>= 0;
|
|
1254
|
+
patch >>>= 0;
|
|
1265
1255
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1266
1256
|
var versions = (typeof process === 'object' && process !== null &&
|
|
1267
1257
|
typeof process.versions === 'object' && process.versions !== null &&
|
|
@@ -1327,6 +1317,7 @@
|
|
|
1327
1317
|
*/
|
|
1328
1318
|
function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
|
|
1329
1319
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1320
|
+
callback >>>= 0;
|
|
1330
1321
|
envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
|
|
1331
1322
|
}
|
|
1332
1323
|
/**
|
|
@@ -1432,9 +1423,20 @@
|
|
|
1432
1423
|
return worker;
|
|
1433
1424
|
}
|
|
1434
1425
|
/** @__sig vp */
|
|
1426
|
+
function _emnapi_worker_ref(pthreadPtr) {
|
|
1427
|
+
if (ENVIRONMENT_IS_PTHREAD)
|
|
1428
|
+
return;
|
|
1429
|
+
pthreadPtr >>>= 0;
|
|
1430
|
+
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
1431
|
+
if (worker && typeof worker.ref === 'function') {
|
|
1432
|
+
worker.ref();
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1435
|
+
/** @__sig vp */
|
|
1435
1436
|
function _emnapi_worker_unref(pthreadPtr) {
|
|
1436
1437
|
if (ENVIRONMENT_IS_PTHREAD)
|
|
1437
1438
|
return;
|
|
1439
|
+
pthreadPtr >>>= 0;
|
|
1438
1440
|
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
1439
1441
|
if (worker && typeof worker.unref === 'function') {
|
|
1440
1442
|
worker.unref();
|
|
@@ -1542,9 +1544,9 @@
|
|
|
1542
1544
|
_emnapi_async_send_js: _emnapi_async_send_js,
|
|
1543
1545
|
_emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
|
|
1544
1546
|
_emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
|
|
1547
|
+
_emnapi_worker_ref: _emnapi_worker_ref,
|
|
1545
1548
|
_emnapi_worker_unref: _emnapi_worker_unref
|
|
1546
1549
|
});
|
|
1547
|
-
/* eslint-disable @typescript-eslint/indent */
|
|
1548
1550
|
/** @__sig ipjp */
|
|
1549
1551
|
function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
|
|
1550
1552
|
if (!env)
|
|
@@ -1552,22 +1554,15 @@
|
|
|
1552
1554
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1553
1555
|
if (!adjusted_value)
|
|
1554
1556
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
}
|
|
1559
|
-
var old_size = wasmMemory.buffer.byteLength;
|
|
1560
|
-
var new_size = old_size + change_in_bytes_number;
|
|
1561
|
-
new_size = new_size + ((65536 - new_size % 65536) % 65536);
|
|
1562
|
-
if (wasmMemory.grow((new_size - old_size + 65535) >> 16) === -1) {
|
|
1563
|
-
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
1564
|
-
}
|
|
1557
|
+
// eslint-disable-next-line prefer-const
|
|
1558
|
+
var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
|
|
1559
|
+
adjusted_value >>>= 0;
|
|
1565
1560
|
if (emnapiCtx.feature.supportBigInt) {
|
|
1566
1561
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1567
|
-
HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(
|
|
1562
|
+
HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
|
|
1568
1563
|
}
|
|
1569
1564
|
else {
|
|
1570
|
-
$emnapiSetValueI64(adjusted_value,
|
|
1565
|
+
$emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
|
|
1571
1566
|
}
|
|
1572
1567
|
return envObject.clearLastError();
|
|
1573
1568
|
}
|
|
@@ -1735,6 +1730,7 @@
|
|
|
1735
1730
|
var asyncId = asyncContext.asyncId;
|
|
1736
1731
|
var triggerAsyncId = asyncContext.triggerAsyncId;
|
|
1737
1732
|
if (result) {
|
|
1733
|
+
result >>>= 0;
|
|
1738
1734
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1739
1735
|
HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
|
|
1740
1736
|
HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
|
|
@@ -1778,6 +1774,8 @@
|
|
|
1778
1774
|
return;
|
|
1779
1775
|
var resource = emnapiCtx.handleStore.get(async_resource).value;
|
|
1780
1776
|
var callback = emnapiCtx.handleStore.get(cb).value;
|
|
1777
|
+
argv >>>= 0;
|
|
1778
|
+
size >>>= 0;
|
|
1781
1779
|
size = size >>> 0;
|
|
1782
1780
|
var arr = Array(size);
|
|
1783
1781
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -1790,6 +1788,7 @@
|
|
|
1790
1788
|
triggerAsyncId: trigger_async_id
|
|
1791
1789
|
});
|
|
1792
1790
|
if (result) {
|
|
1791
|
+
result >>>= 0;
|
|
1793
1792
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1794
1793
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1795
1794
|
v = envObject.ensureHandleId(ret);
|
|
@@ -1820,6 +1819,7 @@
|
|
|
1820
1819
|
var low = Number(numberValue & BigInt(0xffffffff));
|
|
1821
1820
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1822
1821
|
var high = Number(numberValue >> BigInt(32));
|
|
1822
|
+
result >>>= 0;
|
|
1823
1823
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1824
1824
|
HEAP_DATA_VIEW.setInt32(result, low, true);
|
|
1825
1825
|
HEAP_DATA_VIEW.setInt32(result + 4, high, true);
|
|
@@ -1830,6 +1830,7 @@
|
|
|
1830
1830
|
if (!emnapiNodeBinding) {
|
|
1831
1831
|
return 9 /* napi_status.napi_generic_failure */;
|
|
1832
1832
|
}
|
|
1833
|
+
async_context >>>= 0;
|
|
1833
1834
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1834
1835
|
var low = HEAP_DATA_VIEW.getInt32(async_context, true);
|
|
1835
1836
|
var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
|
|
@@ -1878,10 +1879,13 @@
|
|
|
1878
1879
|
if (typeof v8func !== 'function') {
|
|
1879
1880
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1880
1881
|
}
|
|
1882
|
+
async_context >>>= 0;
|
|
1881
1883
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1882
1884
|
var low = HEAP_DATA_VIEW.getInt32(async_context, true);
|
|
1883
1885
|
var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
|
|
1884
1886
|
var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
|
|
1887
|
+
argv >>>= 0;
|
|
1888
|
+
argc >>>= 0;
|
|
1885
1889
|
argc = argc >>> 0;
|
|
1886
1890
|
var arr = Array(argc);
|
|
1887
1891
|
for (; i < argc; i++) {
|
|
@@ -1895,6 +1899,7 @@
|
|
|
1895
1899
|
if (ret.status !== 0 /* napi_status.napi_ok */)
|
|
1896
1900
|
return envObject.setLastError(ret.status);
|
|
1897
1901
|
if (result) {
|
|
1902
|
+
result >>>= 0;
|
|
1898
1903
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1899
1904
|
v = envObject.ensureHandleId(ret.value);
|
|
1900
1905
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -1932,32 +1937,62 @@
|
|
|
1932
1937
|
* ```
|
|
1933
1938
|
*/
|
|
1934
1939
|
var emnapiTSFN = {
|
|
1940
|
+
_liveSet: {},
|
|
1935
1941
|
offset: {
|
|
1942
|
+
__size__: 0,
|
|
1936
1943
|
/* napi_ref */ resource: 0,
|
|
1937
|
-
/* double */ async_id:
|
|
1938
|
-
/* double */ trigger_async_id:
|
|
1939
|
-
/* size_t */ queue_size:
|
|
1940
|
-
/*
|
|
1941
|
-
/*
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
/* size_t */
|
|
1946
|
-
/*
|
|
1947
|
-
/*
|
|
1948
|
-
/* void* */
|
|
1949
|
-
/*
|
|
1950
|
-
/*
|
|
1951
|
-
/*
|
|
1952
|
-
/*
|
|
1953
|
-
/*
|
|
1954
|
-
/*
|
|
1955
|
-
|
|
1944
|
+
/* double */ async_id: 0,
|
|
1945
|
+
/* double */ trigger_async_id: 0,
|
|
1946
|
+
/* size_t */ queue_size: 0,
|
|
1947
|
+
/* bool */ is_some: 0,
|
|
1948
|
+
/* void* */ queue: 0,
|
|
1949
|
+
// Reuse uv_async_t storage as JS-side wakeup state: pending event + scheduled drain.
|
|
1950
|
+
async_pending: 0,
|
|
1951
|
+
async_u_fd: 0,
|
|
1952
|
+
/* size_t */ thread_count: 0,
|
|
1953
|
+
/* int32_t */ state: 0,
|
|
1954
|
+
/* atomic_uchar */ dispatch_state: 0,
|
|
1955
|
+
/* void* */ context: 0,
|
|
1956
|
+
/* size_t */ max_queue_size: 0,
|
|
1957
|
+
/* napi_ref */ ref: 0,
|
|
1958
|
+
/* napi_env */ env: 0,
|
|
1959
|
+
/* void* */ finalize_data: 0,
|
|
1960
|
+
/* napi_finalize */ finalize_cb: 0,
|
|
1961
|
+
/* napi_threadsafe_function_call_js */ call_js_cb: 0,
|
|
1962
|
+
/* bool */ handles_closing: 0,
|
|
1963
|
+
/* bool */ async_ref: 0,
|
|
1964
|
+
/* int32_t */ mutex: 0,
|
|
1965
|
+
/* int32_t */ cond: 0
|
|
1956
1966
|
},
|
|
1957
1967
|
init: function () {
|
|
1968
|
+
emnapiTSFN._liveSet = new Set();
|
|
1969
|
+
emnapiTSFN.offset.__size__ = 184 /* NapiTSFNOffset32.__size__ */;
|
|
1970
|
+
emnapiTSFN.offset.resource = 0 /* NapiTSFNOffset32.async_resource_resource */;
|
|
1971
|
+
emnapiTSFN.offset.async_id = 8 /* NapiTSFNOffset32.async_resource_async_context_async_id */;
|
|
1972
|
+
emnapiTSFN.offset.trigger_async_id = 16 /* NapiTSFNOffset32.async_resource_async_context_trigger_async_id */;
|
|
1973
|
+
emnapiTSFN.offset.queue_size = 60 /* NapiTSFNOffset32.queue_size */;
|
|
1974
|
+
emnapiTSFN.offset.is_some = 24 /* NapiTSFNOffset32.async_resource_is_some */;
|
|
1975
|
+
emnapiTSFN.offset.queue = 64 /* NapiTSFNOffset32.queue */;
|
|
1976
|
+
emnapiTSFN.offset.async_pending = 132 /* NapiTSFNOffset32.async_pending */;
|
|
1977
|
+
emnapiTSFN.offset.async_u_fd = 96 /* NapiTSFNOffset32.async_u_fd */;
|
|
1978
|
+
emnapiTSFN.offset.thread_count = 136 /* NapiTSFNOffset32.thread_count */;
|
|
1979
|
+
emnapiTSFN.offset.state = 140 /* NapiTSFNOffset32.state */;
|
|
1980
|
+
emnapiTSFN.offset.dispatch_state = 144 /* NapiTSFNOffset32.dispatch_state */;
|
|
1981
|
+
emnapiTSFN.offset.context = 148 /* NapiTSFNOffset32.context */;
|
|
1982
|
+
emnapiTSFN.offset.max_queue_size = 152 /* NapiTSFNOffset32.max_queue_size */;
|
|
1983
|
+
emnapiTSFN.offset.ref = 156 /* NapiTSFNOffset32.ref */;
|
|
1984
|
+
emnapiTSFN.offset.env = 160 /* NapiTSFNOffset32.env */;
|
|
1985
|
+
emnapiTSFN.offset.finalize_data = 164 /* NapiTSFNOffset32.finalize_data */;
|
|
1986
|
+
emnapiTSFN.offset.finalize_cb = 168 /* NapiTSFNOffset32.finalize_cb */;
|
|
1987
|
+
emnapiTSFN.offset.call_js_cb = 172 /* NapiTSFNOffset32.call_js_cb */;
|
|
1988
|
+
emnapiTSFN.offset.handles_closing = 176 /* NapiTSFNOffset32.handles_closing */;
|
|
1989
|
+
emnapiTSFN.offset.async_ref = 180 /* NapiTSFNOffset32.async_ref */;
|
|
1990
|
+
emnapiTSFN.offset.mutex = 32 /* NapiTSFNOffset32.mutex */;
|
|
1991
|
+
emnapiTSFN.offset.cond = 56 /* NapiTSFNOffset32.cond */;
|
|
1992
|
+
emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
|
|
1958
1993
|
if (typeof PThread !== 'undefined') {
|
|
1959
1994
|
PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
|
|
1960
|
-
PThread.
|
|
1995
|
+
Object.values(PThread.pthreads).forEach(emnapiTSFN.addListener);
|
|
1961
1996
|
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
1962
1997
|
PThread.getNewWorker = function () {
|
|
1963
1998
|
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
@@ -1978,7 +2013,10 @@
|
|
|
1978
2013
|
var type = __emnapi__.type;
|
|
1979
2014
|
var payload = __emnapi__.payload;
|
|
1980
2015
|
if (type === 'tsfn-send') {
|
|
1981
|
-
emnapiTSFN.
|
|
2016
|
+
var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
|
|
2017
|
+
if (Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2) !== 0) {
|
|
2018
|
+
emnapiTSFN.enqueue(payload.tsfn);
|
|
2019
|
+
}
|
|
1982
2020
|
}
|
|
1983
2021
|
}
|
|
1984
2022
|
};
|
|
@@ -2000,18 +2038,40 @@
|
|
|
2000
2038
|
}
|
|
2001
2039
|
return true;
|
|
2002
2040
|
},
|
|
2041
|
+
/**
|
|
2042
|
+
* When another thread grows the shared WebAssembly.Memory, this agent's
|
|
2043
|
+
* cached `wasmMemory.buffer` may still have the old shorter length
|
|
2044
|
+
* (V8 refreshes it lazily). If a pointer derived from shared memory lies
|
|
2045
|
+
* beyond the cached length, `wasmMemory.grow(0)` forces the agent to
|
|
2046
|
+
* observe the current memory size and refreshes the buffer.
|
|
2047
|
+
*/
|
|
2048
|
+
ensureBufferFor: function (end) {
|
|
2049
|
+
var buffer = wasmMemory.buffer;
|
|
2050
|
+
if (end > buffer.byteLength) {
|
|
2051
|
+
wasmMemory.grow(0);
|
|
2052
|
+
buffer = wasmMemory.buffer;
|
|
2053
|
+
}
|
|
2054
|
+
return buffer;
|
|
2055
|
+
},
|
|
2003
2056
|
initQueue: function (func) {
|
|
2004
2057
|
var size = 2 * 4;
|
|
2005
2058
|
var queue = _malloc(size);
|
|
2006
2059
|
if (!queue)
|
|
2007
2060
|
return false;
|
|
2008
|
-
|
|
2061
|
+
queue >>>= 0;
|
|
2062
|
+
new Uint8Array(emnapiTSFN.ensureBufferFor(queue + size), queue, size).fill(0);
|
|
2009
2063
|
emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
|
|
2010
2064
|
return true;
|
|
2011
2065
|
},
|
|
2012
2066
|
destroyQueue: function (func) {
|
|
2013
2067
|
var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
|
|
2014
2068
|
if (queue) {
|
|
2069
|
+
var node = emnapiTSFN.loadSizeTypeValue(queue, false);
|
|
2070
|
+
while (node !== 0) {
|
|
2071
|
+
var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
|
|
2072
|
+
_free(node);
|
|
2073
|
+
node = next;
|
|
2074
|
+
}
|
|
2015
2075
|
_free(queue);
|
|
2016
2076
|
}
|
|
2017
2077
|
},
|
|
@@ -2024,6 +2084,7 @@
|
|
|
2024
2084
|
var node = _malloc(size);
|
|
2025
2085
|
if (!node)
|
|
2026
2086
|
throw new Error('OOM');
|
|
2087
|
+
node >>>= 0;
|
|
2027
2088
|
emnapiTSFN.storeSizeTypeValue(node, data, false);
|
|
2028
2089
|
emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
|
|
2029
2090
|
if (head === 0 && tail === 0) {
|
|
@@ -2059,11 +2120,11 @@
|
|
|
2059
2120
|
var waitCondition = function () {
|
|
2060
2121
|
var queueSize = emnapiTSFN.getQueueSize(func);
|
|
2061
2122
|
var maxSize = emnapiTSFN.getMaxQueueSize(func);
|
|
2062
|
-
|
|
2063
|
-
return queueSize >= maxSize && maxSize > 0 && !isClosing;
|
|
2123
|
+
return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0 /* State.kOpen */;
|
|
2064
2124
|
};
|
|
2065
2125
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
2066
|
-
|
|
2126
|
+
var shouldDelete = false;
|
|
2127
|
+
var ret = mutex.execute(function () {
|
|
2067
2128
|
while (waitCondition()) {
|
|
2068
2129
|
if (mode === 0 /* napi_threadsafe_function_call_mode.napi_tsfn_nonblocking */) {
|
|
2069
2130
|
return 15 /* napi_status.napi_queue_full */;
|
|
@@ -2080,31 +2141,35 @@
|
|
|
2080
2141
|
}
|
|
2081
2142
|
cond.wait();
|
|
2082
2143
|
}
|
|
2083
|
-
if (emnapiTSFN.
|
|
2084
|
-
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
2085
|
-
return 1 /* napi_status.napi_invalid_arg */;
|
|
2086
|
-
}
|
|
2087
|
-
else {
|
|
2088
|
-
emnapiTSFN.subThreadCount(func);
|
|
2089
|
-
return 16 /* napi_status.napi_closing */;
|
|
2090
|
-
}
|
|
2091
|
-
}
|
|
2092
|
-
else {
|
|
2144
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
2093
2145
|
emnapiTSFN.pushQueue(func, data);
|
|
2094
2146
|
emnapiTSFN.send(func);
|
|
2095
2147
|
return 0 /* napi_status.napi_ok */;
|
|
2096
2148
|
}
|
|
2149
|
+
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
2150
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2151
|
+
}
|
|
2152
|
+
emnapiTSFN.subThreadCount(func);
|
|
2153
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
2154
|
+
return 16 /* napi_status.napi_closing */;
|
|
2155
|
+
}
|
|
2156
|
+
shouldDelete = true;
|
|
2157
|
+
return 16 /* napi_status.napi_closing */;
|
|
2097
2158
|
});
|
|
2159
|
+
if (shouldDelete) {
|
|
2160
|
+
emnapiTSFN.destroy(func);
|
|
2161
|
+
}
|
|
2162
|
+
return ret;
|
|
2098
2163
|
},
|
|
2099
2164
|
getMutex: function (func) {
|
|
2100
2165
|
var index = func + emnapiTSFN.offset.mutex;
|
|
2101
2166
|
var mutex = {
|
|
2102
2167
|
lock: function () {
|
|
2103
2168
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
2104
|
-
var i32a = new Int32Array(
|
|
2169
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
2105
2170
|
if (isBrowserMain) {
|
|
2106
2171
|
while (true) {
|
|
2107
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
2172
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
2108
2173
|
if (oldValue === 0) {
|
|
2109
2174
|
return;
|
|
2110
2175
|
}
|
|
@@ -2112,11 +2177,11 @@
|
|
|
2112
2177
|
}
|
|
2113
2178
|
else {
|
|
2114
2179
|
while (true) {
|
|
2115
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
2180
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
2116
2181
|
if (oldValue === 0) {
|
|
2117
2182
|
return;
|
|
2118
2183
|
}
|
|
2119
|
-
Atomics.wait(i32a, 0,
|
|
2184
|
+
Atomics.wait(i32a, 0, 10);
|
|
2120
2185
|
}
|
|
2121
2186
|
}
|
|
2122
2187
|
},
|
|
@@ -2124,21 +2189,21 @@
|
|
|
2124
2189
|
return new Promise<void>(resolve => {
|
|
2125
2190
|
const again = (): void => { fn() }
|
|
2126
2191
|
const fn = (): void => {
|
|
2127
|
-
const i32a = new Int32Array(
|
|
2128
|
-
const oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
2192
|
+
const i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1)
|
|
2193
|
+
const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
|
|
2129
2194
|
if (oldValue === 0) {
|
|
2130
2195
|
resolve()
|
|
2131
2196
|
return
|
|
2132
2197
|
}
|
|
2133
|
-
(Atomics as any).waitAsync(i32a, 0,
|
|
2198
|
+
(Atomics as any).waitAsync(i32a, 0, 10).value.then(again)
|
|
2134
2199
|
}
|
|
2135
2200
|
fn()
|
|
2136
2201
|
})
|
|
2137
2202
|
}, */
|
|
2138
2203
|
unlock: function () {
|
|
2139
|
-
var i32a = new Int32Array(
|
|
2140
|
-
var oldValue = Atomics.compareExchange(i32a, 0,
|
|
2141
|
-
if (oldValue !==
|
|
2204
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
2205
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
2206
|
+
if (oldValue !== 10) {
|
|
2142
2207
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
2143
2208
|
}
|
|
2144
2209
|
Atomics.notify(i32a, 0, 1);
|
|
@@ -2170,14 +2235,14 @@
|
|
|
2170
2235
|
var mutex = emnapiTSFN.getMutex(func);
|
|
2171
2236
|
var cond = {
|
|
2172
2237
|
wait: function () {
|
|
2173
|
-
var i32a = new Int32Array(
|
|
2238
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
2174
2239
|
var value = Atomics.load(i32a, 0);
|
|
2175
2240
|
mutex.unlock();
|
|
2176
2241
|
Atomics.wait(i32a, 0, value);
|
|
2177
2242
|
mutex.lock();
|
|
2178
2243
|
},
|
|
2179
2244
|
/* waitAsync () {
|
|
2180
|
-
const i32a = new Int32Array(
|
|
2245
|
+
const i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1)
|
|
2181
2246
|
const value = Atomics.load(i32a, 0)
|
|
2182
2247
|
mutex.unlock()
|
|
2183
2248
|
const lock = (): Promise<void> => mutex.lockAsync()
|
|
@@ -2188,7 +2253,7 @@
|
|
|
2188
2253
|
}
|
|
2189
2254
|
}, */
|
|
2190
2255
|
signal: function () {
|
|
2191
|
-
var i32a = new Int32Array(
|
|
2256
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
2192
2257
|
Atomics.add(i32a, 0, 1);
|
|
2193
2258
|
Atomics.notify(i32a, 0, 1);
|
|
2194
2259
|
}
|
|
@@ -2201,15 +2266,15 @@
|
|
|
2201
2266
|
addQueueSize: function (func) {
|
|
2202
2267
|
var offset = emnapiTSFN.offset.queue_size;
|
|
2203
2268
|
var arr, index;
|
|
2204
|
-
arr = new Uint32Array(
|
|
2205
|
-
index = (func + offset)
|
|
2269
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
2270
|
+
index = (func + offset) >>> 2;
|
|
2206
2271
|
Atomics.add(arr, index, 1);
|
|
2207
2272
|
},
|
|
2208
2273
|
subQueueSize: function (func) {
|
|
2209
2274
|
var offset = emnapiTSFN.offset.queue_size;
|
|
2210
2275
|
var arr, index;
|
|
2211
|
-
arr = new Uint32Array(
|
|
2212
|
-
index = (func + offset)
|
|
2276
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
2277
|
+
index = (func + offset) >>> 2;
|
|
2213
2278
|
Atomics.sub(arr, index, 1);
|
|
2214
2279
|
},
|
|
2215
2280
|
getThreadCount: function (func) {
|
|
@@ -2218,31 +2283,31 @@
|
|
|
2218
2283
|
addThreadCount: function (func) {
|
|
2219
2284
|
var offset = emnapiTSFN.offset.thread_count;
|
|
2220
2285
|
var arr, index;
|
|
2221
|
-
arr = new Uint32Array(
|
|
2222
|
-
index = (func + offset)
|
|
2286
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
2287
|
+
index = (func + offset) >>> 2;
|
|
2223
2288
|
Atomics.add(arr, index, 1);
|
|
2224
2289
|
},
|
|
2225
2290
|
subThreadCount: function (func) {
|
|
2226
2291
|
var offset = emnapiTSFN.offset.thread_count;
|
|
2227
2292
|
var arr, index;
|
|
2228
|
-
arr = new Uint32Array(
|
|
2229
|
-
index = (func + offset)
|
|
2293
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
2294
|
+
index = (func + offset) >>> 2;
|
|
2230
2295
|
Atomics.sub(arr, index, 1);
|
|
2231
2296
|
},
|
|
2232
|
-
|
|
2233
|
-
return Atomics.load(new Int32Array(
|
|
2297
|
+
getState: function (func) {
|
|
2298
|
+
return Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.state + 4)), (func + emnapiTSFN.offset.state) >>> 2);
|
|
2234
2299
|
},
|
|
2235
|
-
|
|
2236
|
-
Atomics.store(new Int32Array(
|
|
2300
|
+
setState: function (func, value) {
|
|
2301
|
+
Atomics.store(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.state + 4)), (func + emnapiTSFN.offset.state) >>> 2, value);
|
|
2237
2302
|
},
|
|
2238
2303
|
getHandlesClosing: function (func) {
|
|
2239
|
-
return Atomics.load(new
|
|
2304
|
+
return Atomics.load(new Int8Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.handles_closing + 1)), (func + emnapiTSFN.offset.handles_closing));
|
|
2240
2305
|
},
|
|
2241
2306
|
setHandlesClosing: function (func, value) {
|
|
2242
|
-
Atomics.store(new
|
|
2307
|
+
Atomics.store(new Int8Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.handles_closing + 1)), (func + emnapiTSFN.offset.handles_closing), value);
|
|
2243
2308
|
},
|
|
2244
2309
|
getDispatchState: function (func) {
|
|
2245
|
-
return Atomics.load(new Uint32Array(
|
|
2310
|
+
return Atomics.load(new Uint32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.dispatch_state + 4)), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
|
|
2246
2311
|
},
|
|
2247
2312
|
getContext: function (func) {
|
|
2248
2313
|
return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
|
|
@@ -2272,68 +2337,98 @@
|
|
|
2272
2337
|
var ret;
|
|
2273
2338
|
var arr;
|
|
2274
2339
|
if (unsigned) {
|
|
2275
|
-
arr = new Uint32Array(
|
|
2276
|
-
ret = Atomics.load(arr, offset
|
|
2340
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
2341
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
2277
2342
|
return ret;
|
|
2278
2343
|
}
|
|
2279
2344
|
else {
|
|
2280
|
-
arr = new Int32Array(
|
|
2281
|
-
ret = Atomics.load(arr, offset
|
|
2345
|
+
arr = new Int32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
2346
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
2282
2347
|
return ret;
|
|
2283
2348
|
}
|
|
2284
2349
|
},
|
|
2285
2350
|
storeSizeTypeValue: function (offset, value, unsigned) {
|
|
2286
2351
|
var arr;
|
|
2287
2352
|
if (unsigned) {
|
|
2288
|
-
arr = new Uint32Array(
|
|
2289
|
-
Atomics.store(arr, offset
|
|
2353
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
2354
|
+
Atomics.store(arr, offset >>> 2, value);
|
|
2290
2355
|
return undefined;
|
|
2291
2356
|
}
|
|
2292
2357
|
else {
|
|
2293
|
-
arr = new Int32Array(
|
|
2294
|
-
Atomics.store(arr, offset
|
|
2358
|
+
arr = new Int32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
2359
|
+
Atomics.store(arr, offset >>> 2, value >>> 0);
|
|
2295
2360
|
return undefined;
|
|
2296
2361
|
}
|
|
2297
2362
|
},
|
|
2363
|
+
releaseResources: function (func) {
|
|
2364
|
+
if (emnapiTSFN.getState(func) !== 2 /* State.kClosed */) {
|
|
2365
|
+
emnapiTSFN.setState(func, 2 /* State.kClosed */);
|
|
2366
|
+
var env = emnapiTSFN.getEnv(func);
|
|
2367
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2368
|
+
var ref = emnapiTSFN.getRef(func);
|
|
2369
|
+
if (ref) {
|
|
2370
|
+
emnapiCtx.refStore.get(ref).dispose();
|
|
2371
|
+
}
|
|
2372
|
+
var resource = emnapiTSFN.getResource(func);
|
|
2373
|
+
emnapiCtx.refStore.get(resource).dispose();
|
|
2374
|
+
emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.is_some + 1);
|
|
2375
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2376
|
+
HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
|
|
2377
|
+
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
2378
|
+
envObject.unref();
|
|
2379
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
2380
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
2381
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
2382
|
+
if (Atomics.load(arr, asyncRefOffset) > 0) {
|
|
2383
|
+
Atomics.store(arr, asyncRefOffset, 0);
|
|
2384
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2385
|
+
}
|
|
2386
|
+
if (emnapiNodeBinding) {
|
|
2387
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
2388
|
+
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
2389
|
+
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
2390
|
+
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
2391
|
+
}
|
|
2392
|
+
}
|
|
2393
|
+
},
|
|
2298
2394
|
destroy: function (func) {
|
|
2395
|
+
emnapiTSFN._liveSet.delete(func);
|
|
2299
2396
|
emnapiTSFN.destroyQueue(func);
|
|
2300
|
-
|
|
2301
|
-
var envObject = emnapiCtx.envStore.get(env);
|
|
2302
|
-
var ref = emnapiTSFN.getRef(func);
|
|
2303
|
-
if (ref) {
|
|
2304
|
-
emnapiCtx.refStore.get(ref).dispose();
|
|
2305
|
-
}
|
|
2306
|
-
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
2307
|
-
envObject.unref();
|
|
2308
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
2309
|
-
var arr = new Int32Array(wasmMemory.buffer);
|
|
2310
|
-
if (Atomics.load(arr, asyncRefOffset)) {
|
|
2311
|
-
Atomics.store(arr, asyncRefOffset, 0);
|
|
2312
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2313
|
-
}
|
|
2314
|
-
var resource = emnapiTSFN.getResource(func);
|
|
2315
|
-
emnapiCtx.refStore.get(resource).dispose();
|
|
2316
|
-
if (emnapiNodeBinding) {
|
|
2317
|
-
var view = new DataView(wasmMemory.buffer);
|
|
2318
|
-
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
2319
|
-
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
2320
|
-
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
2321
|
-
}
|
|
2397
|
+
emnapiTSFN.releaseResources(func);
|
|
2322
2398
|
_free(func);
|
|
2323
2399
|
},
|
|
2324
|
-
|
|
2400
|
+
emptyQueue: function (func) {
|
|
2401
|
+
var drainQueue = [];
|
|
2402
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
2403
|
+
while (emnapiTSFN.getQueueSize(func) > 0) {
|
|
2404
|
+
drainQueue.push(emnapiTSFN.shiftQueue(func));
|
|
2405
|
+
}
|
|
2406
|
+
});
|
|
2325
2407
|
var callJsCb = emnapiTSFN.getCallJSCb(func);
|
|
2326
2408
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2327
2409
|
var context = emnapiTSFN.getContext(func);
|
|
2328
2410
|
var data;
|
|
2329
|
-
|
|
2411
|
+
for (var i = 0; i < drainQueue.length; i++) {
|
|
2330
2412
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2331
|
-
data =
|
|
2413
|
+
data = drainQueue[i];
|
|
2332
2414
|
if (callJsCb) {
|
|
2333
2415
|
(wasmTable.get(callJsCb))(0, 0, context, data);
|
|
2334
2416
|
}
|
|
2335
2417
|
}
|
|
2336
|
-
|
|
2418
|
+
},
|
|
2419
|
+
maybeDelete: function (func) {
|
|
2420
|
+
var shouldDelete = false;
|
|
2421
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
2422
|
+
if (emnapiTSFN.getThreadCount(func) > 0) {
|
|
2423
|
+
emnapiTSFN.releaseResources(func);
|
|
2424
|
+
}
|
|
2425
|
+
else {
|
|
2426
|
+
shouldDelete = true;
|
|
2427
|
+
}
|
|
2428
|
+
});
|
|
2429
|
+
if (shouldDelete) {
|
|
2430
|
+
emnapiTSFN.destroy(func);
|
|
2431
|
+
}
|
|
2337
2432
|
},
|
|
2338
2433
|
finalize: function (func) {
|
|
2339
2434
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -2348,12 +2443,13 @@
|
|
|
2348
2443
|
envObject.callFinalizerInternal(0, finalize, data, context);
|
|
2349
2444
|
};
|
|
2350
2445
|
try {
|
|
2446
|
+
emnapiTSFN.emptyQueue(func);
|
|
2351
2447
|
if (finalize) {
|
|
2352
2448
|
if (emnapiNodeBinding) {
|
|
2353
2449
|
var resource = emnapiTSFN.getResource(func);
|
|
2354
2450
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
2355
2451
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
2356
|
-
var view = new DataView(
|
|
2452
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
2357
2453
|
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
2358
2454
|
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
2359
2455
|
emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
|
|
@@ -2365,7 +2461,7 @@
|
|
|
2365
2461
|
f();
|
|
2366
2462
|
}
|
|
2367
2463
|
}
|
|
2368
|
-
emnapiTSFN.
|
|
2464
|
+
emnapiTSFN.maybeDelete(func);
|
|
2369
2465
|
}
|
|
2370
2466
|
finally {
|
|
2371
2467
|
emnapiCtx.closeScope(envObject);
|
|
@@ -2381,7 +2477,7 @@
|
|
|
2381
2477
|
try {
|
|
2382
2478
|
if (set_closing) {
|
|
2383
2479
|
emnapiTSFN.getMutex(func).execute(function () {
|
|
2384
|
-
emnapiTSFN.
|
|
2480
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
2385
2481
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
2386
2482
|
emnapiTSFN.getCond(func).signal();
|
|
2387
2483
|
}
|
|
@@ -2391,6 +2487,7 @@
|
|
|
2391
2487
|
return;
|
|
2392
2488
|
}
|
|
2393
2489
|
emnapiTSFN.setHandlesClosing(func, 1);
|
|
2490
|
+
Atomics.store(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.async_pending + 4)), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
|
|
2394
2491
|
emnapiCtx.feature.setImmediate(function () {
|
|
2395
2492
|
emnapiTSFN.finalize(func);
|
|
2396
2493
|
});
|
|
@@ -2407,10 +2504,7 @@
|
|
|
2407
2504
|
var mutex = emnapiTSFN.getMutex(func);
|
|
2408
2505
|
var cond = emnapiTSFN.getCond(func);
|
|
2409
2506
|
mutex.execute(function () {
|
|
2410
|
-
if (emnapiTSFN.
|
|
2411
|
-
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
2412
|
-
}
|
|
2413
|
-
else {
|
|
2507
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
2414
2508
|
var size = emnapiTSFN.getQueueSize(func);
|
|
2415
2509
|
if (size > 0) {
|
|
2416
2510
|
data = emnapiTSFN.shiftQueue(func);
|
|
@@ -2423,7 +2517,7 @@
|
|
|
2423
2517
|
}
|
|
2424
2518
|
if (size === 0) {
|
|
2425
2519
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
2426
|
-
emnapiTSFN.
|
|
2520
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
2427
2521
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
2428
2522
|
cond.signal();
|
|
2429
2523
|
}
|
|
@@ -2434,6 +2528,9 @@
|
|
|
2434
2528
|
has_more = true;
|
|
2435
2529
|
}
|
|
2436
2530
|
}
|
|
2531
|
+
else {
|
|
2532
|
+
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
2533
|
+
}
|
|
2437
2534
|
});
|
|
2438
2535
|
if (popped_value) {
|
|
2439
2536
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -2462,7 +2559,7 @@
|
|
|
2462
2559
|
var resource = emnapiTSFN.getResource(func);
|
|
2463
2560
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
2464
2561
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
2465
|
-
var view = new DataView(
|
|
2562
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
2466
2563
|
emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
|
|
2467
2564
|
asyncId: view.getFloat64(func + emnapiTSFN.offset.async_id, true),
|
|
2468
2565
|
triggerAsyncId: view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true)
|
|
@@ -2481,8 +2578,9 @@
|
|
|
2481
2578
|
dispatch: function (func) {
|
|
2482
2579
|
var has_more = true;
|
|
2483
2580
|
var iterations_left = 1000;
|
|
2484
|
-
var
|
|
2485
|
-
var
|
|
2581
|
+
var dispatchStateAddress = func + emnapiTSFN.offset.dispatch_state;
|
|
2582
|
+
var ui32a = new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4));
|
|
2583
|
+
var index = dispatchStateAddress >>> 2;
|
|
2486
2584
|
while (has_more && --iterations_left !== 0) {
|
|
2487
2585
|
Atomics.store(ui32a, index, 1);
|
|
2488
2586
|
has_more = emnapiTSFN.dispatchOne(func);
|
|
@@ -2494,25 +2592,86 @@
|
|
|
2494
2592
|
emnapiTSFN.send(func);
|
|
2495
2593
|
}
|
|
2496
2594
|
},
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2595
|
+
enqueue: function (func) {
|
|
2596
|
+
// `pending` means a worker thread has requested a wakeup that has not
|
|
2597
|
+
// been drained on the main thread yet.
|
|
2598
|
+
var pending = func + emnapiTSFN.offset.async_pending;
|
|
2599
|
+
// `scheduled` prevents queueing the same main-thread drain chain more than
|
|
2600
|
+
// once while a previous wakeup is still in flight.
|
|
2601
|
+
var scheduled = func + emnapiTSFN.offset.async_u_fd;
|
|
2602
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(Math.max(pending, scheduled) + 4));
|
|
2603
|
+
if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
|
|
2500
2604
|
return;
|
|
2501
2605
|
}
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2606
|
+
// Match uv_async_send-style coalescing in JS: the first turn represents
|
|
2607
|
+
// the wakeup reaching the main thread, and the second turn performs the
|
|
2608
|
+
// actual TSFN drain after nearby Send/Signal calls have had a chance to
|
|
2609
|
+
// collapse into the shared AsyncProgressWorker state.
|
|
2610
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
2611
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
2612
|
+
return;
|
|
2613
|
+
}
|
|
2614
|
+
if (Atomics.load(i32a, pending >>> 2) === 0) {
|
|
2615
|
+
Atomics.store(i32a, scheduled >>> 2, 0);
|
|
2616
|
+
return;
|
|
2617
|
+
}
|
|
2618
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
2619
|
+
try {
|
|
2620
|
+
// Consume the coalesced wakeup once, then let dispatch() observe any
|
|
2621
|
+
// queue mutations through dispatch_state like the C implementation.
|
|
2622
|
+
if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
|
|
2623
|
+
return;
|
|
2624
|
+
}
|
|
2625
|
+
// After destroy(), the func address is freed. Skip dispatch
|
|
2626
|
+
// to avoid use-after-free (JS-side lifecycle check).
|
|
2627
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
2628
|
+
return;
|
|
2629
|
+
}
|
|
2630
|
+
emnapiTSFN.dispatch(func);
|
|
2631
|
+
}
|
|
2632
|
+
finally {
|
|
2633
|
+
// Allow a later wakeup to schedule a new drain chain. If another
|
|
2634
|
+
// worker-thread send raced with this drain, enqueue one more turn.
|
|
2635
|
+
if (emnapiTSFN._liveSet.has(func)) {
|
|
2636
|
+
Atomics.store(i32a, scheduled >>> 2, 0);
|
|
2637
|
+
if (Atomics.load(i32a, pending >>> 2) !== 0) {
|
|
2638
|
+
emnapiTSFN.enqueue(func);
|
|
2639
|
+
}
|
|
2508
2640
|
}
|
|
2509
2641
|
}
|
|
2510
2642
|
});
|
|
2643
|
+
});
|
|
2644
|
+
},
|
|
2645
|
+
send: function (func) {
|
|
2646
|
+
var dispatchStateAddress = func + emnapiTSFN.offset.dispatch_state;
|
|
2647
|
+
var current_state = Atomics.or(new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4)), dispatchStateAddress >>> 2, 1 << 1);
|
|
2648
|
+
if ((current_state & 1) === 1) {
|
|
2649
|
+
return;
|
|
2511
2650
|
}
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2651
|
+
var pendng = func + emnapiTSFN.offset.async_pending;
|
|
2652
|
+
// A wakeup is already pending, so this send only needs to leave the queued
|
|
2653
|
+
// work in the TSFN queue and let the existing drain pick it up.
|
|
2654
|
+
if (Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2) !== 0) {
|
|
2655
|
+
return;
|
|
2656
|
+
}
|
|
2657
|
+
if (Atomics.exchange(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2, 1) === 0) {
|
|
2658
|
+
if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
|
|
2659
|
+
// Worker threads only post a wakeup token. Main-thread draining is
|
|
2660
|
+
// serialized by enqueue() once the message is received.
|
|
2661
|
+
postMessage({
|
|
2662
|
+
__emnapi__: {
|
|
2663
|
+
type: 'tsfn-send',
|
|
2664
|
+
payload: {
|
|
2665
|
+
tsfn: func
|
|
2666
|
+
}
|
|
2667
|
+
}
|
|
2668
|
+
});
|
|
2669
|
+
}
|
|
2670
|
+
else {
|
|
2671
|
+
// On the main thread we can skip the cross-thread hop and schedule the
|
|
2672
|
+
// coalesced drain chain directly.
|
|
2673
|
+
emnapiTSFN.enqueue(func);
|
|
2674
|
+
}
|
|
2516
2675
|
}
|
|
2517
2676
|
}
|
|
2518
2677
|
};
|
|
@@ -2525,6 +2684,13 @@
|
|
|
2525
2684
|
envObject.checkGCAccess();
|
|
2526
2685
|
if (!async_resource_name)
|
|
2527
2686
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2687
|
+
max_queue_size >>>= 0;
|
|
2688
|
+
initial_thread_count >>>= 0;
|
|
2689
|
+
env >>>= 0;
|
|
2690
|
+
thread_finalize_data >>>= 0;
|
|
2691
|
+
thread_finalize_cb >>>= 0;
|
|
2692
|
+
context >>>= 0;
|
|
2693
|
+
call_js_cb >>>= 0;
|
|
2528
2694
|
max_queue_size = max_queue_size >>> 0;
|
|
2529
2695
|
initial_thread_count = initial_thread_count >>> 0;
|
|
2530
2696
|
if (initial_thread_count === 0) {
|
|
@@ -2533,6 +2699,7 @@
|
|
|
2533
2699
|
if (!result)
|
|
2534
2700
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2535
2701
|
var ref = 0;
|
|
2702
|
+
func >>>= 0;
|
|
2536
2703
|
if (!func) {
|
|
2537
2704
|
if (!call_js_cb)
|
|
2538
2705
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
@@ -2564,22 +2731,25 @@
|
|
|
2564
2731
|
asyncResourceName = String(asyncResourceName);
|
|
2565
2732
|
var resource_name = envObject.ensureHandleId(asyncResourceName);
|
|
2566
2733
|
// tsfn create
|
|
2567
|
-
var sizeofTSFN = emnapiTSFN.offset.
|
|
2734
|
+
var sizeofTSFN = emnapiTSFN.offset.__size__;
|
|
2735
|
+
// eslint-disable-next-line prefer-const
|
|
2568
2736
|
var tsfn = _malloc(sizeofTSFN);
|
|
2569
2737
|
if (!tsfn)
|
|
2570
2738
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
2571
|
-
|
|
2739
|
+
tsfn >>>= 0;
|
|
2740
|
+
new Uint8Array(emnapiTSFN.ensureBufferFor(tsfn + sizeofTSFN)).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
|
|
2572
2741
|
var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
2573
2742
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2574
2743
|
var resource_ = resourceRef.id;
|
|
2575
2744
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2576
|
-
HEAP_DATA_VIEW.setUint32(tsfn, resource_, true);
|
|
2745
|
+
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
|
|
2577
2746
|
if (!emnapiTSFN.initQueue(tsfn)) {
|
|
2578
2747
|
_free(tsfn);
|
|
2579
2748
|
resourceRef.dispose();
|
|
2580
2749
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
2581
2750
|
}
|
|
2582
2751
|
_emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
|
|
2752
|
+
HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
|
|
2583
2753
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
|
|
2584
2754
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
|
|
2585
2755
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
|
|
@@ -2589,9 +2759,11 @@
|
|
|
2589
2759
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
|
|
2590
2760
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
|
|
2591
2761
|
emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
|
|
2762
|
+
emnapiTSFN._liveSet.add(tsfn);
|
|
2592
2763
|
envObject.ref();
|
|
2593
2764
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
2594
|
-
HEAP_DATA_VIEW.
|
|
2765
|
+
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
|
|
2766
|
+
result >>>= 0;
|
|
2595
2767
|
HEAP_DATA_VIEW.setUint32(result, tsfn, true);
|
|
2596
2768
|
return envObject.clearLastError();
|
|
2597
2769
|
}
|
|
@@ -2601,6 +2773,8 @@
|
|
|
2601
2773
|
abort();
|
|
2602
2774
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2603
2775
|
}
|
|
2776
|
+
func >>>= 0;
|
|
2777
|
+
result >>>= 0;
|
|
2604
2778
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2605
2779
|
var context = emnapiTSFN.getContext(func);
|
|
2606
2780
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2613,6 +2787,8 @@
|
|
|
2613
2787
|
abort();
|
|
2614
2788
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2615
2789
|
}
|
|
2790
|
+
func >>>= 0;
|
|
2791
|
+
data >>>= 0;
|
|
2616
2792
|
return emnapiTSFN.push(func, data, mode);
|
|
2617
2793
|
}
|
|
2618
2794
|
/** @__sig ip */
|
|
@@ -2621,13 +2797,14 @@
|
|
|
2621
2797
|
abort();
|
|
2622
2798
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2623
2799
|
}
|
|
2800
|
+
func >>>= 0;
|
|
2624
2801
|
var mutex = emnapiTSFN.getMutex(func);
|
|
2625
2802
|
return mutex.execute(function () {
|
|
2626
|
-
if (emnapiTSFN.
|
|
2627
|
-
|
|
2803
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
2804
|
+
emnapiTSFN.addThreadCount(func);
|
|
2805
|
+
return 0 /* napi_status.napi_ok */;
|
|
2628
2806
|
}
|
|
2629
|
-
|
|
2630
|
-
return 0 /* napi_status.napi_ok */;
|
|
2807
|
+
return 16 /* napi_status.napi_closing */;
|
|
2631
2808
|
});
|
|
2632
2809
|
}
|
|
2633
2810
|
/** @__sig ipi */
|
|
@@ -2636,26 +2813,36 @@
|
|
|
2636
2813
|
abort();
|
|
2637
2814
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2638
2815
|
}
|
|
2816
|
+
func >>>= 0;
|
|
2639
2817
|
var mutex = emnapiTSFN.getMutex(func);
|
|
2640
2818
|
var cond = emnapiTSFN.getCond(func);
|
|
2641
|
-
|
|
2819
|
+
var shouldDelete = false;
|
|
2820
|
+
var ret = mutex.execute(function () {
|
|
2642
2821
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
2643
2822
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2644
2823
|
}
|
|
2645
2824
|
emnapiTSFN.subThreadCount(func);
|
|
2646
2825
|
if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
if (
|
|
2826
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
2827
|
+
if (mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
2828
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
2829
|
+
}
|
|
2830
|
+
if (emnapiTSFN.getState(func) === 1 /* State.kClosing */ && emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
2652
2831
|
cond.signal();
|
|
2653
2832
|
}
|
|
2654
2833
|
emnapiTSFN.send(func);
|
|
2655
2834
|
}
|
|
2656
2835
|
}
|
|
2836
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
2837
|
+
return 0 /* napi_status.napi_ok */;
|
|
2838
|
+
}
|
|
2839
|
+
shouldDelete = true;
|
|
2657
2840
|
return 0 /* napi_status.napi_ok */;
|
|
2658
2841
|
});
|
|
2842
|
+
if (shouldDelete) {
|
|
2843
|
+
emnapiTSFN.destroy(func);
|
|
2844
|
+
}
|
|
2845
|
+
return ret;
|
|
2659
2846
|
}
|
|
2660
2847
|
/** @__sig ipp */
|
|
2661
2848
|
function napi_unref_threadsafe_function(env, func) {
|
|
@@ -2663,11 +2850,16 @@
|
|
|
2663
2850
|
abort();
|
|
2664
2851
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2665
2852
|
}
|
|
2666
|
-
|
|
2667
|
-
var
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2853
|
+
func >>>= 0;
|
|
2854
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
2855
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
2856
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
2857
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
2858
|
+
if (currentValue > 0) {
|
|
2859
|
+
Atomics.store(arr, asyncRefOffset, currentValue - 1);
|
|
2860
|
+
if (currentValue === 1) {
|
|
2861
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2862
|
+
}
|
|
2671
2863
|
}
|
|
2672
2864
|
return 0 /* napi_status.napi_ok */;
|
|
2673
2865
|
}
|
|
@@ -2677,34 +2869,73 @@
|
|
|
2677
2869
|
abort();
|
|
2678
2870
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2679
2871
|
}
|
|
2680
|
-
|
|
2681
|
-
var
|
|
2682
|
-
|
|
2683
|
-
|
|
2872
|
+
func >>>= 0;
|
|
2873
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
2874
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
2875
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
2876
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
2877
|
+
if (!currentValue) {
|
|
2684
2878
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
2685
2879
|
}
|
|
2880
|
+
Atomics.store(arr, asyncRefOffset, currentValue + 1);
|
|
2686
2881
|
return 0 /* napi_status.napi_ok */;
|
|
2687
2882
|
}
|
|
2688
2883
|
var emnapiAWMT = {
|
|
2689
|
-
|
|
2690
|
-
runningWorkers: [],
|
|
2691
|
-
workQueue: [],
|
|
2884
|
+
pool: [],
|
|
2692
2885
|
workerReady: null,
|
|
2886
|
+
globalAddress: 0,
|
|
2887
|
+
globalOffset: {
|
|
2888
|
+
idle_threads: 0,
|
|
2889
|
+
q: 1 * 4,
|
|
2890
|
+
next: 1 * 4,
|
|
2891
|
+
prev: 2 * 4,
|
|
2892
|
+
mutex: 3 * 4,
|
|
2893
|
+
cond: 4 * 4,
|
|
2894
|
+
exit_message: 5 * 4,
|
|
2895
|
+
end: 7 * 4
|
|
2896
|
+
},
|
|
2693
2897
|
offset: {
|
|
2694
2898
|
/* napi_ref */ resource: 0,
|
|
2695
2899
|
/* double */ async_id: 8,
|
|
2696
2900
|
/* double */ trigger_async_id: 16,
|
|
2697
2901
|
/* napi_env */ env: 24,
|
|
2698
|
-
/*
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2902
|
+
/* int32_t */ status: 1 * 4 + 24, // 0 for pending, 1 for cancelled, 2 for completed
|
|
2903
|
+
queue: 2 * 4 + 24,
|
|
2904
|
+
queue_next: 2 * 4 + 24,
|
|
2905
|
+
queue_prev: 3 * 4 + 24,
|
|
2906
|
+
/* void* */ data: 4 * 4 + 24,
|
|
2907
|
+
/* napi_async_execute_callback */ execute: 5 * 4 + 24,
|
|
2908
|
+
/* napi_async_complete_callback */ complete: 6 * 4 + 24,
|
|
2909
|
+
end: 7 * 4 + 24
|
|
2910
|
+
},
|
|
2911
|
+
/**
|
|
2912
|
+
* When another thread grows the shared WebAssembly.Memory, this agent's
|
|
2913
|
+
* cached `wasmMemory.buffer` may still have the old shorter length
|
|
2914
|
+
* (V8 refreshes it lazily). If a pointer derived from shared memory lies
|
|
2915
|
+
* beyond the cached length, `wasmMemory.grow(0)` forces the agent to
|
|
2916
|
+
* observe the current memory size and refreshes the buffer.
|
|
2917
|
+
*/
|
|
2918
|
+
ensureBufferFor: function (end) {
|
|
2919
|
+
var buffer = wasmMemory.buffer;
|
|
2920
|
+
if (end > buffer.byteLength) {
|
|
2921
|
+
wasmMemory.grow(0);
|
|
2922
|
+
buffer = wasmMemory.buffer;
|
|
2923
|
+
}
|
|
2924
|
+
return buffer;
|
|
2702
2925
|
},
|
|
2703
2926
|
init: function () {
|
|
2704
|
-
emnapiAWMT.
|
|
2705
|
-
emnapiAWMT.runningWorkers = [];
|
|
2706
|
-
emnapiAWMT.workQueue = [];
|
|
2927
|
+
emnapiAWMT.pool = [];
|
|
2707
2928
|
emnapiAWMT.workerReady = null;
|
|
2929
|
+
if (typeof PThread !== 'undefined') {
|
|
2930
|
+
PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
|
|
2931
|
+
Object.values(PThread.pthreads).forEach(emnapiAWMT.addListener);
|
|
2932
|
+
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
2933
|
+
PThread.getNewWorker = function () {
|
|
2934
|
+
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
2935
|
+
emnapiAWMT.addListener(r);
|
|
2936
|
+
return r;
|
|
2937
|
+
};
|
|
2938
|
+
}
|
|
2708
2939
|
},
|
|
2709
2940
|
addListener: function (worker) {
|
|
2710
2941
|
if (!worker)
|
|
@@ -2718,18 +2949,8 @@
|
|
|
2718
2949
|
var type = __emnapi__.type;
|
|
2719
2950
|
var payload = __emnapi__.payload;
|
|
2720
2951
|
if (type === 'async-work-complete') {
|
|
2721
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2722
|
-
emnapiAWMT.runningWorkers.splice(emnapiAWMT.runningWorkers.indexOf(worker), 1);
|
|
2723
|
-
emnapiAWMT.unusedWorkers.push(worker);
|
|
2724
|
-
emnapiAWMT.checkIdleWorker();
|
|
2725
2952
|
emnapiAWMT.callComplete(payload.work, 0 /* napi_status.napi_ok */);
|
|
2726
2953
|
}
|
|
2727
|
-
else if (type === 'async-work-queue') {
|
|
2728
|
-
emnapiAWMT.scheduleWork(payload.work);
|
|
2729
|
-
}
|
|
2730
|
-
else if (type === 'async-work-cancel') {
|
|
2731
|
-
emnapiAWMT.cancelWork(payload.work);
|
|
2732
|
-
}
|
|
2733
2954
|
}
|
|
2734
2955
|
};
|
|
2735
2956
|
var dispose = function () {
|
|
@@ -2750,6 +2971,26 @@
|
|
|
2750
2971
|
}
|
|
2751
2972
|
return true;
|
|
2752
2973
|
},
|
|
2974
|
+
initGlobal: function () {
|
|
2975
|
+
if (!emnapiAWMT.globalAddress) {
|
|
2976
|
+
emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
|
|
2977
|
+
emnapiAWMT.globalAddress >>>= 0;
|
|
2978
|
+
var size = emnapiAWMT.globalOffset.end;
|
|
2979
|
+
var addr = emnapiAWMT.globalAddress;
|
|
2980
|
+
new Uint8Array(emnapiAWMT.ensureBufferFor(addr + size), addr, size).fill(0);
|
|
2981
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
|
|
2982
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
|
|
2983
|
+
}
|
|
2984
|
+
},
|
|
2985
|
+
terminateWorkers: function () {
|
|
2986
|
+
emnapiAWMT.pool.forEach(function (w) {
|
|
2987
|
+
var _a, _b;
|
|
2988
|
+
(_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
2989
|
+
(_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
2990
|
+
w.terminate();
|
|
2991
|
+
});
|
|
2992
|
+
emnapiAWMT.pool.length = 0;
|
|
2993
|
+
},
|
|
2753
2994
|
initWorkers: function (n) {
|
|
2754
2995
|
if (ENVIRONMENT_IS_PTHREAD) {
|
|
2755
2996
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
@@ -2757,137 +2998,212 @@
|
|
|
2757
2998
|
}
|
|
2758
2999
|
if (emnapiAWMT.workerReady)
|
|
2759
3000
|
return emnapiAWMT.workerReady;
|
|
2760
|
-
if (typeof onCreateWorker !== 'function') {
|
|
2761
|
-
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
2762
|
-
}
|
|
2763
|
-
var promises = [];
|
|
2764
|
-
var args = [];
|
|
2765
3001
|
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
2766
3002
|
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
2767
3003
|
}
|
|
3004
|
+
var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
|
|
3005
|
+
var args = [];
|
|
3006
|
+
emnapiAWMT.initGlobal();
|
|
2768
3007
|
for (var i = 0; i < n; ++i) {
|
|
2769
|
-
args.push(
|
|
3008
|
+
args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
|
|
2770
3009
|
}
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
var p = PThread.loadWasmModuleToWorker(worker);
|
|
2775
|
-
emnapiAWMT.addListener(worker);
|
|
2776
|
-
promises.push(p.then(function () {
|
|
2777
|
-
if (typeof worker.unref === 'function') {
|
|
2778
|
-
worker.unref();
|
|
2779
|
-
}
|
|
2780
|
-
}));
|
|
2781
|
-
emnapiAWMT.unusedWorkers.push(worker);
|
|
2782
|
-
var arg = args[i];
|
|
2783
|
-
worker.threadBlockBase = arg;
|
|
2784
|
-
worker.postMessage({
|
|
2785
|
-
__emnapi__: {
|
|
2786
|
-
type: 'async-worker-init',
|
|
2787
|
-
payload: { arg: arg }
|
|
2788
|
-
}
|
|
2789
|
-
});
|
|
2790
|
-
};
|
|
2791
|
-
for (var i = 0; i < n; ++i) {
|
|
2792
|
-
_loop_1(i);
|
|
3010
|
+
var promises = args.map(function (index) {
|
|
3011
|
+
if (index === 0) {
|
|
3012
|
+
return Promise.reject(new Error('Failed to create async worker'));
|
|
2793
3013
|
}
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
_free(arg);
|
|
3014
|
+
var worker;
|
|
3015
|
+
if (index < 0) {
|
|
3016
|
+
worker = emnapiAWMT.pool[-index - 1];
|
|
3017
|
+
if (worker)
|
|
3018
|
+
return worker.whenLoaded;
|
|
2800
3019
|
}
|
|
2801
|
-
|
|
2802
|
-
|
|
3020
|
+
index >>>= 0;
|
|
3021
|
+
var tidOffset = 20;
|
|
3022
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(index + tidOffset + 4));
|
|
3023
|
+
var tid = view.getInt32(index + tidOffset, true);
|
|
3024
|
+
worker = PThread.pthreads[tid];
|
|
3025
|
+
return worker.whenLoaded;
|
|
3026
|
+
});
|
|
2803
3027
|
emnapiAWMT.workerReady = Promise.all(promises);
|
|
2804
3028
|
return emnapiAWMT.workerReady;
|
|
2805
3029
|
},
|
|
2806
|
-
checkIdleWorker: function () {
|
|
2807
|
-
if (emnapiAWMT.unusedWorkers.length > 0 && emnapiAWMT.workQueue.length > 0) {
|
|
2808
|
-
var worker = emnapiAWMT.unusedWorkers.shift();
|
|
2809
|
-
var work = emnapiAWMT.workQueue.shift();
|
|
2810
|
-
emnapiAWMT.runningWorkers.push(worker);
|
|
2811
|
-
worker.postMessage({
|
|
2812
|
-
__emnapi__: {
|
|
2813
|
-
type: 'async-work-execute',
|
|
2814
|
-
payload: { work: work }
|
|
2815
|
-
}
|
|
2816
|
-
});
|
|
2817
|
-
}
|
|
2818
|
-
},
|
|
2819
3030
|
getResource: function (work) {
|
|
2820
|
-
|
|
3031
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.resource + 4);
|
|
3032
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3033
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
|
|
2821
3034
|
},
|
|
2822
3035
|
getExecute: function (work) {
|
|
2823
|
-
|
|
3036
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.execute + 4);
|
|
3037
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3038
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
|
|
2824
3039
|
},
|
|
2825
3040
|
getComplete: function (work) {
|
|
2826
|
-
|
|
3041
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.complete + 4);
|
|
3042
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3043
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
|
|
2827
3044
|
},
|
|
2828
3045
|
getEnv: function (work) {
|
|
2829
|
-
|
|
3046
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.env + 4);
|
|
3047
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3048
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
|
|
2830
3049
|
},
|
|
2831
3050
|
getData: function (work) {
|
|
2832
|
-
|
|
3051
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.data + 4);
|
|
3052
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3053
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
|
|
3054
|
+
},
|
|
3055
|
+
getMutex: function () {
|
|
3056
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
|
|
3057
|
+
var mutex = {
|
|
3058
|
+
lock: function () {
|
|
3059
|
+
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
3060
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
3061
|
+
if (isBrowserMain) {
|
|
3062
|
+
while (true) {
|
|
3063
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
3064
|
+
if (oldValue === 0) {
|
|
3065
|
+
return;
|
|
3066
|
+
}
|
|
3067
|
+
}
|
|
3068
|
+
}
|
|
3069
|
+
else {
|
|
3070
|
+
while (true) {
|
|
3071
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
3072
|
+
if (oldValue === 0) {
|
|
3073
|
+
return;
|
|
3074
|
+
}
|
|
3075
|
+
Atomics.wait(i32a, 0, 10);
|
|
3076
|
+
}
|
|
3077
|
+
}
|
|
3078
|
+
},
|
|
3079
|
+
unlock: function () {
|
|
3080
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
3081
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
3082
|
+
if (oldValue !== 10) {
|
|
3083
|
+
throw new Error('Tried to unlock while not holding the mutex');
|
|
3084
|
+
}
|
|
3085
|
+
Atomics.notify(i32a, 0, 1);
|
|
3086
|
+
},
|
|
3087
|
+
execute: function (fn) {
|
|
3088
|
+
mutex.lock();
|
|
3089
|
+
try {
|
|
3090
|
+
return fn();
|
|
3091
|
+
}
|
|
3092
|
+
finally {
|
|
3093
|
+
mutex.unlock();
|
|
3094
|
+
}
|
|
3095
|
+
}
|
|
3096
|
+
};
|
|
3097
|
+
return mutex;
|
|
3098
|
+
},
|
|
3099
|
+
getCond: function () {
|
|
3100
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
|
|
3101
|
+
var mutex = emnapiAWMT.getMutex();
|
|
3102
|
+
var cond = {
|
|
3103
|
+
wait: function () {
|
|
3104
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
3105
|
+
var value = Atomics.load(i32a, 0);
|
|
3106
|
+
mutex.unlock();
|
|
3107
|
+
Atomics.wait(i32a, 0, value);
|
|
3108
|
+
mutex.lock();
|
|
3109
|
+
},
|
|
3110
|
+
signal: function () {
|
|
3111
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
3112
|
+
Atomics.add(i32a, 0, 1);
|
|
3113
|
+
Atomics.notify(i32a, 0, 1);
|
|
3114
|
+
}
|
|
3115
|
+
};
|
|
3116
|
+
return cond;
|
|
3117
|
+
},
|
|
3118
|
+
queueInit: function (q) {
|
|
3119
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
3120
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3121
|
+
HEAP_DATA_VIEW.setUint32(q, q, true);
|
|
3122
|
+
HEAP_DATA_VIEW.setUint32(q + 4, q, true);
|
|
3123
|
+
},
|
|
3124
|
+
queueInsertTail: function (h, q) {
|
|
3125
|
+
emnapiAWMT.ensureBufferFor(h + 4 + 4);
|
|
3126
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
3127
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3128
|
+
HEAP_DATA_VIEW.setUint32(q, h, true);
|
|
3129
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3130
|
+
var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
|
|
3131
|
+
HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
|
|
3132
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3133
|
+
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
3134
|
+
HEAP_DATA_VIEW.setUint32(qprev, q, true);
|
|
3135
|
+
HEAP_DATA_VIEW.setUint32(h + 4, q, true);
|
|
3136
|
+
},
|
|
3137
|
+
queueRemove: function (q) {
|
|
3138
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
3139
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3140
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3141
|
+
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
3142
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3143
|
+
var qnext = HEAP_DATA_VIEW.getUint32(q, true);
|
|
3144
|
+
HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
|
|
3145
|
+
HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
|
|
3146
|
+
},
|
|
3147
|
+
queueEmpty: function (q) {
|
|
3148
|
+
emnapiAWMT.ensureBufferFor(q + 4);
|
|
3149
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3150
|
+
// eslint-disable-next-line eqeqeq
|
|
3151
|
+
return q == HEAP_DATA_VIEW.getUint32(q, true);
|
|
2833
3152
|
},
|
|
2834
3153
|
scheduleWork: function (work) {
|
|
2835
3154
|
var _a;
|
|
2836
|
-
if (
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
}
|
|
3155
|
+
if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
|
|
3156
|
+
emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
|
|
3157
|
+
emnapiAWMT.workerReady.ready = true;
|
|
3158
|
+
}).catch(function (err) {
|
|
3159
|
+
emnapiAWMT.workerReady = null;
|
|
3160
|
+
throw err;
|
|
2843
3161
|
});
|
|
2844
|
-
return;
|
|
2845
3162
|
}
|
|
2846
3163
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
2847
|
-
emnapiAWMT.
|
|
2848
|
-
|
|
2849
|
-
|
|
3164
|
+
var statusBuffer = new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1);
|
|
3165
|
+
Atomics.store(statusBuffer, 0, 0 /* AsyncWorkStatus.Pending */);
|
|
3166
|
+
var mutex = emnapiAWMT.getMutex();
|
|
3167
|
+
var cond = emnapiAWMT.getCond();
|
|
3168
|
+
mutex.lock();
|
|
3169
|
+
try {
|
|
3170
|
+
emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
|
|
2850
3171
|
}
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
}, fail);
|
|
2861
|
-
}
|
|
2862
|
-
catch (err) {
|
|
2863
|
-
fail(err);
|
|
2864
|
-
}
|
|
3172
|
+
catch (err) {
|
|
3173
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
3174
|
+
mutex.unlock();
|
|
3175
|
+
throw err;
|
|
3176
|
+
}
|
|
3177
|
+
emnapiAWMT.ensureBufferFor(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads + 4);
|
|
3178
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3179
|
+
if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
|
|
3180
|
+
cond.signal();
|
|
2865
3181
|
}
|
|
3182
|
+
mutex.unlock();
|
|
2866
3183
|
},
|
|
2867
3184
|
cancelWork: function (work) {
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
}
|
|
2876
|
-
|
|
3185
|
+
var cancelled = false;
|
|
3186
|
+
emnapiAWMT.getMutex().execute(function () {
|
|
3187
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4);
|
|
3188
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3189
|
+
cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2 /* AsyncWorkStatus.Completed */;
|
|
3190
|
+
if (cancelled) {
|
|
3191
|
+
emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
|
|
3192
|
+
}
|
|
3193
|
+
});
|
|
3194
|
+
if (!cancelled) {
|
|
3195
|
+
return 9 /* napi_status.napi_generic_failure */;
|
|
2877
3196
|
}
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
emnapiAWMT.workQueue.splice(index, 1);
|
|
2881
|
-
emnapiCtx.feature.setImmediate(function () {
|
|
2882
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2883
|
-
emnapiAWMT.checkIdleWorker();
|
|
2884
|
-
emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
|
|
2885
|
-
});
|
|
2886
|
-
return 0 /* napi_status.napi_ok */;
|
|
3197
|
+
if (Atomics.compareExchange(new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1), 0, 0 /* AsyncWorkStatus.Pending */, 1 /* AsyncWorkStatus.Cancelled */) !== 0 /* AsyncWorkStatus.Pending */) {
|
|
3198
|
+
return 9 /* napi_status.napi_generic_failure */;
|
|
2887
3199
|
}
|
|
2888
|
-
|
|
3200
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
3201
|
+
emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
|
|
3202
|
+
});
|
|
3203
|
+
return 0 /* napi_status.napi_ok */;
|
|
2889
3204
|
},
|
|
2890
3205
|
callComplete: function (work, status) {
|
|
3206
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2891
3207
|
var complete = emnapiAWMT.getComplete(work);
|
|
2892
3208
|
var env = emnapiAWMT.getEnv(work);
|
|
2893
3209
|
var data = emnapiAWMT.getData(work);
|
|
@@ -2905,7 +3221,7 @@
|
|
|
2905
3221
|
var resource = emnapiAWMT.getResource(work);
|
|
2906
3222
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
2907
3223
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
2908
|
-
var view = new DataView(
|
|
3224
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.trigger_async_id + 8));
|
|
2909
3225
|
var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
|
|
2910
3226
|
var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
|
|
2911
3227
|
emnapiNodeBinding.node.makeCallback(resourceObject, callback, [], {
|
|
@@ -2922,6 +3238,7 @@
|
|
|
2922
3238
|
}
|
|
2923
3239
|
}
|
|
2924
3240
|
};
|
|
3241
|
+
emnapiAWMT.init();
|
|
2925
3242
|
/** @__sig ippppppp */
|
|
2926
3243
|
var napi_create_async_work = singleThreadAsyncWork
|
|
2927
3244
|
? function (env, resource, resource_name, execute, complete, data, result) {
|
|
@@ -2946,6 +3263,7 @@
|
|
|
2946
3263
|
var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
|
|
2947
3264
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2948
3265
|
var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
|
|
3266
|
+
result >>>= 0;
|
|
2949
3267
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2950
3268
|
HEAP_DATA_VIEW.setUint32(result, id, true);
|
|
2951
3269
|
return envObject.clearLastError();
|
|
@@ -2973,7 +3291,8 @@
|
|
|
2973
3291
|
var aw = _malloc(sizeofAW);
|
|
2974
3292
|
if (!aw)
|
|
2975
3293
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
2976
|
-
|
|
3294
|
+
aw >>>= 0;
|
|
3295
|
+
new Uint8Array(emnapiAWMT.ensureBufferFor(aw + sizeofAW)).subarray(aw, aw + sizeofAW).fill(0);
|
|
2977
3296
|
var s = envObject.ensureHandleId(resourceObject);
|
|
2978
3297
|
var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
2979
3298
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -2985,6 +3304,8 @@
|
|
|
2985
3304
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
|
|
2986
3305
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
|
|
2987
3306
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
|
|
3307
|
+
emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
|
|
3308
|
+
result >>>= 0;
|
|
2988
3309
|
HEAP_DATA_VIEW.setUint32(result, aw, true);
|
|
2989
3310
|
return envObject.clearLastError();
|
|
2990
3311
|
};
|
|
@@ -2998,6 +3319,7 @@
|
|
|
2998
3319
|
envObject.checkGCAccess();
|
|
2999
3320
|
if (!work)
|
|
3000
3321
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3322
|
+
work >>>= 0;
|
|
3001
3323
|
emnapiAWST.remove(work);
|
|
3002
3324
|
return envObject.clearLastError();
|
|
3003
3325
|
}
|
|
@@ -3009,10 +3331,11 @@
|
|
|
3009
3331
|
envObject.checkGCAccess();
|
|
3010
3332
|
if (!work)
|
|
3011
3333
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3334
|
+
work >>>= 0;
|
|
3012
3335
|
var resource = emnapiAWMT.getResource(work);
|
|
3013
3336
|
emnapiCtx.refStore.get(resource).dispose();
|
|
3014
3337
|
if (emnapiNodeBinding) {
|
|
3015
|
-
var view = new DataView(
|
|
3338
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.trigger_async_id + 8));
|
|
3016
3339
|
var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
|
|
3017
3340
|
var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
|
|
3018
3341
|
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
@@ -3028,6 +3351,7 @@
|
|
|
3028
3351
|
var envObject = emnapiCtx.envStore.get(env);
|
|
3029
3352
|
if (!work)
|
|
3030
3353
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3354
|
+
work >>>= 0;
|
|
3031
3355
|
emnapiAWST.queue(work);
|
|
3032
3356
|
return envObject.clearLastError();
|
|
3033
3357
|
}
|
|
@@ -3037,6 +3361,7 @@
|
|
|
3037
3361
|
var envObject = emnapiCtx.envStore.get(env);
|
|
3038
3362
|
if (!work)
|
|
3039
3363
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3364
|
+
work >>>= 0;
|
|
3040
3365
|
emnapiAWMT.scheduleWork(work);
|
|
3041
3366
|
return envObject.clearLastError();
|
|
3042
3367
|
};
|
|
@@ -3048,6 +3373,7 @@
|
|
|
3048
3373
|
var envObject = emnapiCtx.envStore.get(env);
|
|
3049
3374
|
if (!work)
|
|
3050
3375
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3376
|
+
work >>>= 0;
|
|
3051
3377
|
var status = emnapiAWST.cancel(work);
|
|
3052
3378
|
if (status === 0 /* napi_status.napi_ok */)
|
|
3053
3379
|
return envObject.clearLastError();
|
|
@@ -3059,42 +3385,129 @@
|
|
|
3059
3385
|
var envObject = emnapiCtx.envStore.get(env);
|
|
3060
3386
|
if (!work)
|
|
3061
3387
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3388
|
+
work >>>= 0;
|
|
3062
3389
|
var status = emnapiAWMT.cancelWork(work);
|
|
3063
3390
|
if (status === 0 /* napi_status.napi_ok */)
|
|
3064
3391
|
return envObject.clearLastError();
|
|
3065
3392
|
return envObject.setLastError(status);
|
|
3066
3393
|
};
|
|
3067
|
-
|
|
3394
|
+
/** @__sig pp */
|
|
3395
|
+
function _emnapi_async_worker(globalAddress) {
|
|
3396
|
+
globalAddress >>>= 0;
|
|
3397
|
+
emnapiAWMT.globalAddress = globalAddress;
|
|
3398
|
+
var mutex = emnapiAWMT.getMutex();
|
|
3399
|
+
var cond = emnapiAWMT.getCond();
|
|
3400
|
+
mutex.lock();
|
|
3401
|
+
var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
|
|
3402
|
+
var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
|
|
3403
|
+
var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
|
|
3404
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3405
|
+
for (;;) {
|
|
3406
|
+
emnapiAWMT.ensureBufferFor(workerQueueAddr + 4);
|
|
3407
|
+
while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
|
|
3408
|
+
Atomics.add(new Int32Array(emnapiAWMT.ensureBufferFor(idleThreadsAddr + 4), idleThreadsAddr, 1), 0, 1);
|
|
3409
|
+
cond.wait();
|
|
3410
|
+
Atomics.sub(new Int32Array(emnapiAWMT.ensureBufferFor(idleThreadsAddr + 4), idleThreadsAddr, 1), 0, 1);
|
|
3411
|
+
}
|
|
3412
|
+
var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
|
|
3413
|
+
if (q === exitMessageAddr) {
|
|
3414
|
+
cond.signal();
|
|
3415
|
+
mutex.unlock();
|
|
3416
|
+
break;
|
|
3417
|
+
}
|
|
3418
|
+
var work = q - emnapiAWMT.offset.queue;
|
|
3419
|
+
emnapiAWMT.queueRemove(q);
|
|
3420
|
+
emnapiAWMT.queueInit(q);
|
|
3421
|
+
mutex.unlock();
|
|
3422
|
+
var statusBuffer = new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1);
|
|
3423
|
+
if (Atomics.load(statusBuffer, 0) === 1 /* AsyncWorkStatus.Cancelled */) {
|
|
3424
|
+
abort('unreachable');
|
|
3425
|
+
}
|
|
3426
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3427
|
+
var execute = emnapiAWMT.getExecute(work);
|
|
3428
|
+
var env = emnapiAWMT.getEnv(work);
|
|
3429
|
+
var data = emnapiAWMT.getData(work);
|
|
3430
|
+
(wasmTable.get(execute))(env, data);
|
|
3431
|
+
Atomics.store(statusBuffer, 0, 2 /* AsyncWorkStatus.Completed */);
|
|
3432
|
+
var postMessage_1 = napiModule.postMessage;
|
|
3433
|
+
postMessage_1({
|
|
3434
|
+
__emnapi__: {
|
|
3435
|
+
type: 'async-work-complete',
|
|
3436
|
+
payload: { work: work }
|
|
3437
|
+
}
|
|
3438
|
+
});
|
|
3439
|
+
mutex.lock();
|
|
3440
|
+
}
|
|
3441
|
+
return 0;
|
|
3442
|
+
}
|
|
3443
|
+
/** @__sig ipp */
|
|
3444
|
+
function _emnapi_spawn_worker(f, globalAddress) {
|
|
3445
|
+
if (typeof onCreateWorker !== 'function') {
|
|
3446
|
+
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
3447
|
+
}
|
|
3448
|
+
var promises = [];
|
|
3449
|
+
var args = [];
|
|
3450
|
+
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
3451
|
+
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
3452
|
+
}
|
|
3453
|
+
args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
|
|
3454
|
+
var handleError = function (e) {
|
|
3455
|
+
if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
|
|
3456
|
+
emnapiAWMT.terminateWorkers();
|
|
3457
|
+
}
|
|
3458
|
+
};
|
|
3459
|
+
var ret;
|
|
3460
|
+
try {
|
|
3461
|
+
var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
|
|
3462
|
+
var p = PThread.loadWasmModuleToWorker(worker_1);
|
|
3463
|
+
if (ENVIRONMENT_IS_NODE) {
|
|
3464
|
+
worker_1.on('error', handleError);
|
|
3465
|
+
}
|
|
3466
|
+
else {
|
|
3467
|
+
worker_1.addEventListener('error', handleError, false);
|
|
3468
|
+
}
|
|
3469
|
+
emnapiAWMT.addListener(worker_1);
|
|
3470
|
+
emnapiTSFN.addListener(worker_1);
|
|
3471
|
+
promises.push(p.then(function () {
|
|
3472
|
+
if (typeof worker_1.unref === 'function') {
|
|
3473
|
+
worker_1.unref();
|
|
3474
|
+
}
|
|
3475
|
+
}));
|
|
3476
|
+
ret = emnapiAWMT.pool.push(worker_1) - 1;
|
|
3477
|
+
var arg = args[0];
|
|
3478
|
+
worker_1.threadBlockBase = arg;
|
|
3479
|
+
worker_1.postMessage({
|
|
3480
|
+
__emnapi__: {
|
|
3481
|
+
type: 'async-worker-init',
|
|
3482
|
+
payload: { arg: arg, func: [f, globalAddress] }
|
|
3483
|
+
}
|
|
3484
|
+
});
|
|
3485
|
+
}
|
|
3486
|
+
catch (err) {
|
|
3487
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3488
|
+
var arg = args[0];
|
|
3489
|
+
_free(arg);
|
|
3490
|
+
throw err;
|
|
3491
|
+
}
|
|
3492
|
+
return ret;
|
|
3493
|
+
}
|
|
3494
|
+
function initWorker(startArg, func) {
|
|
3068
3495
|
if (napiModule.childThread) {
|
|
3069
3496
|
if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
|
|
3070
3497
|
throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
|
|
3071
3498
|
}
|
|
3072
3499
|
wasmInstance.exports.emnapi_async_worker_init(startArg);
|
|
3500
|
+
(wasmTable.get(func[0]))(func[1]);
|
|
3073
3501
|
}
|
|
3074
3502
|
else {
|
|
3075
3503
|
throw new Error('startThread is only available in child threads');
|
|
3076
3504
|
}
|
|
3077
3505
|
}
|
|
3078
|
-
function executeAsyncWork(work) {
|
|
3079
|
-
if (!ENVIRONMENT_IS_PTHREAD)
|
|
3080
|
-
return;
|
|
3081
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3082
|
-
var execute = emnapiAWMT.getExecute(work);
|
|
3083
|
-
var env = emnapiAWMT.getEnv(work);
|
|
3084
|
-
var data = emnapiAWMT.getData(work);
|
|
3085
|
-
(wasmTable.get(execute))(env, data);
|
|
3086
|
-
var postMessage = napiModule.postMessage;
|
|
3087
|
-
postMessage({
|
|
3088
|
-
__emnapi__: {
|
|
3089
|
-
type: 'async-work-complete',
|
|
3090
|
-
payload: { work: work }
|
|
3091
|
-
}
|
|
3092
|
-
});
|
|
3093
|
-
}
|
|
3094
3506
|
napiModule.initWorker = initWorker;
|
|
3095
|
-
napiModule.executeAsyncWork = executeAsyncWork;
|
|
3096
3507
|
var asyncWorkMod = /*#__PURE__*/ Object.freeze({
|
|
3097
3508
|
__proto__: null,
|
|
3509
|
+
_emnapi_async_worker: _emnapi_async_worker,
|
|
3510
|
+
_emnapi_spawn_worker: _emnapi_spawn_worker,
|
|
3098
3511
|
napi_cancel_async_work: napi_cancel_async_work,
|
|
3099
3512
|
napi_create_async_work: napi_create_async_work,
|
|
3100
3513
|
napi_delete_async_work: napi_delete_async_work,
|
|
@@ -3164,6 +3577,7 @@
|
|
|
3164
3577
|
var pointer = _malloc(arrayBuffer.byteLength);
|
|
3165
3578
|
if (!pointer)
|
|
3166
3579
|
throw new Error('Out of memory');
|
|
3580
|
+
pointer >>>= 0;
|
|
3167
3581
|
new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
|
|
3168
3582
|
info.address = pointer;
|
|
3169
3583
|
info.ownership = emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
|
|
@@ -3185,8 +3599,7 @@
|
|
|
3185
3599
|
}
|
|
3186
3600
|
return view;
|
|
3187
3601
|
}
|
|
3188
|
-
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) ||
|
|
3189
|
-
((typeof SharedArrayBuffer === 'function') && (view.buffer instanceof SharedArrayBuffer));
|
|
3602
|
+
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
|
|
3190
3603
|
if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
3191
3604
|
var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
|
|
3192
3605
|
var Ctor = info.Ctor;
|
|
@@ -3216,6 +3629,75 @@
|
|
|
3216
3629
|
return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
|
|
3217
3630
|
}
|
|
3218
3631
|
};
|
|
3632
|
+
/**
|
|
3633
|
+
* Metadata layout in wasm shared memory (allocated with _malloc):
|
|
3634
|
+
* offset 0: refcount (int32, 4 bytes - for Atomics)
|
|
3635
|
+
* offset POINTER_SIZE: external_data (pointer)
|
|
3636
|
+
* offset 2*POINTER_SIZE: byte_length (size_t)
|
|
3637
|
+
* offset 3*POINTER_SIZE: finalize_cb (pointer)
|
|
3638
|
+
* offset 4*POINTER_SIZE: finalize_data (pointer)
|
|
3639
|
+
* offset 5*POINTER_SIZE: finalize_hint (pointer)
|
|
3640
|
+
* Total: 6 * POINTER_SIZE bytes
|
|
3641
|
+
*/
|
|
3642
|
+
/**
|
|
3643
|
+
* @__postset
|
|
3644
|
+
* ```
|
|
3645
|
+
* emnapiExternalSAB.init();
|
|
3646
|
+
* ```
|
|
3647
|
+
*/
|
|
3648
|
+
var emnapiExternalSAB = {
|
|
3649
|
+
registry: undefined,
|
|
3650
|
+
handleTable: new WeakMap(),
|
|
3651
|
+
init: function () {
|
|
3652
|
+
emnapiExternalSAB.handleTable = new WeakMap();
|
|
3653
|
+
emnapiExternalSAB.registry = typeof FinalizationRegistry === 'function'
|
|
3654
|
+
? new FinalizationRegistry(function (metaPtr) {
|
|
3655
|
+
emnapiExternalSAB.release(metaPtr);
|
|
3656
|
+
})
|
|
3657
|
+
: undefined;
|
|
3658
|
+
},
|
|
3659
|
+
allocMeta: function (external_data, byte_length, finalize_cb, finalize_data, finalize_hint) {
|
|
3660
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3661
|
+
var size = 4 * 6;
|
|
3662
|
+
// eslint-disable-next-line prefer-const
|
|
3663
|
+
var metaPtr = _malloc(size);
|
|
3664
|
+
if (!metaPtr)
|
|
3665
|
+
throw new Error('Out of memory');
|
|
3666
|
+
metaPtr >>>= 0;
|
|
3667
|
+
// refcount = 1
|
|
3668
|
+
Atomics.store(new Int32Array(wasmMemory.buffer, metaPtr, 1), 0, 1);
|
|
3669
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3670
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 4, external_data, true);
|
|
3671
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 8, byte_length, true);
|
|
3672
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 12, finalize_cb, true);
|
|
3673
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 16, finalize_data, true);
|
|
3674
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 20, finalize_hint, true);
|
|
3675
|
+
return metaPtr;
|
|
3676
|
+
},
|
|
3677
|
+
readMeta: function (metaPtr) {
|
|
3678
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3679
|
+
var external_data = HEAP_DATA_VIEW.getUint32(metaPtr + 4, true);
|
|
3680
|
+
var byte_length = HEAP_DATA_VIEW.getUint32(metaPtr + 8, true);
|
|
3681
|
+
var finalize_cb = HEAP_DATA_VIEW.getUint32(metaPtr + 12, true);
|
|
3682
|
+
var finalize_data = HEAP_DATA_VIEW.getUint32(metaPtr + 16, true);
|
|
3683
|
+
var finalize_hint = HEAP_DATA_VIEW.getUint32(metaPtr + 20, true);
|
|
3684
|
+
return { external_data: external_data, byte_length: byte_length, finalize_cb: finalize_cb, finalize_data: finalize_data, finalize_hint: finalize_hint };
|
|
3685
|
+
},
|
|
3686
|
+
release: function (metaPtr) {
|
|
3687
|
+
var oldRefcount = Atomics.sub(new Int32Array(wasmMemory.buffer, metaPtr, 1), 0, 1);
|
|
3688
|
+
if (oldRefcount === 1) {
|
|
3689
|
+
// refcount reached 0, we are the last holder
|
|
3690
|
+
var info = emnapiExternalSAB.readMeta(metaPtr);
|
|
3691
|
+
var finalize_cb = info.finalize_cb;
|
|
3692
|
+
if (finalize_cb) {
|
|
3693
|
+
var finalize_data = info.finalize_data;
|
|
3694
|
+
var finalize_hint = info.finalize_hint;
|
|
3695
|
+
(wasmTable.get(finalize_cb))(finalize_data, finalize_hint);
|
|
3696
|
+
}
|
|
3697
|
+
_free(metaPtr);
|
|
3698
|
+
}
|
|
3699
|
+
}
|
|
3700
|
+
};
|
|
3219
3701
|
/* eslint-disable @typescript-eslint/indent */
|
|
3220
3702
|
/**
|
|
3221
3703
|
* @__postset
|
|
@@ -3326,7 +3808,7 @@
|
|
|
3326
3808
|
ptr >>>= 0;
|
|
3327
3809
|
var HEAPU8 = new Uint8Array(wasmMemory.buffer);
|
|
3328
3810
|
var end = ptr;
|
|
3329
|
-
if (length === -1) {
|
|
3811
|
+
if (length === -1 || length === 4294967295) {
|
|
3330
3812
|
for (; HEAPU8[end];)
|
|
3331
3813
|
++end;
|
|
3332
3814
|
}
|
|
@@ -3417,12 +3899,12 @@
|
|
|
3417
3899
|
return '';
|
|
3418
3900
|
ptr >>>= 0;
|
|
3419
3901
|
var end = ptr;
|
|
3420
|
-
if (length === -1) {
|
|
3421
|
-
var idx = end
|
|
3902
|
+
if (length === -1 || length === 4294967295) {
|
|
3903
|
+
var idx = end >>> 1;
|
|
3422
3904
|
var HEAPU16 = new Uint16Array(wasmMemory.buffer);
|
|
3423
3905
|
while (HEAPU16[idx])
|
|
3424
3906
|
++idx;
|
|
3425
|
-
end = idx << 1;
|
|
3907
|
+
end = (idx << 1) >>> 0;
|
|
3426
3908
|
}
|
|
3427
3909
|
else {
|
|
3428
3910
|
end = ptr + (length >>> 0) * 2;
|
|
@@ -3455,12 +3937,13 @@
|
|
|
3455
3937
|
return outPtr - startPtr;
|
|
3456
3938
|
},
|
|
3457
3939
|
newString: function (env, str, length, result, stringMaker) {
|
|
3940
|
+
length >>>= 0;
|
|
3458
3941
|
if (!env)
|
|
3459
3942
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
3460
3943
|
// @ts-expect-error
|
|
3461
3944
|
var envObject = emnapiCtx.envStore.get(env);
|
|
3462
3945
|
envObject.checkGCAccess();
|
|
3463
|
-
var autoLength = length === -1;
|
|
3946
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
3464
3947
|
var sizelength = length >>> 0;
|
|
3465
3948
|
if (length !== 0) {
|
|
3466
3949
|
if (!str)
|
|
@@ -3470,7 +3953,9 @@
|
|
|
3470
3953
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3471
3954
|
if (!(autoLength || (sizelength <= 2147483647)))
|
|
3472
3955
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3956
|
+
str >>>= 0;
|
|
3473
3957
|
var strValue = stringMaker(str, autoLength, sizelength);
|
|
3958
|
+
result >>>= 0;
|
|
3474
3959
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3475
3960
|
var value = emnapiCtx.addToCurrentScope(strValue).id;
|
|
3476
3961
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3478,12 +3963,13 @@
|
|
|
3478
3963
|
return envObject.clearLastError();
|
|
3479
3964
|
},
|
|
3480
3965
|
newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
|
|
3966
|
+
length >>>= 0;
|
|
3481
3967
|
if (!env)
|
|
3482
3968
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
3483
3969
|
// @ts-expect-error
|
|
3484
3970
|
var envObject = emnapiCtx.envStore.get(env);
|
|
3485
3971
|
envObject.checkGCAccess();
|
|
3486
|
-
var autoLength = length === -1;
|
|
3972
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
3487
3973
|
var sizelength = length >>> 0;
|
|
3488
3974
|
if (length !== 0) {
|
|
3489
3975
|
if (!str)
|
|
@@ -3529,6 +4015,7 @@
|
|
|
3529
4015
|
if (!handle.isArray()) {
|
|
3530
4016
|
return envObject.setLastError(8 /* napi_status.napi_array_expected */);
|
|
3531
4017
|
}
|
|
4018
|
+
result >>>= 0;
|
|
3532
4019
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3533
4020
|
var v = handle.value.length >>> 0;
|
|
3534
4021
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3557,11 +4044,13 @@
|
|
|
3557
4044
|
}
|
|
3558
4045
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3559
4046
|
if (data) {
|
|
4047
|
+
data >>>= 0;
|
|
3560
4048
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3561
4049
|
var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
|
|
3562
4050
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
3563
4051
|
}
|
|
3564
4052
|
if (byte_length) {
|
|
4053
|
+
byte_length >>>= 0;
|
|
3565
4054
|
HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
|
|
3566
4055
|
}
|
|
3567
4056
|
return envObject.clearLastError();
|
|
@@ -3634,6 +4123,7 @@
|
|
|
3634
4123
|
catch (_) {
|
|
3635
4124
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
3636
4125
|
}
|
|
4126
|
+
result >>>= 0;
|
|
3637
4127
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3638
4128
|
var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
|
|
3639
4129
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3663,6 +4153,7 @@
|
|
|
3663
4153
|
var v = handle.value;
|
|
3664
4154
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3665
4155
|
if (type) {
|
|
4156
|
+
type >>>= 0;
|
|
3666
4157
|
var t = void 0;
|
|
3667
4158
|
if (v instanceof Int8Array) {
|
|
3668
4159
|
t = 0 /* napi_typedarray_type.napi_int8_array */;
|
|
@@ -3706,24 +4197,27 @@
|
|
|
3706
4197
|
}
|
|
3707
4198
|
HEAP_DATA_VIEW.setInt32(type, t, true);
|
|
3708
4199
|
}
|
|
4200
|
+
v = emnapiExternalMemory.getOrUpdateMemoryView(v);
|
|
3709
4201
|
if (length) {
|
|
4202
|
+
length >>>= 0;
|
|
3710
4203
|
HEAP_DATA_VIEW.setUint32(length, v.length, true);
|
|
3711
4204
|
}
|
|
3712
|
-
var buffer;
|
|
3713
4205
|
if (data || arraybuffer) {
|
|
3714
|
-
buffer = v.buffer;
|
|
3715
4206
|
if (data) {
|
|
4207
|
+
data >>>= 0;
|
|
3716
4208
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3717
4209
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
3718
4210
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
3719
4211
|
}
|
|
3720
4212
|
if (arraybuffer) {
|
|
4213
|
+
arraybuffer >>>= 0;
|
|
3721
4214
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3722
|
-
var ab = envObject.ensureHandleId(buffer);
|
|
4215
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
3723
4216
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
3724
4217
|
}
|
|
3725
4218
|
}
|
|
3726
4219
|
if (byte_offset) {
|
|
4220
|
+
byte_offset >>>= 0;
|
|
3727
4221
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
3728
4222
|
}
|
|
3729
4223
|
return envObject.clearLastError();
|
|
@@ -3762,26 +4256,28 @@
|
|
|
3762
4256
|
if (!handle.isDataView()) {
|
|
3763
4257
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3764
4258
|
}
|
|
3765
|
-
var v = handle.value;
|
|
4259
|
+
var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
|
|
3766
4260
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3767
4261
|
if (byte_length) {
|
|
4262
|
+
byte_length >>>= 0;
|
|
3768
4263
|
HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
|
|
3769
4264
|
}
|
|
3770
|
-
var buffer;
|
|
3771
4265
|
if (data || arraybuffer) {
|
|
3772
|
-
buffer = v.buffer;
|
|
3773
4266
|
if (data) {
|
|
4267
|
+
data >>>= 0;
|
|
3774
4268
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3775
4269
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
3776
4270
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
3777
4271
|
}
|
|
3778
4272
|
if (arraybuffer) {
|
|
4273
|
+
arraybuffer >>>= 0;
|
|
3779
4274
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3780
|
-
var ab = envObject.ensureHandleId(buffer);
|
|
4275
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
3781
4276
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
3782
4277
|
}
|
|
3783
4278
|
}
|
|
3784
4279
|
if (byte_offset) {
|
|
4280
|
+
byte_offset >>>= 0;
|
|
3785
4281
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
3786
4282
|
}
|
|
3787
4283
|
return envObject.clearLastError();
|
|
@@ -3811,6 +4307,7 @@
|
|
|
3811
4307
|
if (!handle.isDate()) {
|
|
3812
4308
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3813
4309
|
}
|
|
4310
|
+
result >>>= 0;
|
|
3814
4311
|
v = handle.value.valueOf();
|
|
3815
4312
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3816
4313
|
HEAP_DATA_VIEW.setFloat64(result, v, true);
|
|
@@ -3838,6 +4335,7 @@
|
|
|
3838
4335
|
if (typeof handle.value !== 'boolean') {
|
|
3839
4336
|
return envObject.setLastError(7 /* napi_status.napi_boolean_expected */);
|
|
3840
4337
|
}
|
|
4338
|
+
result >>>= 0;
|
|
3841
4339
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3842
4340
|
var r = handle.value ? 1 : 0;
|
|
3843
4341
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3861,6 +4359,7 @@
|
|
|
3861
4359
|
if (typeof handle.value !== 'number') {
|
|
3862
4360
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3863
4361
|
}
|
|
4362
|
+
result >>>= 0;
|
|
3864
4363
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3865
4364
|
var r = handle.value;
|
|
3866
4365
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3890,6 +4389,8 @@
|
|
|
3890
4389
|
if (typeof numberValue !== 'bigint') {
|
|
3891
4390
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3892
4391
|
}
|
|
4392
|
+
lossless >>>= 0;
|
|
4393
|
+
result >>>= 0;
|
|
3893
4394
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3894
4395
|
if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
|
|
3895
4396
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -3932,6 +4433,8 @@
|
|
|
3932
4433
|
if (typeof numberValue !== 'bigint') {
|
|
3933
4434
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3934
4435
|
}
|
|
4436
|
+
lossless >>>= 0;
|
|
4437
|
+
result >>>= 0;
|
|
3935
4438
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3936
4439
|
if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
|
|
3937
4440
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -3969,8 +4472,12 @@
|
|
|
3969
4472
|
return envObject.setLastError(17 /* napi_status.napi_bigint_expected */);
|
|
3970
4473
|
}
|
|
3971
4474
|
var isMinus = handle.value < BigInt(0);
|
|
4475
|
+
sign_bit >>>= 0;
|
|
4476
|
+
words >>>= 0;
|
|
4477
|
+
word_count >>>= 0;
|
|
3972
4478
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3973
4479
|
var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
|
|
4480
|
+
word_count_int >>>= 0;
|
|
3974
4481
|
var wordCount = 0;
|
|
3975
4482
|
var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
3976
4483
|
while (bigintValue !== BigInt(0)) {
|
|
@@ -4024,6 +4531,7 @@
|
|
|
4024
4531
|
if (!handle.isExternal()) {
|
|
4025
4532
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4026
4533
|
}
|
|
4534
|
+
result >>>= 0;
|
|
4027
4535
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4028
4536
|
var p = handle.data();
|
|
4029
4537
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4047,6 +4555,7 @@
|
|
|
4047
4555
|
if (typeof handle.value !== 'number') {
|
|
4048
4556
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
4049
4557
|
}
|
|
4558
|
+
result >>>= 0;
|
|
4050
4559
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4051
4560
|
var v = new Int32Array([handle.value])[0];
|
|
4052
4561
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4071,6 +4580,7 @@
|
|
|
4071
4580
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
4072
4581
|
}
|
|
4073
4582
|
var numberValue = handle.value;
|
|
4583
|
+
result >>>= 0;
|
|
4074
4584
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4075
4585
|
if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
|
|
4076
4586
|
HEAP_DATA_VIEW.setInt32(result, 0, true);
|
|
@@ -4100,6 +4610,9 @@
|
|
|
4100
4610
|
envObject.checkGCAccess();
|
|
4101
4611
|
if (!value)
|
|
4102
4612
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4613
|
+
result >>>= 0;
|
|
4614
|
+
buf >>>= 0;
|
|
4615
|
+
buf_size >>>= 0;
|
|
4103
4616
|
buf_size = buf_size >>> 0;
|
|
4104
4617
|
var handle = emnapiCtx.handleStore.get(value);
|
|
4105
4618
|
if (typeof handle.value !== 'string') {
|
|
@@ -4142,6 +4655,9 @@
|
|
|
4142
4655
|
envObject.checkGCAccess();
|
|
4143
4656
|
if (!value)
|
|
4144
4657
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4658
|
+
result >>>= 0;
|
|
4659
|
+
buf >>>= 0;
|
|
4660
|
+
buf_size >>>= 0;
|
|
4145
4661
|
buf_size = buf_size >>> 0;
|
|
4146
4662
|
var handle = emnapiCtx.handleStore.get(value);
|
|
4147
4663
|
if (typeof handle.value !== 'string') {
|
|
@@ -4178,6 +4694,9 @@
|
|
|
4178
4694
|
envObject.checkGCAccess();
|
|
4179
4695
|
if (!value)
|
|
4180
4696
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4697
|
+
result >>>= 0;
|
|
4698
|
+
buf >>>= 0;
|
|
4699
|
+
buf_size >>>= 0;
|
|
4181
4700
|
buf_size = buf_size >>> 0;
|
|
4182
4701
|
var handle = emnapiCtx.handleStore.get(value);
|
|
4183
4702
|
if (typeof handle.value !== 'string') {
|
|
@@ -4218,6 +4737,7 @@
|
|
|
4218
4737
|
if (typeof handle.value !== 'number') {
|
|
4219
4738
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
4220
4739
|
}
|
|
4740
|
+
result >>>= 0;
|
|
4221
4741
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4222
4742
|
var v = new Uint32Array([handle.value])[0];
|
|
4223
4743
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4258,6 +4778,7 @@
|
|
|
4258
4778
|
envObject.checkGCAccess();
|
|
4259
4779
|
if (!result)
|
|
4260
4780
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4781
|
+
result >>>= 0;
|
|
4261
4782
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4262
4783
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
4263
4784
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4275,6 +4796,7 @@
|
|
|
4275
4796
|
envObject.checkGCAccess();
|
|
4276
4797
|
if (!result)
|
|
4277
4798
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4799
|
+
result >>>= 0;
|
|
4278
4800
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4279
4801
|
var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
|
|
4280
4802
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4296,6 +4818,7 @@
|
|
|
4296
4818
|
value = Number(low);
|
|
4297
4819
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4298
4820
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
4821
|
+
high >>>= 0;
|
|
4299
4822
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4300
4823
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
4301
4824
|
return envObject.clearLastError();
|
|
@@ -4311,6 +4834,7 @@
|
|
|
4311
4834
|
envObject.checkGCAccess();
|
|
4312
4835
|
if (!result)
|
|
4313
4836
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4837
|
+
result >>>= 0;
|
|
4314
4838
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4315
4839
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
4316
4840
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4411,6 +4935,7 @@
|
|
|
4411
4935
|
value = low;
|
|
4412
4936
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4413
4937
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
4938
|
+
high >>>= 0;
|
|
4414
4939
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4415
4940
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
4416
4941
|
return envObject.clearLastError();
|
|
@@ -4433,6 +4958,7 @@
|
|
|
4433
4958
|
value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
4434
4959
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4435
4960
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
4961
|
+
high >>>= 0;
|
|
4436
4962
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4437
4963
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
4438
4964
|
return envObject.clearLastError();
|
|
@@ -4459,6 +4985,8 @@
|
|
|
4459
4985
|
}
|
|
4460
4986
|
if (!result)
|
|
4461
4987
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4988
|
+
words >>>= 0;
|
|
4989
|
+
word_count >>>= 0;
|
|
4462
4990
|
word_count = word_count >>> 0;
|
|
4463
4991
|
if (word_count > 2147483647) {
|
|
4464
4992
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
@@ -4475,6 +5003,7 @@
|
|
|
4475
5003
|
value += wordi << BigInt(64 * i);
|
|
4476
5004
|
}
|
|
4477
5005
|
value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
|
|
5006
|
+
result >>>= 0;
|
|
4478
5007
|
v = emnapiCtx.addToCurrentScope(value).id;
|
|
4479
5008
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
4480
5009
|
return envObject.getReturnStatus();
|
|
@@ -4503,6 +5032,7 @@
|
|
|
4503
5032
|
node_api_create_property_key_utf8: node_api_create_property_key_utf8
|
|
4504
5033
|
});
|
|
4505
5034
|
function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
|
|
5035
|
+
utf8name >>>= 0;
|
|
4506
5036
|
var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
|
|
4507
5037
|
var f;
|
|
4508
5038
|
var napiCallback = (wasmTable.get(cb));
|
|
@@ -4645,6 +5175,7 @@
|
|
|
4645
5175
|
if (!finalize_cb)
|
|
4646
5176
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4647
5177
|
reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1 /* ReferenceOwnership.kUserland */, finalize_cb, native_object, finalize_hint);
|
|
5178
|
+
result >>>= 0;
|
|
4648
5179
|
referenceId = reference.id;
|
|
4649
5180
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4650
5181
|
HEAP_DATA_VIEW.setUint32(result, referenceId, true);
|
|
@@ -4695,6 +5226,7 @@
|
|
|
4695
5226
|
if (!ref)
|
|
4696
5227
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4697
5228
|
if (result) {
|
|
5229
|
+
result >>>= 0;
|
|
4698
5230
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4699
5231
|
data = ref.data();
|
|
4700
5232
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4738,12 +5270,15 @@
|
|
|
4738
5270
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4739
5271
|
if (!constructor)
|
|
4740
5272
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5273
|
+
length >>>= 0;
|
|
5274
|
+
properties >>>= 0;
|
|
5275
|
+
property_count >>>= 0;
|
|
4741
5276
|
property_count = property_count >>> 0;
|
|
4742
5277
|
if (property_count > 0) {
|
|
4743
5278
|
if (!properties)
|
|
4744
5279
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4745
5280
|
}
|
|
4746
|
-
if ((length
|
|
5281
|
+
if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
|
|
4747
5282
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4748
5283
|
}
|
|
4749
5284
|
var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
|
|
@@ -4762,6 +5297,7 @@
|
|
|
4762
5297
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
4763
5298
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
4764
5299
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
5300
|
+
attributes >>>= 0;
|
|
4765
5301
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
4766
5302
|
if (utf8Name) {
|
|
4767
5303
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -4784,6 +5320,7 @@
|
|
|
4784
5320
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4785
5321
|
var valueHandle = emnapiCtx.addToCurrentScope(F);
|
|
4786
5322
|
valueHandleId = valueHandle.id;
|
|
5323
|
+
result >>>= 0;
|
|
4787
5324
|
HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
|
|
4788
5325
|
return envObject.getReturnStatus();
|
|
4789
5326
|
}
|
|
@@ -4832,6 +5369,7 @@
|
|
|
4832
5369
|
if (!(value.isObject() || value.isFunction())) {
|
|
4833
5370
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
|
|
4834
5371
|
}
|
|
5372
|
+
type_tag >>>= 0;
|
|
4835
5373
|
if (!type_tag) {
|
|
4836
5374
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
4837
5375
|
}
|
|
@@ -4881,6 +5419,7 @@
|
|
|
4881
5419
|
}
|
|
4882
5420
|
var binding = envObject.getObjectBinding(value.value);
|
|
4883
5421
|
if (binding.tag !== null) {
|
|
5422
|
+
type_tag >>>= 0;
|
|
4884
5423
|
var tag = binding.tag;
|
|
4885
5424
|
var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
|
|
4886
5425
|
ret = (tag[0] === typeTag[0] &&
|
|
@@ -4891,6 +5430,7 @@
|
|
|
4891
5430
|
else {
|
|
4892
5431
|
ret = false;
|
|
4893
5432
|
}
|
|
5433
|
+
result >>>= 0;
|
|
4894
5434
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4895
5435
|
HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
|
|
4896
5436
|
return envObject.getReturnStatus();
|
|
@@ -4922,8 +5462,12 @@
|
|
|
4922
5462
|
}
|
|
4923
5463
|
var handle = handleResult.handle;
|
|
4924
5464
|
var ownership = !result ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
|
|
5465
|
+
finalize_data >>>= 0;
|
|
5466
|
+
finalize_cb >>>= 0;
|
|
5467
|
+
finalize_hint >>>= 0;
|
|
4925
5468
|
var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
|
|
4926
5469
|
if (result) {
|
|
5470
|
+
result >>>= 0;
|
|
4927
5471
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4928
5472
|
var referenceId = reference.id;
|
|
4929
5473
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4971,6 +5515,9 @@
|
|
|
4971
5515
|
try {
|
|
4972
5516
|
if (!result)
|
|
4973
5517
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5518
|
+
byte_length >>>= 0;
|
|
5519
|
+
external_data >>>= 0;
|
|
5520
|
+
result >>>= 0;
|
|
4974
5521
|
byte_length = byte_length >>> 0;
|
|
4975
5522
|
if (!external_data) {
|
|
4976
5523
|
byte_length = 0;
|
|
@@ -5090,7 +5637,7 @@
|
|
|
5090
5637
|
var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
|
|
5091
5638
|
if (!pointer)
|
|
5092
5639
|
throw new Error('Unknown ArrayBuffer address');
|
|
5093
|
-
if (typeof len !== 'number' || len === -1) {
|
|
5640
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
5094
5641
|
len = arrayBufferOrView.byteLength - offset;
|
|
5095
5642
|
}
|
|
5096
5643
|
len = len >>> 0;
|
|
@@ -5112,7 +5659,7 @@
|
|
|
5112
5659
|
var pointer = viewPointerInfo.address;
|
|
5113
5660
|
if (!pointer)
|
|
5114
5661
|
throw new Error('Unknown ArrayBuffer address');
|
|
5115
|
-
if (typeof len !== 'number' || len === -1) {
|
|
5662
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
5116
5663
|
len = latestView.byteLength - offset;
|
|
5117
5664
|
}
|
|
5118
5665
|
len = len >>> 0;
|
|
@@ -5149,6 +5696,9 @@
|
|
|
5149
5696
|
try {
|
|
5150
5697
|
if (!arraybuffer_or_view)
|
|
5151
5698
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5699
|
+
arraybuffer_or_view >>>= 0;
|
|
5700
|
+
offset >>>= 0;
|
|
5701
|
+
len >>>= 0;
|
|
5152
5702
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5153
5703
|
var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
|
|
5154
5704
|
var handle = envObject.ctx.handleStore.get(handleId);
|
|
@@ -5157,6 +5707,7 @@
|
|
|
5157
5707
|
}
|
|
5158
5708
|
var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
|
|
5159
5709
|
if (handle.value !== ret) {
|
|
5710
|
+
arraybuffer_or_view >>>= 0;
|
|
5160
5711
|
v = envObject.ensureHandleId(ret);
|
|
5161
5712
|
HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
|
|
5162
5713
|
}
|
|
@@ -5215,13 +5766,16 @@
|
|
|
5215
5766
|
p = info.address;
|
|
5216
5767
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5217
5768
|
if (address) {
|
|
5769
|
+
address >>>= 0;
|
|
5218
5770
|
HEAP_DATA_VIEW.setUint32(address, p, true);
|
|
5219
5771
|
}
|
|
5220
5772
|
if (ownership) {
|
|
5773
|
+
ownership >>>= 0;
|
|
5221
5774
|
ownershipOut = info.ownership;
|
|
5222
5775
|
HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
|
|
5223
5776
|
}
|
|
5224
5777
|
if (runtime_allocated) {
|
|
5778
|
+
runtime_allocated >>>= 0;
|
|
5225
5779
|
runtimeAllocated = info.runtimeAllocated;
|
|
5226
5780
|
HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
|
|
5227
5781
|
}
|
|
@@ -5251,22 +5805,129 @@
|
|
|
5251
5805
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5252
5806
|
var versions = runtimeVersion.split('.')
|
|
5253
5807
|
.map(function (n) { return Number(n); });
|
|
5808
|
+
version >>>= 0;
|
|
5254
5809
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5255
5810
|
HEAP_DATA_VIEW.setUint32(version, versions[0], true);
|
|
5256
5811
|
HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
|
|
5257
5812
|
HEAP_DATA_VIEW.setUint32(version + 8, versions[2], true);
|
|
5258
5813
|
return envObject.clearLastError();
|
|
5259
5814
|
}
|
|
5815
|
+
/**
|
|
5816
|
+
* Get the handle for an external SharedArrayBuffer.
|
|
5817
|
+
* Must be called on the emnapi main thread.
|
|
5818
|
+
* @__sig ippp
|
|
5819
|
+
*/
|
|
5820
|
+
function emnapi_get_external_sharedarraybuffer_handle(env, sharedarraybuffer, handle) {
|
|
5821
|
+
if (!env)
|
|
5822
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
5823
|
+
// @ts-expect-error
|
|
5824
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
5825
|
+
envObject.checkGCAccess();
|
|
5826
|
+
if (!envObject.tryCatch.isEmpty())
|
|
5827
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
5828
|
+
if (!envObject.canCallIntoJs())
|
|
5829
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
5830
|
+
envObject.clearLastError();
|
|
5831
|
+
try {
|
|
5832
|
+
if (!sharedarraybuffer)
|
|
5833
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5834
|
+
if (!handle)
|
|
5835
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5836
|
+
handle >>>= 0;
|
|
5837
|
+
var jsValue = emnapiCtx.handleStore.get(sharedarraybuffer).value;
|
|
5838
|
+
if (!emnapiExternalMemory.isSharedArrayBuffer(jsValue)) {
|
|
5839
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5840
|
+
}
|
|
5841
|
+
var metaPtr = emnapiExternalSAB.handleTable.get(jsValue);
|
|
5842
|
+
if (metaPtr === undefined) {
|
|
5843
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5844
|
+
}
|
|
5845
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5846
|
+
HEAP_DATA_VIEW.setUint32(handle, metaPtr, true);
|
|
5847
|
+
return envObject.getReturnStatus();
|
|
5848
|
+
}
|
|
5849
|
+
catch (err) {
|
|
5850
|
+
envObject.tryCatch.setError(err);
|
|
5851
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
5852
|
+
}
|
|
5853
|
+
}
|
|
5854
|
+
/**
|
|
5855
|
+
* Acquire a reference to an external SharedArrayBuffer.
|
|
5856
|
+
* Can be called on any thread.
|
|
5857
|
+
* @__sig vp
|
|
5858
|
+
*/
|
|
5859
|
+
function emnapi_acquire_external_sharedarraybuffer(handle) {
|
|
5860
|
+
handle >>>= 0;
|
|
5861
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, handle, 1), 0, 1);
|
|
5862
|
+
}
|
|
5863
|
+
/**
|
|
5864
|
+
* Release a reference to an external SharedArrayBuffer.
|
|
5865
|
+
* Can be called on any thread.
|
|
5866
|
+
* @__sig vp
|
|
5867
|
+
*/
|
|
5868
|
+
function emnapi_release_external_sharedarraybuffer(handle) {
|
|
5869
|
+
handle >>>= 0;
|
|
5870
|
+
emnapiExternalSAB.release(handle);
|
|
5871
|
+
}
|
|
5872
|
+
/**
|
|
5873
|
+
* Acquire a reference to an external SharedArrayBuffer on the current thread.
|
|
5874
|
+
* Can be called on any thread. Increments refcount and registers in
|
|
5875
|
+
* the current thread's FinalizationRegistry.
|
|
5876
|
+
* Exposed as Module.emnapiAcquireExternalSharedArrayBuffer (emscripten) or
|
|
5877
|
+
* napiModule.emnapi.acquireExternalSharedArrayBuffer (core).
|
|
5878
|
+
*/
|
|
5879
|
+
function $emnapiAcquireExternalSharedArrayBuffer(handle, sab) {
|
|
5880
|
+
if (sab != null && !emnapiExternalMemory.isSharedArrayBuffer(sab)) {
|
|
5881
|
+
throw new TypeError('Expected a SharedArrayBuffer');
|
|
5882
|
+
}
|
|
5883
|
+
if (!emnapiExternalSAB.registry) {
|
|
5884
|
+
throw new Error('FinalizationRegistry is not supported in this environment');
|
|
5885
|
+
}
|
|
5886
|
+
handle >>>= 0;
|
|
5887
|
+
var meta = emnapiExternalSAB.readMeta(handle);
|
|
5888
|
+
// eslint-disable-next-line prefer-const
|
|
5889
|
+
var external_data = meta.external_data;
|
|
5890
|
+
external_data >>>= 0;
|
|
5891
|
+
if (sab == null) {
|
|
5892
|
+
sab = new SharedArrayBuffer(meta.byte_length);
|
|
5893
|
+
new Uint8Array(sab).set(new Uint8Array(wasmMemory.buffer, external_data, meta.byte_length));
|
|
5894
|
+
}
|
|
5895
|
+
else {
|
|
5896
|
+
if (emnapiExternalSAB.handleTable.has(sab)) {
|
|
5897
|
+
return sab;
|
|
5898
|
+
}
|
|
5899
|
+
}
|
|
5900
|
+
// Increment refcount atomically
|
|
5901
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, handle, 1), 0, 1);
|
|
5902
|
+
// Register in emnapiExternalMemory.table for emnapi_sync_memory support
|
|
5903
|
+
if (!emnapiExternalMemory.table.has(sab)) {
|
|
5904
|
+
if (external_data) {
|
|
5905
|
+
emnapiExternalMemory.table.set(sab, {
|
|
5906
|
+
address: external_data,
|
|
5907
|
+
ownership: 1 /* ReferenceOwnership.kUserland */,
|
|
5908
|
+
runtimeAllocated: 0
|
|
5909
|
+
});
|
|
5910
|
+
}
|
|
5911
|
+
}
|
|
5912
|
+
// Register in handleTable and FinalizationRegistry for this thread
|
|
5913
|
+
emnapiExternalSAB.handleTable.set(sab, handle);
|
|
5914
|
+
emnapiExternalSAB.registry.register(sab, handle);
|
|
5915
|
+
return sab;
|
|
5916
|
+
}
|
|
5260
5917
|
var emnapiMod = /*#__PURE__*/ Object.freeze({
|
|
5261
5918
|
__proto__: null,
|
|
5919
|
+
$emnapiAcquireExternalSharedArrayBuffer: $emnapiAcquireExternalSharedArrayBuffer,
|
|
5262
5920
|
$emnapiGetMemoryAddress: $emnapiGetMemoryAddress,
|
|
5263
5921
|
$emnapiSyncMemory: $emnapiSyncMemory,
|
|
5922
|
+
emnapi_acquire_external_sharedarraybuffer: emnapi_acquire_external_sharedarraybuffer,
|
|
5264
5923
|
emnapi_create_memory_view: emnapi_create_memory_view,
|
|
5924
|
+
emnapi_get_external_sharedarraybuffer_handle: emnapi_get_external_sharedarraybuffer_handle,
|
|
5265
5925
|
emnapi_get_memory_address: emnapi_get_memory_address,
|
|
5266
5926
|
emnapi_get_runtime_version: emnapi_get_runtime_version,
|
|
5267
5927
|
emnapi_is_node_binding_available: emnapi_is_node_binding_available,
|
|
5268
5928
|
emnapi_is_support_bigint: emnapi_is_support_bigint,
|
|
5269
5929
|
emnapi_is_support_weakref: emnapi_is_support_weakref,
|
|
5930
|
+
emnapi_release_external_sharedarraybuffer: emnapi_release_external_sharedarraybuffer,
|
|
5270
5931
|
emnapi_sync_memory: emnapi_sync_memory
|
|
5271
5932
|
});
|
|
5272
5933
|
/**
|
|
@@ -5280,6 +5941,7 @@
|
|
|
5280
5941
|
envObject.checkGCAccess();
|
|
5281
5942
|
if (!result)
|
|
5282
5943
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5944
|
+
result >>>= 0;
|
|
5283
5945
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5284
5946
|
var value = emnapiCtx.addToCurrentScope([]).id;
|
|
5285
5947
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5297,6 +5959,8 @@
|
|
|
5297
5959
|
envObject.checkGCAccess();
|
|
5298
5960
|
if (!result)
|
|
5299
5961
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5962
|
+
length >>>= 0;
|
|
5963
|
+
result >>>= 0;
|
|
5300
5964
|
length = length >>> 0;
|
|
5301
5965
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5302
5966
|
var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
|
|
@@ -5305,9 +5969,11 @@
|
|
|
5305
5969
|
return envObject.clearLastError();
|
|
5306
5970
|
}
|
|
5307
5971
|
function emnapiCreateArrayBuffer(byte_length, data, shared) {
|
|
5972
|
+
byte_length >>>= 0;
|
|
5308
5973
|
byte_length = byte_length >>> 0;
|
|
5309
5974
|
var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
|
|
5310
5975
|
if (data) {
|
|
5976
|
+
data >>>= 0;
|
|
5311
5977
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5312
5978
|
var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
|
|
5313
5979
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5334,6 +6000,7 @@
|
|
|
5334
6000
|
try {
|
|
5335
6001
|
if (!result)
|
|
5336
6002
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6003
|
+
result >>>= 0;
|
|
5337
6004
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
|
|
5338
6005
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
5339
6006
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5364,6 +6031,7 @@
|
|
|
5364
6031
|
try {
|
|
5365
6032
|
if (!result)
|
|
5366
6033
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6034
|
+
result >>>= 0;
|
|
5367
6035
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
|
|
5368
6036
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
5369
6037
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5394,6 +6062,7 @@
|
|
|
5394
6062
|
try {
|
|
5395
6063
|
if (!result)
|
|
5396
6064
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6065
|
+
result >>>= 0;
|
|
5397
6066
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5398
6067
|
value = emnapiCtx.addToCurrentScope(new Date(time)).id;
|
|
5399
6068
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5431,6 +6100,7 @@
|
|
|
5431
6100
|
if (finalize_cb) {
|
|
5432
6101
|
emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0 /* ReferenceOwnership.kRuntime */, finalize_cb, data, finalize_hint);
|
|
5433
6102
|
}
|
|
6103
|
+
result >>>= 0;
|
|
5434
6104
|
value = externalHandle.id;
|
|
5435
6105
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5436
6106
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5460,6 +6130,9 @@
|
|
|
5460
6130
|
try {
|
|
5461
6131
|
if (!result)
|
|
5462
6132
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6133
|
+
byte_length >>>= 0;
|
|
6134
|
+
external_data >>>= 0;
|
|
6135
|
+
result >>>= 0;
|
|
5463
6136
|
byte_length = byte_length >>> 0;
|
|
5464
6137
|
if (!external_data) {
|
|
5465
6138
|
byte_length = 0;
|
|
@@ -5510,6 +6183,65 @@
|
|
|
5510
6183
|
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
5511
6184
|
}
|
|
5512
6185
|
}
|
|
6186
|
+
/**
|
|
6187
|
+
* @__sig ipppppp
|
|
6188
|
+
*/
|
|
6189
|
+
function node_api_create_external_sharedarraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result) {
|
|
6190
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6191
|
+
var value;
|
|
6192
|
+
if (!env)
|
|
6193
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
6194
|
+
// @ts-expect-error
|
|
6195
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
6196
|
+
envObject.checkGCAccess();
|
|
6197
|
+
if (!envObject.tryCatch.isEmpty())
|
|
6198
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
6199
|
+
if (!envObject.canCallIntoJs())
|
|
6200
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
6201
|
+
envObject.clearLastError();
|
|
6202
|
+
try {
|
|
6203
|
+
if (!result)
|
|
6204
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6205
|
+
byte_length >>>= 0;
|
|
6206
|
+
external_data >>>= 0;
|
|
6207
|
+
result >>>= 0;
|
|
6208
|
+
byte_length = byte_length >>> 0;
|
|
6209
|
+
if (!external_data) {
|
|
6210
|
+
byte_length = 0;
|
|
6211
|
+
}
|
|
6212
|
+
if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
|
|
6213
|
+
throw new RangeError('Memory out of range');
|
|
6214
|
+
}
|
|
6215
|
+
if (!emnapiExternalSAB.registry && finalize_cb) {
|
|
6216
|
+
throw emnapiCtx.createNotSupportWeakRefError('node_api_create_external_sharedarraybuffer', 'Parameter "finalize_cb" must be 0(NULL)');
|
|
6217
|
+
}
|
|
6218
|
+
var sharedArrayBuffer = new SharedArrayBuffer(byte_length);
|
|
6219
|
+
if (byte_length !== 0) {
|
|
6220
|
+
var u8arr = new Uint8Array(sharedArrayBuffer);
|
|
6221
|
+
u8arr.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
|
|
6222
|
+
emnapiExternalMemory.table.set(sharedArrayBuffer, {
|
|
6223
|
+
address: external_data,
|
|
6224
|
+
ownership: 1 /* ReferenceOwnership.kUserland */,
|
|
6225
|
+
runtimeAllocated: 0
|
|
6226
|
+
});
|
|
6227
|
+
}
|
|
6228
|
+
value = emnapiCtx.addToCurrentScope(sharedArrayBuffer).id;
|
|
6229
|
+
if (finalize_cb) {
|
|
6230
|
+
finalize_cb >>>= 0;
|
|
6231
|
+
finalize_hint >>>= 0;
|
|
6232
|
+
var metaPtr = emnapiExternalSAB.allocMeta(external_data, byte_length, finalize_cb, external_data, finalize_hint);
|
|
6233
|
+
emnapiExternalSAB.handleTable.set(sharedArrayBuffer, metaPtr);
|
|
6234
|
+
emnapiExternalSAB.registry.register(sharedArrayBuffer, metaPtr);
|
|
6235
|
+
}
|
|
6236
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6237
|
+
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
6238
|
+
return envObject.getReturnStatus();
|
|
6239
|
+
}
|
|
6240
|
+
catch (err) {
|
|
6241
|
+
envObject.tryCatch.setError(err);
|
|
6242
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
6243
|
+
}
|
|
6244
|
+
}
|
|
5513
6245
|
/**
|
|
5514
6246
|
* @__sig ipp
|
|
5515
6247
|
*/
|
|
@@ -5521,6 +6253,7 @@
|
|
|
5521
6253
|
envObject.checkGCAccess();
|
|
5522
6254
|
if (!result)
|
|
5523
6255
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6256
|
+
result >>>= 0;
|
|
5524
6257
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5525
6258
|
var value = emnapiCtx.addToCurrentScope({}).id;
|
|
5526
6259
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5530,7 +6263,7 @@
|
|
|
5530
6263
|
/**
|
|
5531
6264
|
* @__sig ipppppp
|
|
5532
6265
|
*/
|
|
5533
|
-
function
|
|
6266
|
+
function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
|
|
5534
6267
|
if (!env)
|
|
5535
6268
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
5536
6269
|
// @ts-expect-error
|
|
@@ -5538,6 +6271,7 @@
|
|
|
5538
6271
|
envObject.checkGCAccess();
|
|
5539
6272
|
if (!result)
|
|
5540
6273
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6274
|
+
property_count >>>= 0;
|
|
5541
6275
|
property_count = property_count >>> 0;
|
|
5542
6276
|
if (property_count > 0) {
|
|
5543
6277
|
if (!property_names)
|
|
@@ -5549,6 +6283,8 @@
|
|
|
5549
6283
|
? emnapiCtx.handleStore.get(prototype_or_null).value
|
|
5550
6284
|
: null;
|
|
5551
6285
|
var properties = {};
|
|
6286
|
+
property_names >>>= 0;
|
|
6287
|
+
property_values >>>= 0;
|
|
5552
6288
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5553
6289
|
for (var i = 0; i < property_count; i++) {
|
|
5554
6290
|
var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
|
|
@@ -5570,6 +6306,7 @@
|
|
|
5570
6306
|
}
|
|
5571
6307
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5572
6308
|
var value = emnapiCtx.addToCurrentScope(obj).id;
|
|
6309
|
+
result >>>= 0;
|
|
5573
6310
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5574
6311
|
return envObject.clearLastError();
|
|
5575
6312
|
}
|
|
@@ -5584,6 +6321,7 @@
|
|
|
5584
6321
|
envObject.checkGCAccess();
|
|
5585
6322
|
if (!result)
|
|
5586
6323
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6324
|
+
result >>>= 0;
|
|
5587
6325
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5588
6326
|
if (!description) {
|
|
5589
6327
|
// eslint-disable-next-line symbol-description, @typescript-eslint/no-unused-vars
|
|
@@ -5624,10 +6362,9 @@
|
|
|
5624
6362
|
if (!result)
|
|
5625
6363
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5626
6364
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
5627
|
-
if (!handle.isArrayBuffer()) {
|
|
5628
|
-
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5629
|
-
}
|
|
5630
6365
|
var buffer = handle.value;
|
|
6366
|
+
byte_offset >>>= 0;
|
|
6367
|
+
length >>>= 0;
|
|
5631
6368
|
var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
|
|
5632
6369
|
var _a;
|
|
5633
6370
|
byte_offset = byte_offset >>> 0;
|
|
@@ -5658,42 +6395,48 @@
|
|
|
5658
6395
|
});
|
|
5659
6396
|
}
|
|
5660
6397
|
}
|
|
6398
|
+
result >>>= 0;
|
|
5661
6399
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5662
6400
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
5663
6401
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5664
6402
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5665
6403
|
return envObject.getReturnStatus();
|
|
5666
6404
|
};
|
|
5667
|
-
|
|
5668
|
-
|
|
5669
|
-
|
|
5670
|
-
|
|
5671
|
-
|
|
5672
|
-
|
|
5673
|
-
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
|
|
5683
|
-
|
|
5684
|
-
|
|
5685
|
-
|
|
5686
|
-
|
|
5687
|
-
|
|
5688
|
-
|
|
5689
|
-
|
|
5690
|
-
|
|
5691
|
-
|
|
6405
|
+
if (buffer instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(buffer)) {
|
|
6406
|
+
switch (type) {
|
|
6407
|
+
case 0 /* napi_typedarray_type.napi_int8_array */:
|
|
6408
|
+
return createTypedArray(envObject, Int8Array, 1, buffer, byte_offset, length);
|
|
6409
|
+
case 1 /* napi_typedarray_type.napi_uint8_array */:
|
|
6410
|
+
return createTypedArray(envObject, Uint8Array, 1, buffer, byte_offset, length);
|
|
6411
|
+
case 2 /* napi_typedarray_type.napi_uint8_clamped_array */:
|
|
6412
|
+
return createTypedArray(envObject, Uint8ClampedArray, 1, buffer, byte_offset, length);
|
|
6413
|
+
case 3 /* napi_typedarray_type.napi_int16_array */:
|
|
6414
|
+
return createTypedArray(envObject, Int16Array, 2, buffer, byte_offset, length);
|
|
6415
|
+
case 4 /* napi_typedarray_type.napi_uint16_array */:
|
|
6416
|
+
return createTypedArray(envObject, Uint16Array, 2, buffer, byte_offset, length);
|
|
6417
|
+
case 5 /* napi_typedarray_type.napi_int32_array */:
|
|
6418
|
+
return createTypedArray(envObject, Int32Array, 4, buffer, byte_offset, length);
|
|
6419
|
+
case 6 /* napi_typedarray_type.napi_uint32_array */:
|
|
6420
|
+
return createTypedArray(envObject, Uint32Array, 4, buffer, byte_offset, length);
|
|
6421
|
+
case 7 /* napi_typedarray_type.napi_float32_array */:
|
|
6422
|
+
return createTypedArray(envObject, Float32Array, 4, buffer, byte_offset, length);
|
|
6423
|
+
case 8 /* napi_typedarray_type.napi_float64_array */:
|
|
6424
|
+
return createTypedArray(envObject, Float64Array, 8, buffer, byte_offset, length);
|
|
6425
|
+
case 9 /* napi_typedarray_type.napi_bigint64_array */:
|
|
6426
|
+
return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
|
|
6427
|
+
case 10 /* napi_typedarray_type.napi_biguint64_array */:
|
|
6428
|
+
return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
|
|
6429
|
+
case 11 /* napi_typedarray_type.napi_float16_array */:
|
|
6430
|
+
if (typeof Float16Array !== 'function') {
|
|
6431
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6432
|
+
}
|
|
6433
|
+
return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
|
|
6434
|
+
default:
|
|
5692
6435
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5693
|
-
|
|
5694
|
-
|
|
5695
|
-
|
|
5696
|
-
|
|
6436
|
+
}
|
|
6437
|
+
}
|
|
6438
|
+
else {
|
|
6439
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5697
6440
|
}
|
|
5698
6441
|
}
|
|
5699
6442
|
catch (err) {
|
|
@@ -5726,7 +6469,9 @@
|
|
|
5726
6469
|
if (!Buffer) {
|
|
5727
6470
|
throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
|
|
5728
6471
|
}
|
|
6472
|
+
result >>>= 0;
|
|
5729
6473
|
var buffer = void 0;
|
|
6474
|
+
size >>>= 0;
|
|
5730
6475
|
size = size >>> 0;
|
|
5731
6476
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5732
6477
|
if (!data || (size === 0)) {
|
|
@@ -5738,6 +6483,7 @@
|
|
|
5738
6483
|
pointer = _malloc(size);
|
|
5739
6484
|
if (!pointer)
|
|
5740
6485
|
throw new Error('Out of memory');
|
|
6486
|
+
pointer >>>= 0;
|
|
5741
6487
|
new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
|
|
5742
6488
|
var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
|
|
5743
6489
|
var viewDescriptor = {
|
|
@@ -5751,6 +6497,7 @@
|
|
|
5751
6497
|
(_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
|
|
5752
6498
|
value = emnapiCtx.addToCurrentScope(buffer_1).id;
|
|
5753
6499
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
6500
|
+
data >>>= 0;
|
|
5754
6501
|
HEAP_DATA_VIEW.setUint32(data, pointer, true);
|
|
5755
6502
|
}
|
|
5756
6503
|
return envObject.getReturnStatus();
|
|
@@ -5785,8 +6532,11 @@
|
|
|
5785
6532
|
}
|
|
5786
6533
|
var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
|
|
5787
6534
|
var buffer = Buffer.from(arrayBuffer);
|
|
6535
|
+
data >>>= 0;
|
|
6536
|
+
length >>>= 0;
|
|
5788
6537
|
buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
|
|
5789
6538
|
value = emnapiCtx.addToCurrentScope(buffer).id;
|
|
6539
|
+
result >>>= 0;
|
|
5790
6540
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5791
6541
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5792
6542
|
return envObject.getReturnStatus();
|
|
@@ -5823,6 +6573,8 @@
|
|
|
5823
6573
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5824
6574
|
if (!result)
|
|
5825
6575
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6576
|
+
byte_offset >>>= 0;
|
|
6577
|
+
byte_length >>>= 0;
|
|
5826
6578
|
byte_offset = byte_offset >>> 0;
|
|
5827
6579
|
byte_length = byte_length >>> 0;
|
|
5828
6580
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
@@ -5851,6 +6603,7 @@
|
|
|
5851
6603
|
});
|
|
5852
6604
|
}
|
|
5853
6605
|
}
|
|
6606
|
+
result >>>= 0;
|
|
5854
6607
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5855
6608
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
5856
6609
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5881,6 +6634,8 @@
|
|
|
5881
6634
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5882
6635
|
if (!result)
|
|
5883
6636
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6637
|
+
byte_length >>>= 0;
|
|
6638
|
+
byte_offset >>>= 0;
|
|
5884
6639
|
byte_length = byte_length >>> 0;
|
|
5885
6640
|
byte_offset = byte_offset >>> 0;
|
|
5886
6641
|
var value = emnapiCtx.handleStore.get(arraybuffer).value;
|
|
@@ -5902,6 +6657,7 @@
|
|
|
5902
6657
|
});
|
|
5903
6658
|
}
|
|
5904
6659
|
}
|
|
6660
|
+
result >>>= 0;
|
|
5905
6661
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5906
6662
|
var v = emnapiCtx.addToCurrentScope(dataview).id;
|
|
5907
6663
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5931,7 +6687,10 @@
|
|
|
5931
6687
|
envObject.checkGCAccess();
|
|
5932
6688
|
if (!result)
|
|
5933
6689
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5934
|
-
|
|
6690
|
+
length >>>= 0;
|
|
6691
|
+
utf8description >>>= 0;
|
|
6692
|
+
result >>>= 0;
|
|
6693
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
5935
6694
|
var sizelength = length >>> 0;
|
|
5936
6695
|
if (length !== 0) {
|
|
5937
6696
|
if (!utf8description)
|
|
@@ -5960,10 +6719,11 @@
|
|
|
5960
6719
|
napi_create_external_arraybuffer: napi_create_external_arraybuffer,
|
|
5961
6720
|
napi_create_external_buffer: napi_create_external_buffer,
|
|
5962
6721
|
napi_create_object: napi_create_object,
|
|
5963
|
-
napi_create_object_with_properties: napi_create_object_with_properties,
|
|
5964
6722
|
napi_create_symbol: napi_create_symbol,
|
|
5965
6723
|
napi_create_typedarray: napi_create_typedarray,
|
|
5966
6724
|
node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
|
|
6725
|
+
node_api_create_external_sharedarraybuffer: node_api_create_external_sharedarraybuffer,
|
|
6726
|
+
node_api_create_object_with_properties: node_api_create_object_with_properties,
|
|
5967
6727
|
node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
|
|
5968
6728
|
node_api_symbol_for: node_api_symbol_for
|
|
5969
6729
|
});
|
|
@@ -5976,6 +6736,7 @@
|
|
|
5976
6736
|
envObject.checkGCAccess();
|
|
5977
6737
|
if (!result)
|
|
5978
6738
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6739
|
+
result >>>= 0;
|
|
5979
6740
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5980
6741
|
var v = value === 0 ? 3 /* GlobalHandle.FALSE */ : 4 /* GlobalHandle.TRUE */;
|
|
5981
6742
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5991,6 +6752,7 @@
|
|
|
5991
6752
|
envObject.checkGCAccess();
|
|
5992
6753
|
if (!result)
|
|
5993
6754
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6755
|
+
result >>>= 0;
|
|
5994
6756
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5995
6757
|
var value = 5 /* GlobalHandle.GLOBAL */;
|
|
5996
6758
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6006,6 +6768,7 @@
|
|
|
6006
6768
|
envObject.checkGCAccess();
|
|
6007
6769
|
if (!result)
|
|
6008
6770
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6771
|
+
result >>>= 0;
|
|
6009
6772
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6010
6773
|
var value = 2 /* GlobalHandle.NULL */;
|
|
6011
6774
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6021,6 +6784,7 @@
|
|
|
6021
6784
|
envObject.checkGCAccess();
|
|
6022
6785
|
if (!result)
|
|
6023
6786
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6787
|
+
result >>>= 0;
|
|
6024
6788
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6025
6789
|
var value = 1 /* GlobalHandle.UNDEFINED */;
|
|
6026
6790
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6039,6 +6803,9 @@
|
|
|
6039
6803
|
if (!env)
|
|
6040
6804
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
6041
6805
|
var envObject = emnapiCtx.envStore.get(env);
|
|
6806
|
+
data >>>= 0;
|
|
6807
|
+
finalize_cb >>>= 0;
|
|
6808
|
+
finalize_hint >>>= 0;
|
|
6042
6809
|
envObject.setInstanceData(data, finalize_cb, finalize_hint);
|
|
6043
6810
|
return envObject.clearLastError();
|
|
6044
6811
|
}
|
|
@@ -6049,6 +6816,7 @@
|
|
|
6049
6816
|
var envObject = emnapiCtx.envStore.get(env);
|
|
6050
6817
|
if (!data)
|
|
6051
6818
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6819
|
+
data >>>= 0;
|
|
6052
6820
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6053
6821
|
var value = envObject.getInstanceData();
|
|
6054
6822
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6062,6 +6830,9 @@
|
|
|
6062
6830
|
});
|
|
6063
6831
|
/** @__sig vpppp */
|
|
6064
6832
|
function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
|
|
6833
|
+
error_code >>>= 0;
|
|
6834
|
+
engine_error_code >>>= 0;
|
|
6835
|
+
engine_reserved >>>= 0;
|
|
6065
6836
|
var envObject = emnapiCtx.envStore.get(env);
|
|
6066
6837
|
var lastError = envObject.lastError;
|
|
6067
6838
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -6070,6 +6841,7 @@
|
|
|
6070
6841
|
var engineErrorCode = lastError.engineErrorCode >>> 0;
|
|
6071
6842
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6072
6843
|
var engineReserved = lastError.engineReserved;
|
|
6844
|
+
engineReserved >>>= 0;
|
|
6073
6845
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6074
6846
|
HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
|
|
6075
6847
|
HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
|
|
@@ -6113,6 +6885,8 @@
|
|
|
6113
6885
|
try {
|
|
6114
6886
|
if (!msg)
|
|
6115
6887
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6888
|
+
code >>>= 0;
|
|
6889
|
+
msg >>>= 0;
|
|
6116
6890
|
var error = new Error(emnapiString.UTF8ToString(msg, -1));
|
|
6117
6891
|
if (code)
|
|
6118
6892
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -6139,6 +6913,8 @@
|
|
|
6139
6913
|
try {
|
|
6140
6914
|
if (!msg)
|
|
6141
6915
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6916
|
+
code >>>= 0;
|
|
6917
|
+
msg >>>= 0;
|
|
6142
6918
|
var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
|
|
6143
6919
|
if (code)
|
|
6144
6920
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -6165,6 +6941,8 @@
|
|
|
6165
6941
|
try {
|
|
6166
6942
|
if (!msg)
|
|
6167
6943
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6944
|
+
code >>>= 0;
|
|
6945
|
+
msg >>>= 0;
|
|
6168
6946
|
var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
|
|
6169
6947
|
if (code)
|
|
6170
6948
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -6191,6 +6969,8 @@
|
|
|
6191
6969
|
try {
|
|
6192
6970
|
if (!msg)
|
|
6193
6971
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6972
|
+
code >>>= 0;
|
|
6973
|
+
msg >>>= 0;
|
|
6194
6974
|
var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
|
|
6195
6975
|
if (code)
|
|
6196
6976
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -6213,6 +6993,7 @@
|
|
|
6213
6993
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6214
6994
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6215
6995
|
var r = envObject.tryCatch.hasCaught();
|
|
6996
|
+
result >>>= 0;
|
|
6216
6997
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6217
6998
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
6218
6999
|
return envObject.clearLastError();
|
|
@@ -6240,6 +7021,7 @@
|
|
|
6240
7021
|
}
|
|
6241
7022
|
error.code = codeValue;
|
|
6242
7023
|
}
|
|
7024
|
+
result >>>= 0;
|
|
6243
7025
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6244
7026
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
6245
7027
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6269,6 +7051,7 @@
|
|
|
6269
7051
|
}
|
|
6270
7052
|
error.code = codeValue;
|
|
6271
7053
|
}
|
|
7054
|
+
result >>>= 0;
|
|
6272
7055
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6273
7056
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
6274
7057
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6298,6 +7081,7 @@
|
|
|
6298
7081
|
}
|
|
6299
7082
|
error.code = codeValue;
|
|
6300
7083
|
}
|
|
7084
|
+
result >>>= 0;
|
|
6301
7085
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6302
7086
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
6303
7087
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6327,6 +7111,7 @@
|
|
|
6327
7111
|
}
|
|
6328
7112
|
error.code = codeValue;
|
|
6329
7113
|
}
|
|
7114
|
+
result >>>= 0;
|
|
6330
7115
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6331
7116
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
6332
7117
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6342,6 +7127,7 @@
|
|
|
6342
7127
|
envObject.checkGCAccess();
|
|
6343
7128
|
if (!result)
|
|
6344
7129
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7130
|
+
result >>>= 0;
|
|
6345
7131
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6346
7132
|
if (!envObject.tryCatch.hasCaught()) {
|
|
6347
7133
|
HEAP_DATA_VIEW.setUint32(result, 1, true); // ID_UNDEFINED
|
|
@@ -6358,6 +7144,10 @@
|
|
|
6358
7144
|
}
|
|
6359
7145
|
/** @__sig vpppp */
|
|
6360
7146
|
function napi_fatal_error(location, location_len, message, message_len) {
|
|
7147
|
+
location >>>= 0;
|
|
7148
|
+
location_len >>>= 0;
|
|
7149
|
+
message >>>= 0;
|
|
7150
|
+
message_len >>>= 0;
|
|
6361
7151
|
var locationStr = emnapiString.UTF8ToString(location, location_len);
|
|
6362
7152
|
var messageStr = emnapiString.UTF8ToString(message, message_len);
|
|
6363
7153
|
if (emnapiNodeBinding) {
|
|
@@ -6414,9 +7204,23 @@
|
|
|
6414
7204
|
node_api_throw_syntax_error: node_api_throw_syntax_error
|
|
6415
7205
|
});
|
|
6416
7206
|
/** @__sig ipppppp */
|
|
6417
|
-
function
|
|
7207
|
+
function _emnapi_create_function(env, utf8name, length, cb, data, result) {
|
|
7208
|
+
length >>>= 0;
|
|
7209
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
7210
|
+
var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
|
|
7211
|
+
if (fresult.status !== 0 /* napi_status.napi_ok */)
|
|
7212
|
+
return envObject.setLastError(fresult.status);
|
|
7213
|
+
var f = fresult.f;
|
|
7214
|
+
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
7215
|
+
result >>>= 0;
|
|
6418
7216
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6419
|
-
var value;
|
|
7217
|
+
var value = valueHandle.id;
|
|
7218
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7219
|
+
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
7220
|
+
return envObject.getReturnStatus();
|
|
7221
|
+
}
|
|
7222
|
+
/** @__sig ipppppp */
|
|
7223
|
+
function napi_create_function(env, utf8name, length, cb, data, result) {
|
|
6420
7224
|
if (!env)
|
|
6421
7225
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
6422
7226
|
// @ts-expect-error
|
|
@@ -6432,15 +7236,7 @@
|
|
|
6432
7236
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6433
7237
|
if (!cb)
|
|
6434
7238
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6435
|
-
|
|
6436
|
-
if (fresult.status !== 0 /* napi_status.napi_ok */)
|
|
6437
|
-
return envObject.setLastError(fresult.status);
|
|
6438
|
-
var f = fresult.f;
|
|
6439
|
-
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
6440
|
-
value = valueHandle.id;
|
|
6441
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6442
|
-
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
6443
|
-
return envObject.getReturnStatus();
|
|
7239
|
+
return _emnapi_create_function(env, utf8name, length, cb, data, result);
|
|
6444
7240
|
}
|
|
6445
7241
|
catch (err) {
|
|
6446
7242
|
envObject.tryCatch.setError(err);
|
|
@@ -6455,11 +7251,14 @@
|
|
|
6455
7251
|
if (!cbinfo)
|
|
6456
7252
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6457
7253
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
7254
|
+
argc >>>= 0;
|
|
7255
|
+
argv >>>= 0;
|
|
6458
7256
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6459
7257
|
if (argv) {
|
|
6460
7258
|
if (!argc)
|
|
6461
7259
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6462
7260
|
var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
|
|
7261
|
+
argcValue >>>= 0;
|
|
6463
7262
|
var len = cbinfoValue.args.length;
|
|
6464
7263
|
var arrlen = argcValue < len ? argcValue : len;
|
|
6465
7264
|
var i = 0;
|
|
@@ -6478,11 +7277,13 @@
|
|
|
6478
7277
|
HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
|
|
6479
7278
|
}
|
|
6480
7279
|
if (this_arg) {
|
|
7280
|
+
this_arg >>>= 0;
|
|
6481
7281
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6482
7282
|
var v = envObject.ensureHandleId(cbinfoValue.thiz);
|
|
6483
7283
|
HEAP_DATA_VIEW.setUint32(this_arg, v, true);
|
|
6484
7284
|
}
|
|
6485
7285
|
if (data) {
|
|
7286
|
+
data >>>= 0;
|
|
6486
7287
|
HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
|
|
6487
7288
|
}
|
|
6488
7289
|
return envObject.clearLastError();
|
|
@@ -6505,6 +7306,9 @@
|
|
|
6505
7306
|
try {
|
|
6506
7307
|
if (!recv)
|
|
6507
7308
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7309
|
+
argc >>>= 0;
|
|
7310
|
+
argv >>>= 0;
|
|
7311
|
+
result >>>= 0;
|
|
6508
7312
|
argc = argc >>> 0;
|
|
6509
7313
|
if (argc > 0) {
|
|
6510
7314
|
if (!argv)
|
|
@@ -6552,6 +7356,9 @@
|
|
|
6552
7356
|
try {
|
|
6553
7357
|
if (!constructor)
|
|
6554
7358
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7359
|
+
argc >>>= 0;
|
|
7360
|
+
argv >>>= 0;
|
|
7361
|
+
result >>>= 0;
|
|
6555
7362
|
argc = argc >>> 0;
|
|
6556
7363
|
if (argc > 0) {
|
|
6557
7364
|
if (!argv)
|
|
@@ -6604,8 +7411,10 @@
|
|
|
6604
7411
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6605
7412
|
if (!result)
|
|
6606
7413
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7414
|
+
result >>>= 0;
|
|
6607
7415
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
6608
7416
|
var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
|
|
7417
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unused-vars
|
|
6609
7418
|
var value = thiz == null || thiz.constructor == null
|
|
6610
7419
|
? 0
|
|
6611
7420
|
: thiz instanceof fn
|
|
@@ -6617,6 +7426,7 @@
|
|
|
6617
7426
|
}
|
|
6618
7427
|
var functionMod = /*#__PURE__*/ Object.freeze({
|
|
6619
7428
|
__proto__: null,
|
|
7429
|
+
_emnapi_create_function: _emnapi_create_function,
|
|
6620
7430
|
napi_call_function: napi_call_function,
|
|
6621
7431
|
napi_create_function: napi_create_function,
|
|
6622
7432
|
napi_get_cb_info: napi_get_cb_info,
|
|
@@ -6634,6 +7444,7 @@
|
|
|
6634
7444
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6635
7445
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6636
7446
|
var scope = emnapiCtx.openScope(envObject);
|
|
7447
|
+
result >>>= 0;
|
|
6637
7448
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6638
7449
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
6639
7450
|
return envObject.clearLastError();
|
|
@@ -6664,6 +7475,7 @@
|
|
|
6664
7475
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6665
7476
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6666
7477
|
var scope = emnapiCtx.openScope(envObject);
|
|
7478
|
+
result >>>= 0;
|
|
6667
7479
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6668
7480
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
6669
7481
|
return envObject.clearLastError();
|
|
@@ -6698,6 +7510,8 @@
|
|
|
6698
7510
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6699
7511
|
var scopeObject = emnapiCtx.scopeStore.get(scope);
|
|
6700
7512
|
if (!scopeObject.escapeCalled()) {
|
|
7513
|
+
escapee >>>= 0;
|
|
7514
|
+
result >>>= 0;
|
|
6701
7515
|
var newHandle = scopeObject.escape(escapee);
|
|
6702
7516
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6703
7517
|
var value = newHandle ? newHandle.id : 0;
|
|
@@ -6726,6 +7540,7 @@
|
|
|
6726
7540
|
}
|
|
6727
7541
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6728
7542
|
var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1 /* ReferenceOwnership.kUserland */);
|
|
7543
|
+
result >>>= 0;
|
|
6729
7544
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6730
7545
|
HEAP_DATA_VIEW.setUint32(result, ref.id, true);
|
|
6731
7546
|
return envObject.clearLastError();
|
|
@@ -6752,6 +7567,7 @@
|
|
|
6752
7567
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6753
7568
|
var count = emnapiCtx.refStore.get(ref).ref();
|
|
6754
7569
|
if (result) {
|
|
7570
|
+
result >>>= 0;
|
|
6755
7571
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6756
7572
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
6757
7573
|
}
|
|
@@ -6774,6 +7590,7 @@
|
|
|
6774
7590
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6775
7591
|
var count = reference.unref();
|
|
6776
7592
|
if (result) {
|
|
7593
|
+
result >>>= 0;
|
|
6777
7594
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6778
7595
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
6779
7596
|
}
|
|
@@ -6793,6 +7610,7 @@
|
|
|
6793
7610
|
var reference = emnapiCtx.refStore.get(ref);
|
|
6794
7611
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6795
7612
|
var handleId = reference.get(envObject);
|
|
7613
|
+
result >>>= 0;
|
|
6796
7614
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6797
7615
|
HEAP_DATA_VIEW.setUint32(result, handleId, true);
|
|
6798
7616
|
return envObject.clearLastError();
|
|
@@ -6804,6 +7622,8 @@
|
|
|
6804
7622
|
var envObject = emnapiCtx.envStore.get(env);
|
|
6805
7623
|
if (!fun)
|
|
6806
7624
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7625
|
+
fun >>>= 0;
|
|
7626
|
+
arg >>>= 0;
|
|
6807
7627
|
emnapiCtx.addCleanupHook(envObject, fun, arg);
|
|
6808
7628
|
return 0 /* napi_status.napi_ok */;
|
|
6809
7629
|
}
|
|
@@ -6814,6 +7634,8 @@
|
|
|
6814
7634
|
var envObject = emnapiCtx.envStore.get(env);
|
|
6815
7635
|
if (!fun)
|
|
6816
7636
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7637
|
+
fun >>>= 0;
|
|
7638
|
+
arg >>>= 0;
|
|
6817
7639
|
emnapiCtx.removeCleanupHook(envObject, fun, arg);
|
|
6818
7640
|
return 0 /* napi_status.napi_ok */;
|
|
6819
7641
|
}
|
|
@@ -6880,8 +7702,10 @@
|
|
|
6880
7702
|
var p = new Promise(function (resolve, reject) {
|
|
6881
7703
|
var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
|
|
6882
7704
|
deferredObjectId = deferredObject.id;
|
|
7705
|
+
deferred >>>= 0;
|
|
6883
7706
|
HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
|
|
6884
7707
|
});
|
|
7708
|
+
promise >>>= 0;
|
|
6885
7709
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6886
7710
|
value = emnapiCtx.addToCurrentScope(p).id;
|
|
6887
7711
|
HEAP_DATA_VIEW.setUint32(promise, value, true);
|
|
@@ -6956,6 +7780,7 @@
|
|
|
6956
7780
|
if (!is_promise)
|
|
6957
7781
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6958
7782
|
var h = emnapiCtx.handleStore.get(value);
|
|
7783
|
+
is_promise >>>= 0;
|
|
6959
7784
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6960
7785
|
var r = h.isPromise() ? 1 : 0;
|
|
6961
7786
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7103,6 +7928,7 @@
|
|
|
7103
7928
|
}
|
|
7104
7929
|
}
|
|
7105
7930
|
}
|
|
7931
|
+
result >>>= 0;
|
|
7106
7932
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7107
7933
|
value = emnapiCtx.addToCurrentScope(ret).id;
|
|
7108
7934
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7181,6 +8007,7 @@
|
|
|
7181
8007
|
catch (_) {
|
|
7182
8008
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
7183
8009
|
}
|
|
8010
|
+
result >>>= 0;
|
|
7184
8011
|
r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
|
|
7185
8012
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7186
8013
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -7223,6 +8050,7 @@
|
|
|
7223
8050
|
catch (_) {
|
|
7224
8051
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
7225
8052
|
}
|
|
8053
|
+
result >>>= 0;
|
|
7226
8054
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7227
8055
|
value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
|
|
7228
8056
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7270,6 +8098,7 @@
|
|
|
7270
8098
|
}
|
|
7271
8099
|
}
|
|
7272
8100
|
if (result) {
|
|
8101
|
+
result >>>= 0;
|
|
7273
8102
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7274
8103
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
7275
8104
|
}
|
|
@@ -7317,6 +8146,7 @@
|
|
|
7317
8146
|
return envObject.setLastError(4 /* napi_status.napi_name_expected */);
|
|
7318
8147
|
}
|
|
7319
8148
|
r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
|
|
8149
|
+
result >>>= 0;
|
|
7320
8150
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7321
8151
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
7322
8152
|
return envObject.getReturnStatus();
|
|
@@ -7350,6 +8180,7 @@
|
|
|
7350
8180
|
if (!cname) {
|
|
7351
8181
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7352
8182
|
}
|
|
8183
|
+
cname >>>= 0;
|
|
7353
8184
|
emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
|
|
7354
8185
|
return envObject.getReturnStatus();
|
|
7355
8186
|
}
|
|
@@ -7391,6 +8222,8 @@
|
|
|
7391
8222
|
catch (_) {
|
|
7392
8223
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
7393
8224
|
}
|
|
8225
|
+
utf8name >>>= 0;
|
|
8226
|
+
result >>>= 0;
|
|
7394
8227
|
r = emnapiString.UTF8ToString(utf8name, -1) in v;
|
|
7395
8228
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7396
8229
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
@@ -7434,6 +8267,8 @@
|
|
|
7434
8267
|
catch (_) {
|
|
7435
8268
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
7436
8269
|
}
|
|
8270
|
+
utf8name >>>= 0;
|
|
8271
|
+
result >>>= 0;
|
|
7437
8272
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7438
8273
|
value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
|
|
7439
8274
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7504,6 +8339,7 @@
|
|
|
7504
8339
|
catch (_) {
|
|
7505
8340
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
7506
8341
|
}
|
|
8342
|
+
result >>>= 0;
|
|
7507
8343
|
r = ((index >>> 0) in v) ? 1 : 0;
|
|
7508
8344
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7509
8345
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -7544,6 +8380,7 @@
|
|
|
7544
8380
|
catch (_) {
|
|
7545
8381
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
7546
8382
|
}
|
|
8383
|
+
result >>>= 0;
|
|
7547
8384
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7548
8385
|
value = envObject.ensureHandleId(v[index >>> 0]);
|
|
7549
8386
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7588,6 +8425,7 @@
|
|
|
7588
8425
|
}
|
|
7589
8426
|
}
|
|
7590
8427
|
if (result) {
|
|
8428
|
+
result >>>= 0;
|
|
7591
8429
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7592
8430
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
7593
8431
|
}
|
|
@@ -7613,6 +8451,8 @@
|
|
|
7613
8451
|
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
7614
8452
|
envObject.clearLastError();
|
|
7615
8453
|
try {
|
|
8454
|
+
properties >>>= 0;
|
|
8455
|
+
property_count >>>= 0;
|
|
7616
8456
|
property_count = property_count >>> 0;
|
|
7617
8457
|
if (property_count > 0) {
|
|
7618
8458
|
if (!properties)
|
|
@@ -7637,6 +8477,7 @@
|
|
|
7637
8477
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
7638
8478
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
7639
8479
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
8480
|
+
attributes >>>= 0;
|
|
7640
8481
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
7641
8482
|
if (utf8Name) {
|
|
7642
8483
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -7761,6 +8602,7 @@
|
|
|
7761
8602
|
}
|
|
7762
8603
|
var g = emnapiCtx.handleStore.get(5 /* GlobalHandle.GLOBAL */).value;
|
|
7763
8604
|
var ret = g.eval(v8Script.value);
|
|
8605
|
+
result >>>= 0;
|
|
7764
8606
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7765
8607
|
value = envObject.ensureHandleId(ret);
|
|
7766
8608
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7789,6 +8631,7 @@
|
|
|
7789
8631
|
if (!result)
|
|
7790
8632
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7791
8633
|
var v = emnapiCtx.handleStore.get(value);
|
|
8634
|
+
result >>>= 0;
|
|
7792
8635
|
var r;
|
|
7793
8636
|
if (v.isNumber()) {
|
|
7794
8637
|
r = 3 /* napi_valuetype.napi_number */;
|
|
@@ -7853,6 +8696,7 @@
|
|
|
7853
8696
|
if (!result)
|
|
7854
8697
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7855
8698
|
var handle = emnapiCtx.handleStore.get(value);
|
|
8699
|
+
result >>>= 0;
|
|
7856
8700
|
v = handle.value ? 4 /* GlobalHandle.TRUE */ : 3 /* GlobalHandle.FALSE */;
|
|
7857
8701
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7858
8702
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -7886,6 +8730,7 @@
|
|
|
7886
8730
|
if (handle.isBigInt()) {
|
|
7887
8731
|
throw new TypeError('Cannot convert a BigInt value to a number');
|
|
7888
8732
|
}
|
|
8733
|
+
result >>>= 0;
|
|
7889
8734
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7890
8735
|
v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
|
|
7891
8736
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7920,6 +8765,7 @@
|
|
|
7920
8765
|
if (handle.value == null) {
|
|
7921
8766
|
throw new TypeError('Cannot convert undefined or null to object');
|
|
7922
8767
|
}
|
|
8768
|
+
result >>>= 0;
|
|
7923
8769
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7924
8770
|
v = envObject.ensureHandleId(Object(handle.value));
|
|
7925
8771
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7954,6 +8800,7 @@
|
|
|
7954
8800
|
if (handle.isSymbol()) {
|
|
7955
8801
|
throw new TypeError('Cannot convert a Symbol value to a string');
|
|
7956
8802
|
}
|
|
8803
|
+
result >>>= 0;
|
|
7957
8804
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7958
8805
|
v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
|
|
7959
8806
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7986,6 +8833,7 @@
|
|
|
7986
8833
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7987
8834
|
if (!constructor)
|
|
7988
8835
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8836
|
+
result >>>= 0;
|
|
7989
8837
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7990
8838
|
HEAP_DATA_VIEW.setInt8(result, 0, true);
|
|
7991
8839
|
var ctor = emnapiCtx.handleStore.get(constructor);
|
|
@@ -8015,6 +8863,7 @@
|
|
|
8015
8863
|
if (!result)
|
|
8016
8864
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8017
8865
|
var h = emnapiCtx.handleStore.get(value);
|
|
8866
|
+
result >>>= 0;
|
|
8018
8867
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8019
8868
|
var r = h.isArray() ? 1 : 0;
|
|
8020
8869
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -8033,6 +8882,7 @@
|
|
|
8033
8882
|
if (!result)
|
|
8034
8883
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8035
8884
|
var h = emnapiCtx.handleStore.get(value);
|
|
8885
|
+
result >>>= 0;
|
|
8036
8886
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8037
8887
|
var r = h.isArrayBuffer() ? 1 : 0;
|
|
8038
8888
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -8051,6 +8901,7 @@
|
|
|
8051
8901
|
if (!result)
|
|
8052
8902
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8053
8903
|
var h = emnapiCtx.handleStore.get(value);
|
|
8904
|
+
result >>>= 0;
|
|
8054
8905
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8055
8906
|
var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
|
|
8056
8907
|
(Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
|
|
@@ -8072,6 +8923,7 @@
|
|
|
8072
8923
|
if (!result)
|
|
8073
8924
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8074
8925
|
var h = emnapiCtx.handleStore.get(value);
|
|
8926
|
+
result >>>= 0;
|
|
8075
8927
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8076
8928
|
var r = h.isDate() ? 1 : 0;
|
|
8077
8929
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -8090,6 +8942,7 @@
|
|
|
8090
8942
|
if (!result)
|
|
8091
8943
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8092
8944
|
var val = emnapiCtx.handleStore.get(value).value;
|
|
8945
|
+
result >>>= 0;
|
|
8093
8946
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8094
8947
|
var r = (val instanceof Error) ? 1 : 0;
|
|
8095
8948
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -8108,6 +8961,7 @@
|
|
|
8108
8961
|
if (!result)
|
|
8109
8962
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8110
8963
|
var h = emnapiCtx.handleStore.get(value);
|
|
8964
|
+
result >>>= 0;
|
|
8111
8965
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8112
8966
|
var r = h.isTypedArray() ? 1 : 0;
|
|
8113
8967
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -8126,6 +8980,7 @@
|
|
|
8126
8980
|
if (!result)
|
|
8127
8981
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8128
8982
|
var h = emnapiCtx.handleStore.get(value);
|
|
8983
|
+
result >>>= 0;
|
|
8129
8984
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8130
8985
|
var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
|
|
8131
8986
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -8144,6 +8999,7 @@
|
|
|
8144
8999
|
if (!result)
|
|
8145
9000
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8146
9001
|
var h = emnapiCtx.handleStore.get(value);
|
|
9002
|
+
result >>>= 0;
|
|
8147
9003
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8148
9004
|
var r = h.isDataView() ? 1 : 0;
|
|
8149
9005
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -8173,6 +9029,7 @@
|
|
|
8173
9029
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8174
9030
|
var lv = emnapiCtx.handleStore.get(lhs).value;
|
|
8175
9031
|
var rv = emnapiCtx.handleStore.get(rhs).value;
|
|
9032
|
+
result >>>= 0;
|
|
8176
9033
|
r = (lv === rv) ? 1 : 0;
|
|
8177
9034
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
8178
9035
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -8227,6 +9084,7 @@
|
|
|
8227
9084
|
if (!result)
|
|
8228
9085
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
8229
9086
|
var h = emnapiCtx.handleStore.get(arraybuffer);
|
|
9087
|
+
result >>>= 0;
|
|
8230
9088
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
8231
9089
|
if (h.isArrayBuffer() && h.value.byteLength === 0) {
|
|
8232
9090
|
try {
|
|
@@ -8285,11 +9143,13 @@
|
|
|
8285
9143
|
});
|
|
8286
9144
|
emnapiAWST.init();
|
|
8287
9145
|
emnapiExternalMemory.init();
|
|
9146
|
+
emnapiExternalSAB.init();
|
|
8288
9147
|
emnapiString.init();
|
|
8289
9148
|
emnapiTSFN.init();
|
|
8290
9149
|
PThread.init();
|
|
8291
9150
|
napiModule.emnapi.syncMemory = $emnapiSyncMemory;
|
|
8292
9151
|
napiModule.emnapi.getMemoryAddress = $emnapiGetMemoryAddress;
|
|
9152
|
+
napiModule.emnapi.acquireExternalSharedArrayBuffer = $emnapiAcquireExternalSharedArrayBuffer;
|
|
8293
9153
|
function addImports(mod) {
|
|
8294
9154
|
var keys = Object.keys(mod);
|
|
8295
9155
|
for (var i = 0; i < keys.length; ++i) {
|
|
@@ -8605,12 +9465,7 @@
|
|
|
8605
9465
|
try {
|
|
8606
9466
|
if (type === 'async-worker-init') {
|
|
8607
9467
|
this.handleAfterLoad(e, function () {
|
|
8608
|
-
_this.napiModule.initWorker(payload_1.arg);
|
|
8609
|
-
});
|
|
8610
|
-
}
|
|
8611
|
-
else if (type === 'async-work-execute') {
|
|
8612
|
-
this.handleAfterLoad(e, function () {
|
|
8613
|
-
_this.napiModule.executeAsyncWork(payload_1.work);
|
|
9468
|
+
_this.napiModule.initWorker(payload_1.arg, payload_1.func);
|
|
8614
9469
|
});
|
|
8615
9470
|
}
|
|
8616
9471
|
}
|
|
@@ -8636,7 +9491,7 @@
|
|
|
8636
9491
|
// }
|
|
8637
9492
|
// }
|
|
8638
9493
|
|
|
8639
|
-
var version = "1.
|
|
9494
|
+
var version = "1.11.1";
|
|
8640
9495
|
|
|
8641
9496
|
exports.MessageHandler = MessageHandler;
|
|
8642
9497
|
exports.ThreadManager = ThreadManager;
|