@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
|
@@ -116,7 +116,6 @@ function createNapiModule(options) {
|
|
|
116
116
|
filename: '',
|
|
117
117
|
childThread: ENVIRONMENT_IS_PTHREAD,
|
|
118
118
|
initWorker: undefined,
|
|
119
|
-
executeAsyncWork: undefined,
|
|
120
119
|
waitThreadStart: waitThreadStart,
|
|
121
120
|
PThread: undefined,
|
|
122
121
|
init: function (options) {
|
|
@@ -128,10 +127,10 @@ function createNapiModule(options) {
|
|
|
128
127
|
if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
|
|
129
128
|
throw new TypeError('Invalid wasm instance');
|
|
130
129
|
wasmInstance = instance;
|
|
131
|
-
var exports
|
|
130
|
+
var exports = instance.exports;
|
|
132
131
|
var module = options.module;
|
|
133
|
-
var memory = options.memory || exports
|
|
134
|
-
var table = options.table || exports
|
|
132
|
+
var memory = options.memory || exports.memory;
|
|
133
|
+
var table = options.table || exports.__indirect_function_table;
|
|
135
134
|
if (!(module instanceof _WebAssembly.Module))
|
|
136
135
|
throw new TypeError('Invalid wasm module');
|
|
137
136
|
if (!(memory instanceof _WebAssembly.Memory))
|
|
@@ -140,12 +139,12 @@ function createNapiModule(options) {
|
|
|
140
139
|
throw new TypeError('Invalid wasm table');
|
|
141
140
|
wasmMemory = memory;
|
|
142
141
|
wasmTable = table;
|
|
143
|
-
if (typeof exports
|
|
142
|
+
if (typeof exports.malloc !== 'function')
|
|
144
143
|
throw new TypeError('malloc is not exported');
|
|
145
|
-
if (typeof exports
|
|
144
|
+
if (typeof exports.free !== 'function')
|
|
146
145
|
throw new TypeError('free is not exported');
|
|
147
|
-
_malloc = exports
|
|
148
|
-
_free = exports
|
|
146
|
+
_malloc = exports.malloc;
|
|
147
|
+
_free = exports.free;
|
|
149
148
|
if (!napiModule.childThread) {
|
|
150
149
|
// main thread only
|
|
151
150
|
var moduleApiVersion = 8 /* Version.NODE_API_DEFAULT_MODULE_API_VERSION */;
|
|
@@ -158,11 +157,11 @@ function createNapiModule(options) {
|
|
|
158
157
|
var scope_1 = emnapiCtx.openScope(envObject);
|
|
159
158
|
try {
|
|
160
159
|
envObject.callIntoModule(function (_envObject) {
|
|
161
|
-
var exports
|
|
162
|
-
var exportsHandle = scope_1.add(exports
|
|
160
|
+
var exports = napiModule.exports;
|
|
161
|
+
var exportsHandle = scope_1.add(exports);
|
|
163
162
|
var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
|
|
164
163
|
var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
|
|
165
|
-
napiModule.exports = (!napiValue) ? exports
|
|
164
|
+
napiModule.exports = (!napiValue) ? exports : emnapiCtx.handleStore.get(napiValue).value;
|
|
166
165
|
});
|
|
167
166
|
}
|
|
168
167
|
catch (e) {
|
|
@@ -317,6 +316,9 @@ function createNapiModule(options) {
|
|
|
317
316
|
* @__sig vppp
|
|
318
317
|
*/
|
|
319
318
|
function _emnapi_get_node_version(major, minor, patch) {
|
|
319
|
+
major >>>= 0;
|
|
320
|
+
minor >>>= 0;
|
|
321
|
+
patch >>>= 0;
|
|
320
322
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
321
323
|
var versions = (typeof process === 'object' && process !== null &&
|
|
322
324
|
typeof process.versions === 'object' && process.versions !== null &&
|
|
@@ -382,6 +384,7 @@ function createNapiModule(options) {
|
|
|
382
384
|
*/
|
|
383
385
|
function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
|
|
384
386
|
var envObject = emnapiCtx.envStore.get(env);
|
|
387
|
+
callback >>>= 0;
|
|
385
388
|
envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
|
|
386
389
|
}
|
|
387
390
|
/**
|
|
@@ -487,9 +490,20 @@ function createNapiModule(options) {
|
|
|
487
490
|
return worker;
|
|
488
491
|
}
|
|
489
492
|
/** @__sig vp */
|
|
493
|
+
function _emnapi_worker_ref(pthreadPtr) {
|
|
494
|
+
if (ENVIRONMENT_IS_PTHREAD)
|
|
495
|
+
return;
|
|
496
|
+
pthreadPtr >>>= 0;
|
|
497
|
+
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
498
|
+
if (worker && typeof worker.ref === 'function') {
|
|
499
|
+
worker.ref();
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
/** @__sig vp */
|
|
490
503
|
function _emnapi_worker_unref(pthreadPtr) {
|
|
491
504
|
if (ENVIRONMENT_IS_PTHREAD)
|
|
492
505
|
return;
|
|
506
|
+
pthreadPtr >>>= 0;
|
|
493
507
|
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
494
508
|
if (worker && typeof worker.unref === 'function') {
|
|
495
509
|
worker.unref();
|
|
@@ -597,9 +611,9 @@ function createNapiModule(options) {
|
|
|
597
611
|
_emnapi_async_send_js: _emnapi_async_send_js,
|
|
598
612
|
_emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
|
|
599
613
|
_emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
|
|
614
|
+
_emnapi_worker_ref: _emnapi_worker_ref,
|
|
600
615
|
_emnapi_worker_unref: _emnapi_worker_unref
|
|
601
616
|
});
|
|
602
|
-
/* eslint-disable @typescript-eslint/indent */
|
|
603
617
|
/** @__sig ipjp */
|
|
604
618
|
function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
|
|
605
619
|
if (!env)
|
|
@@ -607,22 +621,15 @@ function createNapiModule(options) {
|
|
|
607
621
|
var envObject = emnapiCtx.envStore.get(env);
|
|
608
622
|
if (!adjusted_value)
|
|
609
623
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
}
|
|
614
|
-
var old_size = wasmMemory.buffer.byteLength;
|
|
615
|
-
var new_size = old_size + change_in_bytes_number;
|
|
616
|
-
new_size = new_size + ((65536 - new_size % 65536) % 65536);
|
|
617
|
-
if (wasmMemory.grow((new_size - old_size + 65535) >> 16) === -1) {
|
|
618
|
-
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
619
|
-
}
|
|
624
|
+
// eslint-disable-next-line prefer-const
|
|
625
|
+
var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
|
|
626
|
+
adjusted_value >>>= 0;
|
|
620
627
|
if (emnapiCtx.feature.supportBigInt) {
|
|
621
628
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
622
|
-
HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(
|
|
629
|
+
HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
|
|
623
630
|
}
|
|
624
631
|
else {
|
|
625
|
-
$emnapiSetValueI64(adjusted_value,
|
|
632
|
+
$emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
|
|
626
633
|
}
|
|
627
634
|
return envObject.clearLastError();
|
|
628
635
|
}
|
|
@@ -790,6 +797,7 @@ function createNapiModule(options) {
|
|
|
790
797
|
var asyncId = asyncContext.asyncId;
|
|
791
798
|
var triggerAsyncId = asyncContext.triggerAsyncId;
|
|
792
799
|
if (result) {
|
|
800
|
+
result >>>= 0;
|
|
793
801
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
794
802
|
HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
|
|
795
803
|
HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
|
|
@@ -833,6 +841,8 @@ function createNapiModule(options) {
|
|
|
833
841
|
return;
|
|
834
842
|
var resource = emnapiCtx.handleStore.get(async_resource).value;
|
|
835
843
|
var callback = emnapiCtx.handleStore.get(cb).value;
|
|
844
|
+
argv >>>= 0;
|
|
845
|
+
size >>>= 0;
|
|
836
846
|
size = size >>> 0;
|
|
837
847
|
var arr = Array(size);
|
|
838
848
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -845,6 +855,7 @@ function createNapiModule(options) {
|
|
|
845
855
|
triggerAsyncId: trigger_async_id
|
|
846
856
|
});
|
|
847
857
|
if (result) {
|
|
858
|
+
result >>>= 0;
|
|
848
859
|
var envObject = emnapiCtx.envStore.get(env);
|
|
849
860
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
850
861
|
v = envObject.ensureHandleId(ret);
|
|
@@ -875,6 +886,7 @@ function createNapiModule(options) {
|
|
|
875
886
|
var low = Number(numberValue & BigInt(0xffffffff));
|
|
876
887
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
877
888
|
var high = Number(numberValue >> BigInt(32));
|
|
889
|
+
result >>>= 0;
|
|
878
890
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
879
891
|
HEAP_DATA_VIEW.setInt32(result, low, true);
|
|
880
892
|
HEAP_DATA_VIEW.setInt32(result + 4, high, true);
|
|
@@ -885,6 +897,7 @@ function createNapiModule(options) {
|
|
|
885
897
|
if (!emnapiNodeBinding) {
|
|
886
898
|
return 9 /* napi_status.napi_generic_failure */;
|
|
887
899
|
}
|
|
900
|
+
async_context >>>= 0;
|
|
888
901
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
889
902
|
var low = HEAP_DATA_VIEW.getInt32(async_context, true);
|
|
890
903
|
var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
|
|
@@ -933,10 +946,13 @@ function createNapiModule(options) {
|
|
|
933
946
|
if (typeof v8func !== 'function') {
|
|
934
947
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
935
948
|
}
|
|
949
|
+
async_context >>>= 0;
|
|
936
950
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
937
951
|
var low = HEAP_DATA_VIEW.getInt32(async_context, true);
|
|
938
952
|
var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
|
|
939
953
|
var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
|
|
954
|
+
argv >>>= 0;
|
|
955
|
+
argc >>>= 0;
|
|
940
956
|
argc = argc >>> 0;
|
|
941
957
|
var arr = Array(argc);
|
|
942
958
|
for (; i < argc; i++) {
|
|
@@ -950,6 +966,7 @@ function createNapiModule(options) {
|
|
|
950
966
|
if (ret.status !== 0 /* napi_status.napi_ok */)
|
|
951
967
|
return envObject.setLastError(ret.status);
|
|
952
968
|
if (result) {
|
|
969
|
+
result >>>= 0;
|
|
953
970
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
954
971
|
v = envObject.ensureHandleId(ret.value);
|
|
955
972
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -987,32 +1004,62 @@ function createNapiModule(options) {
|
|
|
987
1004
|
* ```
|
|
988
1005
|
*/
|
|
989
1006
|
var emnapiTSFN = {
|
|
1007
|
+
_liveSet: {},
|
|
990
1008
|
offset: {
|
|
1009
|
+
__size__: 0,
|
|
991
1010
|
/* napi_ref */ resource: 0,
|
|
992
|
-
/* double */ async_id:
|
|
993
|
-
/* double */ trigger_async_id:
|
|
994
|
-
/* size_t */ queue_size:
|
|
995
|
-
/*
|
|
996
|
-
/*
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
/* size_t */
|
|
1001
|
-
/*
|
|
1002
|
-
/*
|
|
1003
|
-
/* void* */
|
|
1004
|
-
/*
|
|
1005
|
-
/*
|
|
1006
|
-
/*
|
|
1007
|
-
/*
|
|
1008
|
-
/*
|
|
1009
|
-
/*
|
|
1010
|
-
|
|
1011
|
+
/* double */ async_id: 0,
|
|
1012
|
+
/* double */ trigger_async_id: 0,
|
|
1013
|
+
/* size_t */ queue_size: 0,
|
|
1014
|
+
/* bool */ is_some: 0,
|
|
1015
|
+
/* void* */ queue: 0,
|
|
1016
|
+
// Reuse uv_async_t storage as JS-side wakeup state: pending event + scheduled drain.
|
|
1017
|
+
async_pending: 0,
|
|
1018
|
+
async_u_fd: 0,
|
|
1019
|
+
/* size_t */ thread_count: 0,
|
|
1020
|
+
/* int32_t */ state: 0,
|
|
1021
|
+
/* atomic_uchar */ dispatch_state: 0,
|
|
1022
|
+
/* void* */ context: 0,
|
|
1023
|
+
/* size_t */ max_queue_size: 0,
|
|
1024
|
+
/* napi_ref */ ref: 0,
|
|
1025
|
+
/* napi_env */ env: 0,
|
|
1026
|
+
/* void* */ finalize_data: 0,
|
|
1027
|
+
/* napi_finalize */ finalize_cb: 0,
|
|
1028
|
+
/* napi_threadsafe_function_call_js */ call_js_cb: 0,
|
|
1029
|
+
/* bool */ handles_closing: 0,
|
|
1030
|
+
/* bool */ async_ref: 0,
|
|
1031
|
+
/* int32_t */ mutex: 0,
|
|
1032
|
+
/* int32_t */ cond: 0
|
|
1011
1033
|
},
|
|
1012
1034
|
init: function () {
|
|
1035
|
+
emnapiTSFN._liveSet = new Set();
|
|
1036
|
+
emnapiTSFN.offset.__size__ = 184 /* NapiTSFNOffset32.__size__ */;
|
|
1037
|
+
emnapiTSFN.offset.resource = 0 /* NapiTSFNOffset32.async_resource_resource */;
|
|
1038
|
+
emnapiTSFN.offset.async_id = 8 /* NapiTSFNOffset32.async_resource_async_context_async_id */;
|
|
1039
|
+
emnapiTSFN.offset.trigger_async_id = 16 /* NapiTSFNOffset32.async_resource_async_context_trigger_async_id */;
|
|
1040
|
+
emnapiTSFN.offset.queue_size = 60 /* NapiTSFNOffset32.queue_size */;
|
|
1041
|
+
emnapiTSFN.offset.is_some = 24 /* NapiTSFNOffset32.async_resource_is_some */;
|
|
1042
|
+
emnapiTSFN.offset.queue = 64 /* NapiTSFNOffset32.queue */;
|
|
1043
|
+
emnapiTSFN.offset.async_pending = 132 /* NapiTSFNOffset32.async_pending */;
|
|
1044
|
+
emnapiTSFN.offset.async_u_fd = 96 /* NapiTSFNOffset32.async_u_fd */;
|
|
1045
|
+
emnapiTSFN.offset.thread_count = 136 /* NapiTSFNOffset32.thread_count */;
|
|
1046
|
+
emnapiTSFN.offset.state = 140 /* NapiTSFNOffset32.state */;
|
|
1047
|
+
emnapiTSFN.offset.dispatch_state = 144 /* NapiTSFNOffset32.dispatch_state */;
|
|
1048
|
+
emnapiTSFN.offset.context = 148 /* NapiTSFNOffset32.context */;
|
|
1049
|
+
emnapiTSFN.offset.max_queue_size = 152 /* NapiTSFNOffset32.max_queue_size */;
|
|
1050
|
+
emnapiTSFN.offset.ref = 156 /* NapiTSFNOffset32.ref */;
|
|
1051
|
+
emnapiTSFN.offset.env = 160 /* NapiTSFNOffset32.env */;
|
|
1052
|
+
emnapiTSFN.offset.finalize_data = 164 /* NapiTSFNOffset32.finalize_data */;
|
|
1053
|
+
emnapiTSFN.offset.finalize_cb = 168 /* NapiTSFNOffset32.finalize_cb */;
|
|
1054
|
+
emnapiTSFN.offset.call_js_cb = 172 /* NapiTSFNOffset32.call_js_cb */;
|
|
1055
|
+
emnapiTSFN.offset.handles_closing = 176 /* NapiTSFNOffset32.handles_closing */;
|
|
1056
|
+
emnapiTSFN.offset.async_ref = 180 /* NapiTSFNOffset32.async_ref */;
|
|
1057
|
+
emnapiTSFN.offset.mutex = 32 /* NapiTSFNOffset32.mutex */;
|
|
1058
|
+
emnapiTSFN.offset.cond = 56 /* NapiTSFNOffset32.cond */;
|
|
1059
|
+
emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
|
|
1013
1060
|
if (typeof PThread !== 'undefined') {
|
|
1014
1061
|
PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
|
|
1015
|
-
PThread.
|
|
1062
|
+
Object.values(PThread.pthreads).forEach(emnapiTSFN.addListener);
|
|
1016
1063
|
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
1017
1064
|
PThread.getNewWorker = function () {
|
|
1018
1065
|
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
@@ -1033,7 +1080,10 @@ function createNapiModule(options) {
|
|
|
1033
1080
|
var type = __emnapi__.type;
|
|
1034
1081
|
var payload = __emnapi__.payload;
|
|
1035
1082
|
if (type === 'tsfn-send') {
|
|
1036
|
-
emnapiTSFN.
|
|
1083
|
+
var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
|
|
1084
|
+
if (Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2) !== 0) {
|
|
1085
|
+
emnapiTSFN.enqueue(payload.tsfn);
|
|
1086
|
+
}
|
|
1037
1087
|
}
|
|
1038
1088
|
}
|
|
1039
1089
|
};
|
|
@@ -1055,18 +1105,40 @@ function createNapiModule(options) {
|
|
|
1055
1105
|
}
|
|
1056
1106
|
return true;
|
|
1057
1107
|
},
|
|
1108
|
+
/**
|
|
1109
|
+
* When another thread grows the shared WebAssembly.Memory, this agent's
|
|
1110
|
+
* cached `wasmMemory.buffer` may still have the old shorter length
|
|
1111
|
+
* (V8 refreshes it lazily). If a pointer derived from shared memory lies
|
|
1112
|
+
* beyond the cached length, `wasmMemory.grow(0)` forces the agent to
|
|
1113
|
+
* observe the current memory size and refreshes the buffer.
|
|
1114
|
+
*/
|
|
1115
|
+
ensureBufferFor: function (end) {
|
|
1116
|
+
var buffer = wasmMemory.buffer;
|
|
1117
|
+
if (end > buffer.byteLength) {
|
|
1118
|
+
wasmMemory.grow(0);
|
|
1119
|
+
buffer = wasmMemory.buffer;
|
|
1120
|
+
}
|
|
1121
|
+
return buffer;
|
|
1122
|
+
},
|
|
1058
1123
|
initQueue: function (func) {
|
|
1059
1124
|
var size = 2 * 4;
|
|
1060
1125
|
var queue = _malloc(size);
|
|
1061
1126
|
if (!queue)
|
|
1062
1127
|
return false;
|
|
1063
|
-
|
|
1128
|
+
queue >>>= 0;
|
|
1129
|
+
new Uint8Array(emnapiTSFN.ensureBufferFor(queue + size), queue, size).fill(0);
|
|
1064
1130
|
emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
|
|
1065
1131
|
return true;
|
|
1066
1132
|
},
|
|
1067
1133
|
destroyQueue: function (func) {
|
|
1068
1134
|
var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
|
|
1069
1135
|
if (queue) {
|
|
1136
|
+
var node = emnapiTSFN.loadSizeTypeValue(queue, false);
|
|
1137
|
+
while (node !== 0) {
|
|
1138
|
+
var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
|
|
1139
|
+
_free(node);
|
|
1140
|
+
node = next;
|
|
1141
|
+
}
|
|
1070
1142
|
_free(queue);
|
|
1071
1143
|
}
|
|
1072
1144
|
},
|
|
@@ -1079,6 +1151,7 @@ function createNapiModule(options) {
|
|
|
1079
1151
|
var node = _malloc(size);
|
|
1080
1152
|
if (!node)
|
|
1081
1153
|
throw new Error('OOM');
|
|
1154
|
+
node >>>= 0;
|
|
1082
1155
|
emnapiTSFN.storeSizeTypeValue(node, data, false);
|
|
1083
1156
|
emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
|
|
1084
1157
|
if (head === 0 && tail === 0) {
|
|
@@ -1114,11 +1187,11 @@ function createNapiModule(options) {
|
|
|
1114
1187
|
var waitCondition = function () {
|
|
1115
1188
|
var queueSize = emnapiTSFN.getQueueSize(func);
|
|
1116
1189
|
var maxSize = emnapiTSFN.getMaxQueueSize(func);
|
|
1117
|
-
|
|
1118
|
-
return queueSize >= maxSize && maxSize > 0 && !isClosing;
|
|
1190
|
+
return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0 /* State.kOpen */;
|
|
1119
1191
|
};
|
|
1120
1192
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
1121
|
-
|
|
1193
|
+
var shouldDelete = false;
|
|
1194
|
+
var ret = mutex.execute(function () {
|
|
1122
1195
|
while (waitCondition()) {
|
|
1123
1196
|
if (mode === 0 /* napi_threadsafe_function_call_mode.napi_tsfn_nonblocking */) {
|
|
1124
1197
|
return 15 /* napi_status.napi_queue_full */;
|
|
@@ -1135,31 +1208,35 @@ function createNapiModule(options) {
|
|
|
1135
1208
|
}
|
|
1136
1209
|
cond.wait();
|
|
1137
1210
|
}
|
|
1138
|
-
if (emnapiTSFN.
|
|
1139
|
-
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1140
|
-
return 1 /* napi_status.napi_invalid_arg */;
|
|
1141
|
-
}
|
|
1142
|
-
else {
|
|
1143
|
-
emnapiTSFN.subThreadCount(func);
|
|
1144
|
-
return 16 /* napi_status.napi_closing */;
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1147
|
-
else {
|
|
1211
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
1148
1212
|
emnapiTSFN.pushQueue(func, data);
|
|
1149
1213
|
emnapiTSFN.send(func);
|
|
1150
1214
|
return 0 /* napi_status.napi_ok */;
|
|
1151
1215
|
}
|
|
1216
|
+
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1217
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1218
|
+
}
|
|
1219
|
+
emnapiTSFN.subThreadCount(func);
|
|
1220
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
1221
|
+
return 16 /* napi_status.napi_closing */;
|
|
1222
|
+
}
|
|
1223
|
+
shouldDelete = true;
|
|
1224
|
+
return 16 /* napi_status.napi_closing */;
|
|
1152
1225
|
});
|
|
1226
|
+
if (shouldDelete) {
|
|
1227
|
+
emnapiTSFN.destroy(func);
|
|
1228
|
+
}
|
|
1229
|
+
return ret;
|
|
1153
1230
|
},
|
|
1154
1231
|
getMutex: function (func) {
|
|
1155
1232
|
var index = func + emnapiTSFN.offset.mutex;
|
|
1156
1233
|
var mutex = {
|
|
1157
1234
|
lock: function () {
|
|
1158
1235
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
1159
|
-
var i32a = new Int32Array(
|
|
1236
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1160
1237
|
if (isBrowserMain) {
|
|
1161
1238
|
while (true) {
|
|
1162
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1239
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1163
1240
|
if (oldValue === 0) {
|
|
1164
1241
|
return;
|
|
1165
1242
|
}
|
|
@@ -1167,11 +1244,11 @@ function createNapiModule(options) {
|
|
|
1167
1244
|
}
|
|
1168
1245
|
else {
|
|
1169
1246
|
while (true) {
|
|
1170
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1247
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1171
1248
|
if (oldValue === 0) {
|
|
1172
1249
|
return;
|
|
1173
1250
|
}
|
|
1174
|
-
Atomics.wait(i32a, 0,
|
|
1251
|
+
Atomics.wait(i32a, 0, 10);
|
|
1175
1252
|
}
|
|
1176
1253
|
}
|
|
1177
1254
|
},
|
|
@@ -1179,21 +1256,21 @@ function createNapiModule(options) {
|
|
|
1179
1256
|
return new Promise<void>(resolve => {
|
|
1180
1257
|
const again = (): void => { fn() }
|
|
1181
1258
|
const fn = (): void => {
|
|
1182
|
-
const i32a = new Int32Array(
|
|
1183
|
-
const oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1259
|
+
const i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1)
|
|
1260
|
+
const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
|
|
1184
1261
|
if (oldValue === 0) {
|
|
1185
1262
|
resolve()
|
|
1186
1263
|
return
|
|
1187
1264
|
}
|
|
1188
|
-
(Atomics as any).waitAsync(i32a, 0,
|
|
1265
|
+
(Atomics as any).waitAsync(i32a, 0, 10).value.then(again)
|
|
1189
1266
|
}
|
|
1190
1267
|
fn()
|
|
1191
1268
|
})
|
|
1192
1269
|
}, */
|
|
1193
1270
|
unlock: function () {
|
|
1194
|
-
var i32a = new Int32Array(
|
|
1195
|
-
var oldValue = Atomics.compareExchange(i32a, 0,
|
|
1196
|
-
if (oldValue !==
|
|
1271
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1272
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
1273
|
+
if (oldValue !== 10) {
|
|
1197
1274
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
1198
1275
|
}
|
|
1199
1276
|
Atomics.notify(i32a, 0, 1);
|
|
@@ -1225,14 +1302,14 @@ function createNapiModule(options) {
|
|
|
1225
1302
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1226
1303
|
var cond = {
|
|
1227
1304
|
wait: function () {
|
|
1228
|
-
var i32a = new Int32Array(
|
|
1305
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1229
1306
|
var value = Atomics.load(i32a, 0);
|
|
1230
1307
|
mutex.unlock();
|
|
1231
1308
|
Atomics.wait(i32a, 0, value);
|
|
1232
1309
|
mutex.lock();
|
|
1233
1310
|
},
|
|
1234
1311
|
/* waitAsync () {
|
|
1235
|
-
const i32a = new Int32Array(
|
|
1312
|
+
const i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1)
|
|
1236
1313
|
const value = Atomics.load(i32a, 0)
|
|
1237
1314
|
mutex.unlock()
|
|
1238
1315
|
const lock = (): Promise<void> => mutex.lockAsync()
|
|
@@ -1243,7 +1320,7 @@ function createNapiModule(options) {
|
|
|
1243
1320
|
}
|
|
1244
1321
|
}, */
|
|
1245
1322
|
signal: function () {
|
|
1246
|
-
var i32a = new Int32Array(
|
|
1323
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1247
1324
|
Atomics.add(i32a, 0, 1);
|
|
1248
1325
|
Atomics.notify(i32a, 0, 1);
|
|
1249
1326
|
}
|
|
@@ -1256,15 +1333,15 @@ function createNapiModule(options) {
|
|
|
1256
1333
|
addQueueSize: function (func) {
|
|
1257
1334
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1258
1335
|
var arr, index;
|
|
1259
|
-
arr = new Uint32Array(
|
|
1260
|
-
index = (func + offset)
|
|
1336
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1337
|
+
index = (func + offset) >>> 2;
|
|
1261
1338
|
Atomics.add(arr, index, 1);
|
|
1262
1339
|
},
|
|
1263
1340
|
subQueueSize: function (func) {
|
|
1264
1341
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1265
1342
|
var arr, index;
|
|
1266
|
-
arr = new Uint32Array(
|
|
1267
|
-
index = (func + offset)
|
|
1343
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1344
|
+
index = (func + offset) >>> 2;
|
|
1268
1345
|
Atomics.sub(arr, index, 1);
|
|
1269
1346
|
},
|
|
1270
1347
|
getThreadCount: function (func) {
|
|
@@ -1273,31 +1350,31 @@ function createNapiModule(options) {
|
|
|
1273
1350
|
addThreadCount: function (func) {
|
|
1274
1351
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1275
1352
|
var arr, index;
|
|
1276
|
-
arr = new Uint32Array(
|
|
1277
|
-
index = (func + offset)
|
|
1353
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1354
|
+
index = (func + offset) >>> 2;
|
|
1278
1355
|
Atomics.add(arr, index, 1);
|
|
1279
1356
|
},
|
|
1280
1357
|
subThreadCount: function (func) {
|
|
1281
1358
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1282
1359
|
var arr, index;
|
|
1283
|
-
arr = new Uint32Array(
|
|
1284
|
-
index = (func + offset)
|
|
1360
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1361
|
+
index = (func + offset) >>> 2;
|
|
1285
1362
|
Atomics.sub(arr, index, 1);
|
|
1286
1363
|
},
|
|
1287
|
-
|
|
1288
|
-
return Atomics.load(new Int32Array(
|
|
1364
|
+
getState: function (func) {
|
|
1365
|
+
return Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.state + 4)), (func + emnapiTSFN.offset.state) >>> 2);
|
|
1289
1366
|
},
|
|
1290
|
-
|
|
1291
|
-
Atomics.store(new Int32Array(
|
|
1367
|
+
setState: function (func, value) {
|
|
1368
|
+
Atomics.store(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.state + 4)), (func + emnapiTSFN.offset.state) >>> 2, value);
|
|
1292
1369
|
},
|
|
1293
1370
|
getHandlesClosing: function (func) {
|
|
1294
|
-
return Atomics.load(new
|
|
1371
|
+
return Atomics.load(new Int8Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.handles_closing + 1)), (func + emnapiTSFN.offset.handles_closing));
|
|
1295
1372
|
},
|
|
1296
1373
|
setHandlesClosing: function (func, value) {
|
|
1297
|
-
Atomics.store(new
|
|
1374
|
+
Atomics.store(new Int8Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.handles_closing + 1)), (func + emnapiTSFN.offset.handles_closing), value);
|
|
1298
1375
|
},
|
|
1299
1376
|
getDispatchState: function (func) {
|
|
1300
|
-
return Atomics.load(new Uint32Array(
|
|
1377
|
+
return Atomics.load(new Uint32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.dispatch_state + 4)), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
|
|
1301
1378
|
},
|
|
1302
1379
|
getContext: function (func) {
|
|
1303
1380
|
return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
|
|
@@ -1327,68 +1404,98 @@ function createNapiModule(options) {
|
|
|
1327
1404
|
var ret;
|
|
1328
1405
|
var arr;
|
|
1329
1406
|
if (unsigned) {
|
|
1330
|
-
arr = new Uint32Array(
|
|
1331
|
-
ret = Atomics.load(arr, offset
|
|
1407
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1408
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
1332
1409
|
return ret;
|
|
1333
1410
|
}
|
|
1334
1411
|
else {
|
|
1335
|
-
arr = new Int32Array(
|
|
1336
|
-
ret = Atomics.load(arr, offset
|
|
1412
|
+
arr = new Int32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1413
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
1337
1414
|
return ret;
|
|
1338
1415
|
}
|
|
1339
1416
|
},
|
|
1340
1417
|
storeSizeTypeValue: function (offset, value, unsigned) {
|
|
1341
1418
|
var arr;
|
|
1342
1419
|
if (unsigned) {
|
|
1343
|
-
arr = new Uint32Array(
|
|
1344
|
-
Atomics.store(arr, offset
|
|
1420
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1421
|
+
Atomics.store(arr, offset >>> 2, value);
|
|
1345
1422
|
return undefined;
|
|
1346
1423
|
}
|
|
1347
1424
|
else {
|
|
1348
|
-
arr = new Int32Array(
|
|
1349
|
-
Atomics.store(arr, offset
|
|
1425
|
+
arr = new Int32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1426
|
+
Atomics.store(arr, offset >>> 2, value >>> 0);
|
|
1350
1427
|
return undefined;
|
|
1351
1428
|
}
|
|
1352
1429
|
},
|
|
1430
|
+
releaseResources: function (func) {
|
|
1431
|
+
if (emnapiTSFN.getState(func) !== 2 /* State.kClosed */) {
|
|
1432
|
+
emnapiTSFN.setState(func, 2 /* State.kClosed */);
|
|
1433
|
+
var env = emnapiTSFN.getEnv(func);
|
|
1434
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1435
|
+
var ref = emnapiTSFN.getRef(func);
|
|
1436
|
+
if (ref) {
|
|
1437
|
+
emnapiCtx.refStore.get(ref).dispose();
|
|
1438
|
+
}
|
|
1439
|
+
var resource = emnapiTSFN.getResource(func);
|
|
1440
|
+
emnapiCtx.refStore.get(resource).dispose();
|
|
1441
|
+
emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.is_some + 1);
|
|
1442
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1443
|
+
HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
|
|
1444
|
+
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
1445
|
+
envObject.unref();
|
|
1446
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1447
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1448
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1449
|
+
if (Atomics.load(arr, asyncRefOffset) > 0) {
|
|
1450
|
+
Atomics.store(arr, asyncRefOffset, 0);
|
|
1451
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1452
|
+
}
|
|
1453
|
+
if (emnapiNodeBinding) {
|
|
1454
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1455
|
+
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1456
|
+
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1457
|
+
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1460
|
+
},
|
|
1353
1461
|
destroy: function (func) {
|
|
1462
|
+
emnapiTSFN._liveSet.delete(func);
|
|
1354
1463
|
emnapiTSFN.destroyQueue(func);
|
|
1355
|
-
|
|
1356
|
-
var envObject = emnapiCtx.envStore.get(env);
|
|
1357
|
-
var ref = emnapiTSFN.getRef(func);
|
|
1358
|
-
if (ref) {
|
|
1359
|
-
emnapiCtx.refStore.get(ref).dispose();
|
|
1360
|
-
}
|
|
1361
|
-
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
1362
|
-
envObject.unref();
|
|
1363
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
1364
|
-
var arr = new Int32Array(wasmMemory.buffer);
|
|
1365
|
-
if (Atomics.load(arr, asyncRefOffset)) {
|
|
1366
|
-
Atomics.store(arr, asyncRefOffset, 0);
|
|
1367
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1368
|
-
}
|
|
1369
|
-
var resource = emnapiTSFN.getResource(func);
|
|
1370
|
-
emnapiCtx.refStore.get(resource).dispose();
|
|
1371
|
-
if (emnapiNodeBinding) {
|
|
1372
|
-
var view = new DataView(wasmMemory.buffer);
|
|
1373
|
-
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1374
|
-
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1375
|
-
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
1376
|
-
}
|
|
1464
|
+
emnapiTSFN.releaseResources(func);
|
|
1377
1465
|
_free(func);
|
|
1378
1466
|
},
|
|
1379
|
-
|
|
1467
|
+
emptyQueue: function (func) {
|
|
1468
|
+
var drainQueue = [];
|
|
1469
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
1470
|
+
while (emnapiTSFN.getQueueSize(func) > 0) {
|
|
1471
|
+
drainQueue.push(emnapiTSFN.shiftQueue(func));
|
|
1472
|
+
}
|
|
1473
|
+
});
|
|
1380
1474
|
var callJsCb = emnapiTSFN.getCallJSCb(func);
|
|
1381
1475
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1382
1476
|
var context = emnapiTSFN.getContext(func);
|
|
1383
1477
|
var data;
|
|
1384
|
-
|
|
1478
|
+
for (var i = 0; i < drainQueue.length; i++) {
|
|
1385
1479
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1386
|
-
data =
|
|
1480
|
+
data = drainQueue[i];
|
|
1387
1481
|
if (callJsCb) {
|
|
1388
1482
|
(wasmTable.get(callJsCb))(0, 0, context, data);
|
|
1389
1483
|
}
|
|
1390
1484
|
}
|
|
1391
|
-
|
|
1485
|
+
},
|
|
1486
|
+
maybeDelete: function (func) {
|
|
1487
|
+
var shouldDelete = false;
|
|
1488
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
1489
|
+
if (emnapiTSFN.getThreadCount(func) > 0) {
|
|
1490
|
+
emnapiTSFN.releaseResources(func);
|
|
1491
|
+
}
|
|
1492
|
+
else {
|
|
1493
|
+
shouldDelete = true;
|
|
1494
|
+
}
|
|
1495
|
+
});
|
|
1496
|
+
if (shouldDelete) {
|
|
1497
|
+
emnapiTSFN.destroy(func);
|
|
1498
|
+
}
|
|
1392
1499
|
},
|
|
1393
1500
|
finalize: function (func) {
|
|
1394
1501
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -1403,12 +1510,13 @@ function createNapiModule(options) {
|
|
|
1403
1510
|
envObject.callFinalizerInternal(0, finalize, data, context);
|
|
1404
1511
|
};
|
|
1405
1512
|
try {
|
|
1513
|
+
emnapiTSFN.emptyQueue(func);
|
|
1406
1514
|
if (finalize) {
|
|
1407
1515
|
if (emnapiNodeBinding) {
|
|
1408
1516
|
var resource = emnapiTSFN.getResource(func);
|
|
1409
1517
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
1410
1518
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
1411
|
-
var view = new DataView(
|
|
1519
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1412
1520
|
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1413
1521
|
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1414
1522
|
emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
|
|
@@ -1420,7 +1528,7 @@ function createNapiModule(options) {
|
|
|
1420
1528
|
f();
|
|
1421
1529
|
}
|
|
1422
1530
|
}
|
|
1423
|
-
emnapiTSFN.
|
|
1531
|
+
emnapiTSFN.maybeDelete(func);
|
|
1424
1532
|
}
|
|
1425
1533
|
finally {
|
|
1426
1534
|
emnapiCtx.closeScope(envObject);
|
|
@@ -1436,7 +1544,7 @@ function createNapiModule(options) {
|
|
|
1436
1544
|
try {
|
|
1437
1545
|
if (set_closing) {
|
|
1438
1546
|
emnapiTSFN.getMutex(func).execute(function () {
|
|
1439
|
-
emnapiTSFN.
|
|
1547
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
1440
1548
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1441
1549
|
emnapiTSFN.getCond(func).signal();
|
|
1442
1550
|
}
|
|
@@ -1446,6 +1554,7 @@ function createNapiModule(options) {
|
|
|
1446
1554
|
return;
|
|
1447
1555
|
}
|
|
1448
1556
|
emnapiTSFN.setHandlesClosing(func, 1);
|
|
1557
|
+
Atomics.store(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.async_pending + 4)), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
|
|
1449
1558
|
emnapiCtx.feature.setImmediate(function () {
|
|
1450
1559
|
emnapiTSFN.finalize(func);
|
|
1451
1560
|
});
|
|
@@ -1462,10 +1571,7 @@ function createNapiModule(options) {
|
|
|
1462
1571
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1463
1572
|
var cond = emnapiTSFN.getCond(func);
|
|
1464
1573
|
mutex.execute(function () {
|
|
1465
|
-
if (emnapiTSFN.
|
|
1466
|
-
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
1467
|
-
}
|
|
1468
|
-
else {
|
|
1574
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
1469
1575
|
var size = emnapiTSFN.getQueueSize(func);
|
|
1470
1576
|
if (size > 0) {
|
|
1471
1577
|
data = emnapiTSFN.shiftQueue(func);
|
|
@@ -1478,7 +1584,7 @@ function createNapiModule(options) {
|
|
|
1478
1584
|
}
|
|
1479
1585
|
if (size === 0) {
|
|
1480
1586
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1481
|
-
emnapiTSFN.
|
|
1587
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
1482
1588
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1483
1589
|
cond.signal();
|
|
1484
1590
|
}
|
|
@@ -1489,6 +1595,9 @@ function createNapiModule(options) {
|
|
|
1489
1595
|
has_more = true;
|
|
1490
1596
|
}
|
|
1491
1597
|
}
|
|
1598
|
+
else {
|
|
1599
|
+
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
1600
|
+
}
|
|
1492
1601
|
});
|
|
1493
1602
|
if (popped_value) {
|
|
1494
1603
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -1517,7 +1626,7 @@ function createNapiModule(options) {
|
|
|
1517
1626
|
var resource = emnapiTSFN.getResource(func);
|
|
1518
1627
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
1519
1628
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
1520
|
-
var view = new DataView(
|
|
1629
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1521
1630
|
emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
|
|
1522
1631
|
asyncId: view.getFloat64(func + emnapiTSFN.offset.async_id, true),
|
|
1523
1632
|
triggerAsyncId: view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true)
|
|
@@ -1536,8 +1645,9 @@ function createNapiModule(options) {
|
|
|
1536
1645
|
dispatch: function (func) {
|
|
1537
1646
|
var has_more = true;
|
|
1538
1647
|
var iterations_left = 1000;
|
|
1539
|
-
var
|
|
1540
|
-
var
|
|
1648
|
+
var dispatchStateAddress = func + emnapiTSFN.offset.dispatch_state;
|
|
1649
|
+
var ui32a = new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4));
|
|
1650
|
+
var index = dispatchStateAddress >>> 2;
|
|
1541
1651
|
while (has_more && --iterations_left !== 0) {
|
|
1542
1652
|
Atomics.store(ui32a, index, 1);
|
|
1543
1653
|
has_more = emnapiTSFN.dispatchOne(func);
|
|
@@ -1549,25 +1659,86 @@ function createNapiModule(options) {
|
|
|
1549
1659
|
emnapiTSFN.send(func);
|
|
1550
1660
|
}
|
|
1551
1661
|
},
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1662
|
+
enqueue: function (func) {
|
|
1663
|
+
// `pending` means a worker thread has requested a wakeup that has not
|
|
1664
|
+
// been drained on the main thread yet.
|
|
1665
|
+
var pending = func + emnapiTSFN.offset.async_pending;
|
|
1666
|
+
// `scheduled` prevents queueing the same main-thread drain chain more than
|
|
1667
|
+
// once while a previous wakeup is still in flight.
|
|
1668
|
+
var scheduled = func + emnapiTSFN.offset.async_u_fd;
|
|
1669
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(Math.max(pending, scheduled) + 4));
|
|
1670
|
+
if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
|
|
1555
1671
|
return;
|
|
1556
1672
|
}
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1673
|
+
// Match uv_async_send-style coalescing in JS: the first turn represents
|
|
1674
|
+
// the wakeup reaching the main thread, and the second turn performs the
|
|
1675
|
+
// actual TSFN drain after nearby Send/Signal calls have had a chance to
|
|
1676
|
+
// collapse into the shared AsyncProgressWorker state.
|
|
1677
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1678
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
1679
|
+
return;
|
|
1680
|
+
}
|
|
1681
|
+
if (Atomics.load(i32a, pending >>> 2) === 0) {
|
|
1682
|
+
Atomics.store(i32a, scheduled >>> 2, 0);
|
|
1683
|
+
return;
|
|
1684
|
+
}
|
|
1685
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1686
|
+
try {
|
|
1687
|
+
// Consume the coalesced wakeup once, then let dispatch() observe any
|
|
1688
|
+
// queue mutations through dispatch_state like the C implementation.
|
|
1689
|
+
if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
|
|
1690
|
+
return;
|
|
1691
|
+
}
|
|
1692
|
+
// After destroy(), the func address is freed. Skip dispatch
|
|
1693
|
+
// to avoid use-after-free (JS-side lifecycle check).
|
|
1694
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
1695
|
+
return;
|
|
1696
|
+
}
|
|
1697
|
+
emnapiTSFN.dispatch(func);
|
|
1698
|
+
}
|
|
1699
|
+
finally {
|
|
1700
|
+
// Allow a later wakeup to schedule a new drain chain. If another
|
|
1701
|
+
// worker-thread send raced with this drain, enqueue one more turn.
|
|
1702
|
+
if (emnapiTSFN._liveSet.has(func)) {
|
|
1703
|
+
Atomics.store(i32a, scheduled >>> 2, 0);
|
|
1704
|
+
if (Atomics.load(i32a, pending >>> 2) !== 0) {
|
|
1705
|
+
emnapiTSFN.enqueue(func);
|
|
1706
|
+
}
|
|
1563
1707
|
}
|
|
1564
1708
|
}
|
|
1565
1709
|
});
|
|
1710
|
+
});
|
|
1711
|
+
},
|
|
1712
|
+
send: function (func) {
|
|
1713
|
+
var dispatchStateAddress = func + emnapiTSFN.offset.dispatch_state;
|
|
1714
|
+
var current_state = Atomics.or(new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4)), dispatchStateAddress >>> 2, 1 << 1);
|
|
1715
|
+
if ((current_state & 1) === 1) {
|
|
1716
|
+
return;
|
|
1566
1717
|
}
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1718
|
+
var pendng = func + emnapiTSFN.offset.async_pending;
|
|
1719
|
+
// A wakeup is already pending, so this send only needs to leave the queued
|
|
1720
|
+
// work in the TSFN queue and let the existing drain pick it up.
|
|
1721
|
+
if (Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2) !== 0) {
|
|
1722
|
+
return;
|
|
1723
|
+
}
|
|
1724
|
+
if (Atomics.exchange(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2, 1) === 0) {
|
|
1725
|
+
if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
|
|
1726
|
+
// Worker threads only post a wakeup token. Main-thread draining is
|
|
1727
|
+
// serialized by enqueue() once the message is received.
|
|
1728
|
+
postMessage({
|
|
1729
|
+
__emnapi__: {
|
|
1730
|
+
type: 'tsfn-send',
|
|
1731
|
+
payload: {
|
|
1732
|
+
tsfn: func
|
|
1733
|
+
}
|
|
1734
|
+
}
|
|
1735
|
+
});
|
|
1736
|
+
}
|
|
1737
|
+
else {
|
|
1738
|
+
// On the main thread we can skip the cross-thread hop and schedule the
|
|
1739
|
+
// coalesced drain chain directly.
|
|
1740
|
+
emnapiTSFN.enqueue(func);
|
|
1741
|
+
}
|
|
1571
1742
|
}
|
|
1572
1743
|
}
|
|
1573
1744
|
};
|
|
@@ -1580,6 +1751,13 @@ function createNapiModule(options) {
|
|
|
1580
1751
|
envObject.checkGCAccess();
|
|
1581
1752
|
if (!async_resource_name)
|
|
1582
1753
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1754
|
+
max_queue_size >>>= 0;
|
|
1755
|
+
initial_thread_count >>>= 0;
|
|
1756
|
+
env >>>= 0;
|
|
1757
|
+
thread_finalize_data >>>= 0;
|
|
1758
|
+
thread_finalize_cb >>>= 0;
|
|
1759
|
+
context >>>= 0;
|
|
1760
|
+
call_js_cb >>>= 0;
|
|
1583
1761
|
max_queue_size = max_queue_size >>> 0;
|
|
1584
1762
|
initial_thread_count = initial_thread_count >>> 0;
|
|
1585
1763
|
if (initial_thread_count === 0) {
|
|
@@ -1588,6 +1766,7 @@ function createNapiModule(options) {
|
|
|
1588
1766
|
if (!result)
|
|
1589
1767
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1590
1768
|
var ref = 0;
|
|
1769
|
+
func >>>= 0;
|
|
1591
1770
|
if (!func) {
|
|
1592
1771
|
if (!call_js_cb)
|
|
1593
1772
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
@@ -1619,22 +1798,25 @@ function createNapiModule(options) {
|
|
|
1619
1798
|
asyncResourceName = String(asyncResourceName);
|
|
1620
1799
|
var resource_name = envObject.ensureHandleId(asyncResourceName);
|
|
1621
1800
|
// tsfn create
|
|
1622
|
-
var sizeofTSFN = emnapiTSFN.offset.
|
|
1801
|
+
var sizeofTSFN = emnapiTSFN.offset.__size__;
|
|
1802
|
+
// eslint-disable-next-line prefer-const
|
|
1623
1803
|
var tsfn = _malloc(sizeofTSFN);
|
|
1624
1804
|
if (!tsfn)
|
|
1625
1805
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
1626
|
-
|
|
1806
|
+
tsfn >>>= 0;
|
|
1807
|
+
new Uint8Array(emnapiTSFN.ensureBufferFor(tsfn + sizeofTSFN)).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
|
|
1627
1808
|
var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
1628
1809
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1629
1810
|
var resource_ = resourceRef.id;
|
|
1630
1811
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1631
|
-
HEAP_DATA_VIEW.setUint32(tsfn, resource_, true);
|
|
1812
|
+
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
|
|
1632
1813
|
if (!emnapiTSFN.initQueue(tsfn)) {
|
|
1633
1814
|
_free(tsfn);
|
|
1634
1815
|
resourceRef.dispose();
|
|
1635
1816
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
1636
1817
|
}
|
|
1637
1818
|
_emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
|
|
1819
|
+
HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
|
|
1638
1820
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
|
|
1639
1821
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
|
|
1640
1822
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
|
|
@@ -1644,9 +1826,11 @@ function createNapiModule(options) {
|
|
|
1644
1826
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
|
|
1645
1827
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
|
|
1646
1828
|
emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
|
|
1829
|
+
emnapiTSFN._liveSet.add(tsfn);
|
|
1647
1830
|
envObject.ref();
|
|
1648
1831
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1649
|
-
HEAP_DATA_VIEW.
|
|
1832
|
+
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
|
|
1833
|
+
result >>>= 0;
|
|
1650
1834
|
HEAP_DATA_VIEW.setUint32(result, tsfn, true);
|
|
1651
1835
|
return envObject.clearLastError();
|
|
1652
1836
|
}
|
|
@@ -1656,6 +1840,8 @@ function createNapiModule(options) {
|
|
|
1656
1840
|
abort();
|
|
1657
1841
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1658
1842
|
}
|
|
1843
|
+
func >>>= 0;
|
|
1844
|
+
result >>>= 0;
|
|
1659
1845
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1660
1846
|
var context = emnapiTSFN.getContext(func);
|
|
1661
1847
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -1668,6 +1854,8 @@ function createNapiModule(options) {
|
|
|
1668
1854
|
abort();
|
|
1669
1855
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1670
1856
|
}
|
|
1857
|
+
func >>>= 0;
|
|
1858
|
+
data >>>= 0;
|
|
1671
1859
|
return emnapiTSFN.push(func, data, mode);
|
|
1672
1860
|
}
|
|
1673
1861
|
/** @__sig ip */
|
|
@@ -1676,13 +1864,14 @@ function createNapiModule(options) {
|
|
|
1676
1864
|
abort();
|
|
1677
1865
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1678
1866
|
}
|
|
1867
|
+
func >>>= 0;
|
|
1679
1868
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1680
1869
|
return mutex.execute(function () {
|
|
1681
|
-
if (emnapiTSFN.
|
|
1682
|
-
|
|
1870
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
1871
|
+
emnapiTSFN.addThreadCount(func);
|
|
1872
|
+
return 0 /* napi_status.napi_ok */;
|
|
1683
1873
|
}
|
|
1684
|
-
|
|
1685
|
-
return 0 /* napi_status.napi_ok */;
|
|
1874
|
+
return 16 /* napi_status.napi_closing */;
|
|
1686
1875
|
});
|
|
1687
1876
|
}
|
|
1688
1877
|
/** @__sig ipi */
|
|
@@ -1691,26 +1880,36 @@ function createNapiModule(options) {
|
|
|
1691
1880
|
abort();
|
|
1692
1881
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1693
1882
|
}
|
|
1883
|
+
func >>>= 0;
|
|
1694
1884
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1695
1885
|
var cond = emnapiTSFN.getCond(func);
|
|
1696
|
-
|
|
1886
|
+
var shouldDelete = false;
|
|
1887
|
+
var ret = mutex.execute(function () {
|
|
1697
1888
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1698
1889
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1699
1890
|
}
|
|
1700
1891
|
emnapiTSFN.subThreadCount(func);
|
|
1701
1892
|
if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
if (
|
|
1893
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
1894
|
+
if (mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
1895
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
1896
|
+
}
|
|
1897
|
+
if (emnapiTSFN.getState(func) === 1 /* State.kClosing */ && emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1707
1898
|
cond.signal();
|
|
1708
1899
|
}
|
|
1709
1900
|
emnapiTSFN.send(func);
|
|
1710
1901
|
}
|
|
1711
1902
|
}
|
|
1903
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
1904
|
+
return 0 /* napi_status.napi_ok */;
|
|
1905
|
+
}
|
|
1906
|
+
shouldDelete = true;
|
|
1712
1907
|
return 0 /* napi_status.napi_ok */;
|
|
1713
1908
|
});
|
|
1909
|
+
if (shouldDelete) {
|
|
1910
|
+
emnapiTSFN.destroy(func);
|
|
1911
|
+
}
|
|
1912
|
+
return ret;
|
|
1714
1913
|
}
|
|
1715
1914
|
/** @__sig ipp */
|
|
1716
1915
|
function napi_unref_threadsafe_function(env, func) {
|
|
@@ -1718,11 +1917,16 @@ function createNapiModule(options) {
|
|
|
1718
1917
|
abort();
|
|
1719
1918
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1720
1919
|
}
|
|
1721
|
-
|
|
1722
|
-
var
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1920
|
+
func >>>= 0;
|
|
1921
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1922
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1923
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1924
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1925
|
+
if (currentValue > 0) {
|
|
1926
|
+
Atomics.store(arr, asyncRefOffset, currentValue - 1);
|
|
1927
|
+
if (currentValue === 1) {
|
|
1928
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1929
|
+
}
|
|
1726
1930
|
}
|
|
1727
1931
|
return 0 /* napi_status.napi_ok */;
|
|
1728
1932
|
}
|
|
@@ -1732,34 +1936,73 @@ function createNapiModule(options) {
|
|
|
1732
1936
|
abort();
|
|
1733
1937
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1734
1938
|
}
|
|
1735
|
-
|
|
1736
|
-
var
|
|
1737
|
-
|
|
1738
|
-
|
|
1939
|
+
func >>>= 0;
|
|
1940
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1941
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1942
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1943
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1944
|
+
if (!currentValue) {
|
|
1739
1945
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1740
1946
|
}
|
|
1947
|
+
Atomics.store(arr, asyncRefOffset, currentValue + 1);
|
|
1741
1948
|
return 0 /* napi_status.napi_ok */;
|
|
1742
1949
|
}
|
|
1743
1950
|
var emnapiAWMT = {
|
|
1744
|
-
|
|
1745
|
-
runningWorkers: [],
|
|
1746
|
-
workQueue: [],
|
|
1951
|
+
pool: [],
|
|
1747
1952
|
workerReady: null,
|
|
1953
|
+
globalAddress: 0,
|
|
1954
|
+
globalOffset: {
|
|
1955
|
+
idle_threads: 0,
|
|
1956
|
+
q: 1 * 4,
|
|
1957
|
+
next: 1 * 4,
|
|
1958
|
+
prev: 2 * 4,
|
|
1959
|
+
mutex: 3 * 4,
|
|
1960
|
+
cond: 4 * 4,
|
|
1961
|
+
exit_message: 5 * 4,
|
|
1962
|
+
end: 7 * 4
|
|
1963
|
+
},
|
|
1748
1964
|
offset: {
|
|
1749
1965
|
/* napi_ref */ resource: 0,
|
|
1750
1966
|
/* double */ async_id: 8,
|
|
1751
1967
|
/* double */ trigger_async_id: 16,
|
|
1752
1968
|
/* napi_env */ env: 24,
|
|
1753
|
-
/*
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1969
|
+
/* int32_t */ status: 1 * 4 + 24, // 0 for pending, 1 for cancelled, 2 for completed
|
|
1970
|
+
queue: 2 * 4 + 24,
|
|
1971
|
+
queue_next: 2 * 4 + 24,
|
|
1972
|
+
queue_prev: 3 * 4 + 24,
|
|
1973
|
+
/* void* */ data: 4 * 4 + 24,
|
|
1974
|
+
/* napi_async_execute_callback */ execute: 5 * 4 + 24,
|
|
1975
|
+
/* napi_async_complete_callback */ complete: 6 * 4 + 24,
|
|
1976
|
+
end: 7 * 4 + 24
|
|
1977
|
+
},
|
|
1978
|
+
/**
|
|
1979
|
+
* When another thread grows the shared WebAssembly.Memory, this agent's
|
|
1980
|
+
* cached `wasmMemory.buffer` may still have the old shorter length
|
|
1981
|
+
* (V8 refreshes it lazily). If a pointer derived from shared memory lies
|
|
1982
|
+
* beyond the cached length, `wasmMemory.grow(0)` forces the agent to
|
|
1983
|
+
* observe the current memory size and refreshes the buffer.
|
|
1984
|
+
*/
|
|
1985
|
+
ensureBufferFor: function (end) {
|
|
1986
|
+
var buffer = wasmMemory.buffer;
|
|
1987
|
+
if (end > buffer.byteLength) {
|
|
1988
|
+
wasmMemory.grow(0);
|
|
1989
|
+
buffer = wasmMemory.buffer;
|
|
1990
|
+
}
|
|
1991
|
+
return buffer;
|
|
1757
1992
|
},
|
|
1758
1993
|
init: function () {
|
|
1759
|
-
emnapiAWMT.
|
|
1760
|
-
emnapiAWMT.runningWorkers = [];
|
|
1761
|
-
emnapiAWMT.workQueue = [];
|
|
1994
|
+
emnapiAWMT.pool = [];
|
|
1762
1995
|
emnapiAWMT.workerReady = null;
|
|
1996
|
+
if (typeof PThread !== 'undefined') {
|
|
1997
|
+
PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
|
|
1998
|
+
Object.values(PThread.pthreads).forEach(emnapiAWMT.addListener);
|
|
1999
|
+
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
2000
|
+
PThread.getNewWorker = function () {
|
|
2001
|
+
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
2002
|
+
emnapiAWMT.addListener(r);
|
|
2003
|
+
return r;
|
|
2004
|
+
};
|
|
2005
|
+
}
|
|
1763
2006
|
},
|
|
1764
2007
|
addListener: function (worker) {
|
|
1765
2008
|
if (!worker)
|
|
@@ -1773,18 +2016,8 @@ function createNapiModule(options) {
|
|
|
1773
2016
|
var type = __emnapi__.type;
|
|
1774
2017
|
var payload = __emnapi__.payload;
|
|
1775
2018
|
if (type === 'async-work-complete') {
|
|
1776
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1777
|
-
emnapiAWMT.runningWorkers.splice(emnapiAWMT.runningWorkers.indexOf(worker), 1);
|
|
1778
|
-
emnapiAWMT.unusedWorkers.push(worker);
|
|
1779
|
-
emnapiAWMT.checkIdleWorker();
|
|
1780
2019
|
emnapiAWMT.callComplete(payload.work, 0 /* napi_status.napi_ok */);
|
|
1781
2020
|
}
|
|
1782
|
-
else if (type === 'async-work-queue') {
|
|
1783
|
-
emnapiAWMT.scheduleWork(payload.work);
|
|
1784
|
-
}
|
|
1785
|
-
else if (type === 'async-work-cancel') {
|
|
1786
|
-
emnapiAWMT.cancelWork(payload.work);
|
|
1787
|
-
}
|
|
1788
2021
|
}
|
|
1789
2022
|
};
|
|
1790
2023
|
var dispose = function () {
|
|
@@ -1805,6 +2038,26 @@ function createNapiModule(options) {
|
|
|
1805
2038
|
}
|
|
1806
2039
|
return true;
|
|
1807
2040
|
},
|
|
2041
|
+
initGlobal: function () {
|
|
2042
|
+
if (!emnapiAWMT.globalAddress) {
|
|
2043
|
+
emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
|
|
2044
|
+
emnapiAWMT.globalAddress >>>= 0;
|
|
2045
|
+
var size = emnapiAWMT.globalOffset.end;
|
|
2046
|
+
var addr = emnapiAWMT.globalAddress;
|
|
2047
|
+
new Uint8Array(emnapiAWMT.ensureBufferFor(addr + size), addr, size).fill(0);
|
|
2048
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
|
|
2049
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
|
|
2050
|
+
}
|
|
2051
|
+
},
|
|
2052
|
+
terminateWorkers: function () {
|
|
2053
|
+
emnapiAWMT.pool.forEach(function (w) {
|
|
2054
|
+
var _a, _b;
|
|
2055
|
+
(_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
2056
|
+
(_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
2057
|
+
w.terminate();
|
|
2058
|
+
});
|
|
2059
|
+
emnapiAWMT.pool.length = 0;
|
|
2060
|
+
},
|
|
1808
2061
|
initWorkers: function (n) {
|
|
1809
2062
|
if (ENVIRONMENT_IS_PTHREAD) {
|
|
1810
2063
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
@@ -1812,137 +2065,212 @@ function createNapiModule(options) {
|
|
|
1812
2065
|
}
|
|
1813
2066
|
if (emnapiAWMT.workerReady)
|
|
1814
2067
|
return emnapiAWMT.workerReady;
|
|
1815
|
-
if (typeof onCreateWorker !== 'function') {
|
|
1816
|
-
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
1817
|
-
}
|
|
1818
|
-
var promises = [];
|
|
1819
|
-
var args = [];
|
|
1820
2068
|
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
1821
2069
|
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
1822
2070
|
}
|
|
2071
|
+
var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
|
|
2072
|
+
var args = [];
|
|
2073
|
+
emnapiAWMT.initGlobal();
|
|
1823
2074
|
for (var i = 0; i < n; ++i) {
|
|
1824
|
-
args.push(
|
|
2075
|
+
args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
|
|
1825
2076
|
}
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
var p = PThread.loadWasmModuleToWorker(worker);
|
|
1830
|
-
emnapiAWMT.addListener(worker);
|
|
1831
|
-
promises.push(p.then(function () {
|
|
1832
|
-
if (typeof worker.unref === 'function') {
|
|
1833
|
-
worker.unref();
|
|
1834
|
-
}
|
|
1835
|
-
}));
|
|
1836
|
-
emnapiAWMT.unusedWorkers.push(worker);
|
|
1837
|
-
var arg = args[i];
|
|
1838
|
-
worker.threadBlockBase = arg;
|
|
1839
|
-
worker.postMessage({
|
|
1840
|
-
__emnapi__: {
|
|
1841
|
-
type: 'async-worker-init',
|
|
1842
|
-
payload: { arg: arg }
|
|
1843
|
-
}
|
|
1844
|
-
});
|
|
1845
|
-
};
|
|
1846
|
-
for (var i = 0; i < n; ++i) {
|
|
1847
|
-
_loop_1(i);
|
|
2077
|
+
var promises = args.map(function (index) {
|
|
2078
|
+
if (index === 0) {
|
|
2079
|
+
return Promise.reject(new Error('Failed to create async worker'));
|
|
1848
2080
|
}
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
_free(arg);
|
|
2081
|
+
var worker;
|
|
2082
|
+
if (index < 0) {
|
|
2083
|
+
worker = emnapiAWMT.pool[-index - 1];
|
|
2084
|
+
if (worker)
|
|
2085
|
+
return worker.whenLoaded;
|
|
1855
2086
|
}
|
|
1856
|
-
|
|
1857
|
-
|
|
2087
|
+
index >>>= 0;
|
|
2088
|
+
var tidOffset = 20;
|
|
2089
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(index + tidOffset + 4));
|
|
2090
|
+
var tid = view.getInt32(index + tidOffset, true);
|
|
2091
|
+
worker = PThread.pthreads[tid];
|
|
2092
|
+
return worker.whenLoaded;
|
|
2093
|
+
});
|
|
1858
2094
|
emnapiAWMT.workerReady = Promise.all(promises);
|
|
1859
2095
|
return emnapiAWMT.workerReady;
|
|
1860
2096
|
},
|
|
1861
|
-
checkIdleWorker: function () {
|
|
1862
|
-
if (emnapiAWMT.unusedWorkers.length > 0 && emnapiAWMT.workQueue.length > 0) {
|
|
1863
|
-
var worker = emnapiAWMT.unusedWorkers.shift();
|
|
1864
|
-
var work = emnapiAWMT.workQueue.shift();
|
|
1865
|
-
emnapiAWMT.runningWorkers.push(worker);
|
|
1866
|
-
worker.postMessage({
|
|
1867
|
-
__emnapi__: {
|
|
1868
|
-
type: 'async-work-execute',
|
|
1869
|
-
payload: { work: work }
|
|
1870
|
-
}
|
|
1871
|
-
});
|
|
1872
|
-
}
|
|
1873
|
-
},
|
|
1874
2097
|
getResource: function (work) {
|
|
1875
|
-
|
|
2098
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.resource + 4);
|
|
2099
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2100
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
|
|
1876
2101
|
},
|
|
1877
2102
|
getExecute: function (work) {
|
|
1878
|
-
|
|
2103
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.execute + 4);
|
|
2104
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2105
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
|
|
1879
2106
|
},
|
|
1880
2107
|
getComplete: function (work) {
|
|
1881
|
-
|
|
2108
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.complete + 4);
|
|
2109
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2110
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
|
|
1882
2111
|
},
|
|
1883
2112
|
getEnv: function (work) {
|
|
1884
|
-
|
|
2113
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.env + 4);
|
|
2114
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2115
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
|
|
1885
2116
|
},
|
|
1886
2117
|
getData: function (work) {
|
|
1887
|
-
|
|
2118
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.data + 4);
|
|
2119
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2120
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
|
|
2121
|
+
},
|
|
2122
|
+
getMutex: function () {
|
|
2123
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
|
|
2124
|
+
var mutex = {
|
|
2125
|
+
lock: function () {
|
|
2126
|
+
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
2127
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
2128
|
+
if (isBrowserMain) {
|
|
2129
|
+
while (true) {
|
|
2130
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
2131
|
+
if (oldValue === 0) {
|
|
2132
|
+
return;
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2135
|
+
}
|
|
2136
|
+
else {
|
|
2137
|
+
while (true) {
|
|
2138
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
2139
|
+
if (oldValue === 0) {
|
|
2140
|
+
return;
|
|
2141
|
+
}
|
|
2142
|
+
Atomics.wait(i32a, 0, 10);
|
|
2143
|
+
}
|
|
2144
|
+
}
|
|
2145
|
+
},
|
|
2146
|
+
unlock: function () {
|
|
2147
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
2148
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
2149
|
+
if (oldValue !== 10) {
|
|
2150
|
+
throw new Error('Tried to unlock while not holding the mutex');
|
|
2151
|
+
}
|
|
2152
|
+
Atomics.notify(i32a, 0, 1);
|
|
2153
|
+
},
|
|
2154
|
+
execute: function (fn) {
|
|
2155
|
+
mutex.lock();
|
|
2156
|
+
try {
|
|
2157
|
+
return fn();
|
|
2158
|
+
}
|
|
2159
|
+
finally {
|
|
2160
|
+
mutex.unlock();
|
|
2161
|
+
}
|
|
2162
|
+
}
|
|
2163
|
+
};
|
|
2164
|
+
return mutex;
|
|
2165
|
+
},
|
|
2166
|
+
getCond: function () {
|
|
2167
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
|
|
2168
|
+
var mutex = emnapiAWMT.getMutex();
|
|
2169
|
+
var cond = {
|
|
2170
|
+
wait: function () {
|
|
2171
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
2172
|
+
var value = Atomics.load(i32a, 0);
|
|
2173
|
+
mutex.unlock();
|
|
2174
|
+
Atomics.wait(i32a, 0, value);
|
|
2175
|
+
mutex.lock();
|
|
2176
|
+
},
|
|
2177
|
+
signal: function () {
|
|
2178
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
2179
|
+
Atomics.add(i32a, 0, 1);
|
|
2180
|
+
Atomics.notify(i32a, 0, 1);
|
|
2181
|
+
}
|
|
2182
|
+
};
|
|
2183
|
+
return cond;
|
|
2184
|
+
},
|
|
2185
|
+
queueInit: function (q) {
|
|
2186
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
2187
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2188
|
+
HEAP_DATA_VIEW.setUint32(q, q, true);
|
|
2189
|
+
HEAP_DATA_VIEW.setUint32(q + 4, q, true);
|
|
2190
|
+
},
|
|
2191
|
+
queueInsertTail: function (h, q) {
|
|
2192
|
+
emnapiAWMT.ensureBufferFor(h + 4 + 4);
|
|
2193
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
2194
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2195
|
+
HEAP_DATA_VIEW.setUint32(q, h, true);
|
|
2196
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2197
|
+
var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
|
|
2198
|
+
HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
|
|
2199
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2200
|
+
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
2201
|
+
HEAP_DATA_VIEW.setUint32(qprev, q, true);
|
|
2202
|
+
HEAP_DATA_VIEW.setUint32(h + 4, q, true);
|
|
2203
|
+
},
|
|
2204
|
+
queueRemove: function (q) {
|
|
2205
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
2206
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2207
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2208
|
+
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
2209
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2210
|
+
var qnext = HEAP_DATA_VIEW.getUint32(q, true);
|
|
2211
|
+
HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
|
|
2212
|
+
HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
|
|
2213
|
+
},
|
|
2214
|
+
queueEmpty: function (q) {
|
|
2215
|
+
emnapiAWMT.ensureBufferFor(q + 4);
|
|
2216
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2217
|
+
// eslint-disable-next-line eqeqeq
|
|
2218
|
+
return q == HEAP_DATA_VIEW.getUint32(q, true);
|
|
1888
2219
|
},
|
|
1889
2220
|
scheduleWork: function (work) {
|
|
1890
2221
|
var _a;
|
|
1891
|
-
if (
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
}
|
|
2222
|
+
if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
|
|
2223
|
+
emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
|
|
2224
|
+
emnapiAWMT.workerReady.ready = true;
|
|
2225
|
+
}).catch(function (err) {
|
|
2226
|
+
emnapiAWMT.workerReady = null;
|
|
2227
|
+
throw err;
|
|
1898
2228
|
});
|
|
1899
|
-
return;
|
|
1900
2229
|
}
|
|
1901
2230
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1902
|
-
emnapiAWMT.
|
|
1903
|
-
|
|
1904
|
-
|
|
2231
|
+
var statusBuffer = new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1);
|
|
2232
|
+
Atomics.store(statusBuffer, 0, 0 /* AsyncWorkStatus.Pending */);
|
|
2233
|
+
var mutex = emnapiAWMT.getMutex();
|
|
2234
|
+
var cond = emnapiAWMT.getCond();
|
|
2235
|
+
mutex.lock();
|
|
2236
|
+
try {
|
|
2237
|
+
emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
|
|
1905
2238
|
}
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
};
|
|
1911
|
-
try {
|
|
1912
|
-
emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
|
|
1913
|
-
emnapiAWMT.workerReady.ready = true;
|
|
1914
|
-
emnapiAWMT.checkIdleWorker();
|
|
1915
|
-
}, fail);
|
|
1916
|
-
}
|
|
1917
|
-
catch (err) {
|
|
1918
|
-
fail(err);
|
|
1919
|
-
}
|
|
2239
|
+
catch (err) {
|
|
2240
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2241
|
+
mutex.unlock();
|
|
2242
|
+
throw err;
|
|
1920
2243
|
}
|
|
2244
|
+
emnapiAWMT.ensureBufferFor(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads + 4);
|
|
2245
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2246
|
+
if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
|
|
2247
|
+
cond.signal();
|
|
2248
|
+
}
|
|
2249
|
+
mutex.unlock();
|
|
1921
2250
|
},
|
|
1922
2251
|
cancelWork: function (work) {
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
}
|
|
1931
|
-
|
|
2252
|
+
var cancelled = false;
|
|
2253
|
+
emnapiAWMT.getMutex().execute(function () {
|
|
2254
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4);
|
|
2255
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2256
|
+
cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2 /* AsyncWorkStatus.Completed */;
|
|
2257
|
+
if (cancelled) {
|
|
2258
|
+
emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
|
|
2259
|
+
}
|
|
2260
|
+
});
|
|
2261
|
+
if (!cancelled) {
|
|
2262
|
+
return 9 /* napi_status.napi_generic_failure */;
|
|
1932
2263
|
}
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
emnapiAWMT.workQueue.splice(index, 1);
|
|
1936
|
-
emnapiCtx.feature.setImmediate(function () {
|
|
1937
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1938
|
-
emnapiAWMT.checkIdleWorker();
|
|
1939
|
-
emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
|
|
1940
|
-
});
|
|
1941
|
-
return 0 /* napi_status.napi_ok */;
|
|
2264
|
+
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 */) {
|
|
2265
|
+
return 9 /* napi_status.napi_generic_failure */;
|
|
1942
2266
|
}
|
|
1943
|
-
|
|
2267
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
2268
|
+
emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
|
|
2269
|
+
});
|
|
2270
|
+
return 0 /* napi_status.napi_ok */;
|
|
1944
2271
|
},
|
|
1945
2272
|
callComplete: function (work, status) {
|
|
2273
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1946
2274
|
var complete = emnapiAWMT.getComplete(work);
|
|
1947
2275
|
var env = emnapiAWMT.getEnv(work);
|
|
1948
2276
|
var data = emnapiAWMT.getData(work);
|
|
@@ -1960,7 +2288,7 @@ function createNapiModule(options) {
|
|
|
1960
2288
|
var resource = emnapiAWMT.getResource(work);
|
|
1961
2289
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
1962
2290
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
1963
|
-
var view = new DataView(
|
|
2291
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.trigger_async_id + 8));
|
|
1964
2292
|
var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
|
|
1965
2293
|
var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
|
|
1966
2294
|
emnapiNodeBinding.node.makeCallback(resourceObject, callback, [], {
|
|
@@ -1977,6 +2305,7 @@ function createNapiModule(options) {
|
|
|
1977
2305
|
}
|
|
1978
2306
|
}
|
|
1979
2307
|
};
|
|
2308
|
+
emnapiAWMT.init();
|
|
1980
2309
|
/** @__sig ippppppp */
|
|
1981
2310
|
var napi_create_async_work = singleThreadAsyncWork
|
|
1982
2311
|
? function (env, resource, resource_name, execute, complete, data, result) {
|
|
@@ -2001,6 +2330,7 @@ function createNapiModule(options) {
|
|
|
2001
2330
|
var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
|
|
2002
2331
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2003
2332
|
var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
|
|
2333
|
+
result >>>= 0;
|
|
2004
2334
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2005
2335
|
HEAP_DATA_VIEW.setUint32(result, id, true);
|
|
2006
2336
|
return envObject.clearLastError();
|
|
@@ -2028,7 +2358,8 @@ function createNapiModule(options) {
|
|
|
2028
2358
|
var aw = _malloc(sizeofAW);
|
|
2029
2359
|
if (!aw)
|
|
2030
2360
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
2031
|
-
|
|
2361
|
+
aw >>>= 0;
|
|
2362
|
+
new Uint8Array(emnapiAWMT.ensureBufferFor(aw + sizeofAW)).subarray(aw, aw + sizeofAW).fill(0);
|
|
2032
2363
|
var s = envObject.ensureHandleId(resourceObject);
|
|
2033
2364
|
var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
2034
2365
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -2040,6 +2371,8 @@ function createNapiModule(options) {
|
|
|
2040
2371
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
|
|
2041
2372
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
|
|
2042
2373
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
|
|
2374
|
+
emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
|
|
2375
|
+
result >>>= 0;
|
|
2043
2376
|
HEAP_DATA_VIEW.setUint32(result, aw, true);
|
|
2044
2377
|
return envObject.clearLastError();
|
|
2045
2378
|
};
|
|
@@ -2053,6 +2386,7 @@ function createNapiModule(options) {
|
|
|
2053
2386
|
envObject.checkGCAccess();
|
|
2054
2387
|
if (!work)
|
|
2055
2388
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2389
|
+
work >>>= 0;
|
|
2056
2390
|
emnapiAWST.remove(work);
|
|
2057
2391
|
return envObject.clearLastError();
|
|
2058
2392
|
}
|
|
@@ -2064,10 +2398,11 @@ function createNapiModule(options) {
|
|
|
2064
2398
|
envObject.checkGCAccess();
|
|
2065
2399
|
if (!work)
|
|
2066
2400
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2401
|
+
work >>>= 0;
|
|
2067
2402
|
var resource = emnapiAWMT.getResource(work);
|
|
2068
2403
|
emnapiCtx.refStore.get(resource).dispose();
|
|
2069
2404
|
if (emnapiNodeBinding) {
|
|
2070
|
-
var view = new DataView(
|
|
2405
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.trigger_async_id + 8));
|
|
2071
2406
|
var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
|
|
2072
2407
|
var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
|
|
2073
2408
|
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
@@ -2083,6 +2418,7 @@ function createNapiModule(options) {
|
|
|
2083
2418
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2084
2419
|
if (!work)
|
|
2085
2420
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2421
|
+
work >>>= 0;
|
|
2086
2422
|
emnapiAWST.queue(work);
|
|
2087
2423
|
return envObject.clearLastError();
|
|
2088
2424
|
}
|
|
@@ -2092,6 +2428,7 @@ function createNapiModule(options) {
|
|
|
2092
2428
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2093
2429
|
if (!work)
|
|
2094
2430
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2431
|
+
work >>>= 0;
|
|
2095
2432
|
emnapiAWMT.scheduleWork(work);
|
|
2096
2433
|
return envObject.clearLastError();
|
|
2097
2434
|
};
|
|
@@ -2103,6 +2440,7 @@ function createNapiModule(options) {
|
|
|
2103
2440
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2104
2441
|
if (!work)
|
|
2105
2442
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2443
|
+
work >>>= 0;
|
|
2106
2444
|
var status = emnapiAWST.cancel(work);
|
|
2107
2445
|
if (status === 0 /* napi_status.napi_ok */)
|
|
2108
2446
|
return envObject.clearLastError();
|
|
@@ -2114,42 +2452,129 @@ function createNapiModule(options) {
|
|
|
2114
2452
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2115
2453
|
if (!work)
|
|
2116
2454
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2455
|
+
work >>>= 0;
|
|
2117
2456
|
var status = emnapiAWMT.cancelWork(work);
|
|
2118
2457
|
if (status === 0 /* napi_status.napi_ok */)
|
|
2119
2458
|
return envObject.clearLastError();
|
|
2120
2459
|
return envObject.setLastError(status);
|
|
2121
2460
|
};
|
|
2122
|
-
|
|
2461
|
+
/** @__sig pp */
|
|
2462
|
+
function _emnapi_async_worker(globalAddress) {
|
|
2463
|
+
globalAddress >>>= 0;
|
|
2464
|
+
emnapiAWMT.globalAddress = globalAddress;
|
|
2465
|
+
var mutex = emnapiAWMT.getMutex();
|
|
2466
|
+
var cond = emnapiAWMT.getCond();
|
|
2467
|
+
mutex.lock();
|
|
2468
|
+
var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
|
|
2469
|
+
var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
|
|
2470
|
+
var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
|
|
2471
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2472
|
+
for (;;) {
|
|
2473
|
+
emnapiAWMT.ensureBufferFor(workerQueueAddr + 4);
|
|
2474
|
+
while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
|
|
2475
|
+
Atomics.add(new Int32Array(emnapiAWMT.ensureBufferFor(idleThreadsAddr + 4), idleThreadsAddr, 1), 0, 1);
|
|
2476
|
+
cond.wait();
|
|
2477
|
+
Atomics.sub(new Int32Array(emnapiAWMT.ensureBufferFor(idleThreadsAddr + 4), idleThreadsAddr, 1), 0, 1);
|
|
2478
|
+
}
|
|
2479
|
+
var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
|
|
2480
|
+
if (q === exitMessageAddr) {
|
|
2481
|
+
cond.signal();
|
|
2482
|
+
mutex.unlock();
|
|
2483
|
+
break;
|
|
2484
|
+
}
|
|
2485
|
+
var work = q - emnapiAWMT.offset.queue;
|
|
2486
|
+
emnapiAWMT.queueRemove(q);
|
|
2487
|
+
emnapiAWMT.queueInit(q);
|
|
2488
|
+
mutex.unlock();
|
|
2489
|
+
var statusBuffer = new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1);
|
|
2490
|
+
if (Atomics.load(statusBuffer, 0) === 1 /* AsyncWorkStatus.Cancelled */) {
|
|
2491
|
+
abort('unreachable');
|
|
2492
|
+
}
|
|
2493
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2494
|
+
var execute = emnapiAWMT.getExecute(work);
|
|
2495
|
+
var env = emnapiAWMT.getEnv(work);
|
|
2496
|
+
var data = emnapiAWMT.getData(work);
|
|
2497
|
+
(wasmTable.get(execute))(env, data);
|
|
2498
|
+
Atomics.store(statusBuffer, 0, 2 /* AsyncWorkStatus.Completed */);
|
|
2499
|
+
var postMessage_1 = napiModule.postMessage;
|
|
2500
|
+
postMessage_1({
|
|
2501
|
+
__emnapi__: {
|
|
2502
|
+
type: 'async-work-complete',
|
|
2503
|
+
payload: { work: work }
|
|
2504
|
+
}
|
|
2505
|
+
});
|
|
2506
|
+
mutex.lock();
|
|
2507
|
+
}
|
|
2508
|
+
return 0;
|
|
2509
|
+
}
|
|
2510
|
+
/** @__sig ipp */
|
|
2511
|
+
function _emnapi_spawn_worker(f, globalAddress) {
|
|
2512
|
+
if (typeof onCreateWorker !== 'function') {
|
|
2513
|
+
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
2514
|
+
}
|
|
2515
|
+
var promises = [];
|
|
2516
|
+
var args = [];
|
|
2517
|
+
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
2518
|
+
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
2519
|
+
}
|
|
2520
|
+
args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
|
|
2521
|
+
var handleError = function (e) {
|
|
2522
|
+
if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
|
|
2523
|
+
emnapiAWMT.terminateWorkers();
|
|
2524
|
+
}
|
|
2525
|
+
};
|
|
2526
|
+
var ret;
|
|
2527
|
+
try {
|
|
2528
|
+
var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
|
|
2529
|
+
var p = PThread.loadWasmModuleToWorker(worker_1);
|
|
2530
|
+
if (ENVIRONMENT_IS_NODE) {
|
|
2531
|
+
worker_1.on('error', handleError);
|
|
2532
|
+
}
|
|
2533
|
+
else {
|
|
2534
|
+
worker_1.addEventListener('error', handleError, false);
|
|
2535
|
+
}
|
|
2536
|
+
emnapiAWMT.addListener(worker_1);
|
|
2537
|
+
emnapiTSFN.addListener(worker_1);
|
|
2538
|
+
promises.push(p.then(function () {
|
|
2539
|
+
if (typeof worker_1.unref === 'function') {
|
|
2540
|
+
worker_1.unref();
|
|
2541
|
+
}
|
|
2542
|
+
}));
|
|
2543
|
+
ret = emnapiAWMT.pool.push(worker_1) - 1;
|
|
2544
|
+
var arg = args[0];
|
|
2545
|
+
worker_1.threadBlockBase = arg;
|
|
2546
|
+
worker_1.postMessage({
|
|
2547
|
+
__emnapi__: {
|
|
2548
|
+
type: 'async-worker-init',
|
|
2549
|
+
payload: { arg: arg, func: [f, globalAddress] }
|
|
2550
|
+
}
|
|
2551
|
+
});
|
|
2552
|
+
}
|
|
2553
|
+
catch (err) {
|
|
2554
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2555
|
+
var arg = args[0];
|
|
2556
|
+
_free(arg);
|
|
2557
|
+
throw err;
|
|
2558
|
+
}
|
|
2559
|
+
return ret;
|
|
2560
|
+
}
|
|
2561
|
+
function initWorker(startArg, func) {
|
|
2123
2562
|
if (napiModule.childThread) {
|
|
2124
2563
|
if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
|
|
2125
2564
|
throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
|
|
2126
2565
|
}
|
|
2127
2566
|
wasmInstance.exports.emnapi_async_worker_init(startArg);
|
|
2567
|
+
(wasmTable.get(func[0]))(func[1]);
|
|
2128
2568
|
}
|
|
2129
2569
|
else {
|
|
2130
2570
|
throw new Error('startThread is only available in child threads');
|
|
2131
2571
|
}
|
|
2132
2572
|
}
|
|
2133
|
-
function executeAsyncWork(work) {
|
|
2134
|
-
if (!ENVIRONMENT_IS_PTHREAD)
|
|
2135
|
-
return;
|
|
2136
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2137
|
-
var execute = emnapiAWMT.getExecute(work);
|
|
2138
|
-
var env = emnapiAWMT.getEnv(work);
|
|
2139
|
-
var data = emnapiAWMT.getData(work);
|
|
2140
|
-
(wasmTable.get(execute))(env, data);
|
|
2141
|
-
var postMessage = napiModule.postMessage;
|
|
2142
|
-
postMessage({
|
|
2143
|
-
__emnapi__: {
|
|
2144
|
-
type: 'async-work-complete',
|
|
2145
|
-
payload: { work: work }
|
|
2146
|
-
}
|
|
2147
|
-
});
|
|
2148
|
-
}
|
|
2149
2573
|
napiModule.initWorker = initWorker;
|
|
2150
|
-
napiModule.executeAsyncWork = executeAsyncWork;
|
|
2151
2574
|
var asyncWorkMod = /*#__PURE__*/ Object.freeze({
|
|
2152
2575
|
__proto__: null,
|
|
2576
|
+
_emnapi_async_worker: _emnapi_async_worker,
|
|
2577
|
+
_emnapi_spawn_worker: _emnapi_spawn_worker,
|
|
2153
2578
|
napi_cancel_async_work: napi_cancel_async_work,
|
|
2154
2579
|
napi_create_async_work: napi_create_async_work,
|
|
2155
2580
|
napi_delete_async_work: napi_delete_async_work,
|
|
@@ -2219,6 +2644,7 @@ function createNapiModule(options) {
|
|
|
2219
2644
|
var pointer = _malloc(arrayBuffer.byteLength);
|
|
2220
2645
|
if (!pointer)
|
|
2221
2646
|
throw new Error('Out of memory');
|
|
2647
|
+
pointer >>>= 0;
|
|
2222
2648
|
new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
|
|
2223
2649
|
info.address = pointer;
|
|
2224
2650
|
info.ownership = emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
|
|
@@ -2240,8 +2666,7 @@ function createNapiModule(options) {
|
|
|
2240
2666
|
}
|
|
2241
2667
|
return view;
|
|
2242
2668
|
}
|
|
2243
|
-
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) ||
|
|
2244
|
-
((typeof SharedArrayBuffer === 'function') && (view.buffer instanceof SharedArrayBuffer));
|
|
2669
|
+
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
|
|
2245
2670
|
if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
2246
2671
|
var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
|
|
2247
2672
|
var Ctor = info.Ctor;
|
|
@@ -2271,6 +2696,75 @@ function createNapiModule(options) {
|
|
|
2271
2696
|
return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
|
|
2272
2697
|
}
|
|
2273
2698
|
};
|
|
2699
|
+
/**
|
|
2700
|
+
* Metadata layout in wasm shared memory (allocated with _malloc):
|
|
2701
|
+
* offset 0: refcount (int32, 4 bytes - for Atomics)
|
|
2702
|
+
* offset POINTER_SIZE: external_data (pointer)
|
|
2703
|
+
* offset 2*POINTER_SIZE: byte_length (size_t)
|
|
2704
|
+
* offset 3*POINTER_SIZE: finalize_cb (pointer)
|
|
2705
|
+
* offset 4*POINTER_SIZE: finalize_data (pointer)
|
|
2706
|
+
* offset 5*POINTER_SIZE: finalize_hint (pointer)
|
|
2707
|
+
* Total: 6 * POINTER_SIZE bytes
|
|
2708
|
+
*/
|
|
2709
|
+
/**
|
|
2710
|
+
* @__postset
|
|
2711
|
+
* ```
|
|
2712
|
+
* emnapiExternalSAB.init();
|
|
2713
|
+
* ```
|
|
2714
|
+
*/
|
|
2715
|
+
var emnapiExternalSAB = {
|
|
2716
|
+
registry: undefined,
|
|
2717
|
+
handleTable: new WeakMap(),
|
|
2718
|
+
init: function () {
|
|
2719
|
+
emnapiExternalSAB.handleTable = new WeakMap();
|
|
2720
|
+
emnapiExternalSAB.registry = typeof FinalizationRegistry === 'function'
|
|
2721
|
+
? new FinalizationRegistry(function (metaPtr) {
|
|
2722
|
+
emnapiExternalSAB.release(metaPtr);
|
|
2723
|
+
})
|
|
2724
|
+
: undefined;
|
|
2725
|
+
},
|
|
2726
|
+
allocMeta: function (external_data, byte_length, finalize_cb, finalize_data, finalize_hint) {
|
|
2727
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2728
|
+
var size = 4 * 6;
|
|
2729
|
+
// eslint-disable-next-line prefer-const
|
|
2730
|
+
var metaPtr = _malloc(size);
|
|
2731
|
+
if (!metaPtr)
|
|
2732
|
+
throw new Error('Out of memory');
|
|
2733
|
+
metaPtr >>>= 0;
|
|
2734
|
+
// refcount = 1
|
|
2735
|
+
Atomics.store(new Int32Array(wasmMemory.buffer, metaPtr, 1), 0, 1);
|
|
2736
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2737
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 4, external_data, true);
|
|
2738
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 8, byte_length, true);
|
|
2739
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 12, finalize_cb, true);
|
|
2740
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 16, finalize_data, true);
|
|
2741
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 20, finalize_hint, true);
|
|
2742
|
+
return metaPtr;
|
|
2743
|
+
},
|
|
2744
|
+
readMeta: function (metaPtr) {
|
|
2745
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2746
|
+
var external_data = HEAP_DATA_VIEW.getUint32(metaPtr + 4, true);
|
|
2747
|
+
var byte_length = HEAP_DATA_VIEW.getUint32(metaPtr + 8, true);
|
|
2748
|
+
var finalize_cb = HEAP_DATA_VIEW.getUint32(metaPtr + 12, true);
|
|
2749
|
+
var finalize_data = HEAP_DATA_VIEW.getUint32(metaPtr + 16, true);
|
|
2750
|
+
var finalize_hint = HEAP_DATA_VIEW.getUint32(metaPtr + 20, true);
|
|
2751
|
+
return { external_data: external_data, byte_length: byte_length, finalize_cb: finalize_cb, finalize_data: finalize_data, finalize_hint: finalize_hint };
|
|
2752
|
+
},
|
|
2753
|
+
release: function (metaPtr) {
|
|
2754
|
+
var oldRefcount = Atomics.sub(new Int32Array(wasmMemory.buffer, metaPtr, 1), 0, 1);
|
|
2755
|
+
if (oldRefcount === 1) {
|
|
2756
|
+
// refcount reached 0, we are the last holder
|
|
2757
|
+
var info = emnapiExternalSAB.readMeta(metaPtr);
|
|
2758
|
+
var finalize_cb = info.finalize_cb;
|
|
2759
|
+
if (finalize_cb) {
|
|
2760
|
+
var finalize_data = info.finalize_data;
|
|
2761
|
+
var finalize_hint = info.finalize_hint;
|
|
2762
|
+
(wasmTable.get(finalize_cb))(finalize_data, finalize_hint);
|
|
2763
|
+
}
|
|
2764
|
+
_free(metaPtr);
|
|
2765
|
+
}
|
|
2766
|
+
}
|
|
2767
|
+
};
|
|
2274
2768
|
/* eslint-disable @typescript-eslint/indent */
|
|
2275
2769
|
/**
|
|
2276
2770
|
* @__postset
|
|
@@ -2381,7 +2875,7 @@ function createNapiModule(options) {
|
|
|
2381
2875
|
ptr >>>= 0;
|
|
2382
2876
|
var HEAPU8 = new Uint8Array(wasmMemory.buffer);
|
|
2383
2877
|
var end = ptr;
|
|
2384
|
-
if (length === -1) {
|
|
2878
|
+
if (length === -1 || length === 4294967295) {
|
|
2385
2879
|
for (; HEAPU8[end];)
|
|
2386
2880
|
++end;
|
|
2387
2881
|
}
|
|
@@ -2472,12 +2966,12 @@ function createNapiModule(options) {
|
|
|
2472
2966
|
return '';
|
|
2473
2967
|
ptr >>>= 0;
|
|
2474
2968
|
var end = ptr;
|
|
2475
|
-
if (length === -1) {
|
|
2476
|
-
var idx = end
|
|
2969
|
+
if (length === -1 || length === 4294967295) {
|
|
2970
|
+
var idx = end >>> 1;
|
|
2477
2971
|
var HEAPU16 = new Uint16Array(wasmMemory.buffer);
|
|
2478
2972
|
while (HEAPU16[idx])
|
|
2479
2973
|
++idx;
|
|
2480
|
-
end = idx << 1;
|
|
2974
|
+
end = (idx << 1) >>> 0;
|
|
2481
2975
|
}
|
|
2482
2976
|
else {
|
|
2483
2977
|
end = ptr + (length >>> 0) * 2;
|
|
@@ -2510,12 +3004,13 @@ function createNapiModule(options) {
|
|
|
2510
3004
|
return outPtr - startPtr;
|
|
2511
3005
|
},
|
|
2512
3006
|
newString: function (env, str, length, result, stringMaker) {
|
|
3007
|
+
length >>>= 0;
|
|
2513
3008
|
if (!env)
|
|
2514
3009
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2515
3010
|
// @ts-expect-error
|
|
2516
3011
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2517
3012
|
envObject.checkGCAccess();
|
|
2518
|
-
var autoLength = length === -1;
|
|
3013
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
2519
3014
|
var sizelength = length >>> 0;
|
|
2520
3015
|
if (length !== 0) {
|
|
2521
3016
|
if (!str)
|
|
@@ -2525,7 +3020,9 @@ function createNapiModule(options) {
|
|
|
2525
3020
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2526
3021
|
if (!(autoLength || (sizelength <= 2147483647)))
|
|
2527
3022
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3023
|
+
str >>>= 0;
|
|
2528
3024
|
var strValue = stringMaker(str, autoLength, sizelength);
|
|
3025
|
+
result >>>= 0;
|
|
2529
3026
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2530
3027
|
var value = emnapiCtx.addToCurrentScope(strValue).id;
|
|
2531
3028
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2533,12 +3030,13 @@ function createNapiModule(options) {
|
|
|
2533
3030
|
return envObject.clearLastError();
|
|
2534
3031
|
},
|
|
2535
3032
|
newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
|
|
3033
|
+
length >>>= 0;
|
|
2536
3034
|
if (!env)
|
|
2537
3035
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2538
3036
|
// @ts-expect-error
|
|
2539
3037
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2540
3038
|
envObject.checkGCAccess();
|
|
2541
|
-
var autoLength = length === -1;
|
|
3039
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
2542
3040
|
var sizelength = length >>> 0;
|
|
2543
3041
|
if (length !== 0) {
|
|
2544
3042
|
if (!str)
|
|
@@ -2584,6 +3082,7 @@ function createNapiModule(options) {
|
|
|
2584
3082
|
if (!handle.isArray()) {
|
|
2585
3083
|
return envObject.setLastError(8 /* napi_status.napi_array_expected */);
|
|
2586
3084
|
}
|
|
3085
|
+
result >>>= 0;
|
|
2587
3086
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2588
3087
|
var v = handle.value.length >>> 0;
|
|
2589
3088
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2612,11 +3111,13 @@ function createNapiModule(options) {
|
|
|
2612
3111
|
}
|
|
2613
3112
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2614
3113
|
if (data) {
|
|
3114
|
+
data >>>= 0;
|
|
2615
3115
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2616
3116
|
var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
|
|
2617
3117
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2618
3118
|
}
|
|
2619
3119
|
if (byte_length) {
|
|
3120
|
+
byte_length >>>= 0;
|
|
2620
3121
|
HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
|
|
2621
3122
|
}
|
|
2622
3123
|
return envObject.clearLastError();
|
|
@@ -2689,6 +3190,7 @@ function createNapiModule(options) {
|
|
|
2689
3190
|
catch (_) {
|
|
2690
3191
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2691
3192
|
}
|
|
3193
|
+
result >>>= 0;
|
|
2692
3194
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2693
3195
|
var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
|
|
2694
3196
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2718,6 +3220,7 @@ function createNapiModule(options) {
|
|
|
2718
3220
|
var v = handle.value;
|
|
2719
3221
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2720
3222
|
if (type) {
|
|
3223
|
+
type >>>= 0;
|
|
2721
3224
|
var t = void 0;
|
|
2722
3225
|
if (v instanceof Int8Array) {
|
|
2723
3226
|
t = 0 /* napi_typedarray_type.napi_int8_array */;
|
|
@@ -2761,24 +3264,27 @@ function createNapiModule(options) {
|
|
|
2761
3264
|
}
|
|
2762
3265
|
HEAP_DATA_VIEW.setInt32(type, t, true);
|
|
2763
3266
|
}
|
|
3267
|
+
v = emnapiExternalMemory.getOrUpdateMemoryView(v);
|
|
2764
3268
|
if (length) {
|
|
3269
|
+
length >>>= 0;
|
|
2765
3270
|
HEAP_DATA_VIEW.setUint32(length, v.length, true);
|
|
2766
3271
|
}
|
|
2767
|
-
var buffer;
|
|
2768
3272
|
if (data || arraybuffer) {
|
|
2769
|
-
buffer = v.buffer;
|
|
2770
3273
|
if (data) {
|
|
3274
|
+
data >>>= 0;
|
|
2771
3275
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2772
3276
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
2773
3277
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2774
3278
|
}
|
|
2775
3279
|
if (arraybuffer) {
|
|
3280
|
+
arraybuffer >>>= 0;
|
|
2776
3281
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2777
|
-
var ab = envObject.ensureHandleId(buffer);
|
|
3282
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
2778
3283
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
2779
3284
|
}
|
|
2780
3285
|
}
|
|
2781
3286
|
if (byte_offset) {
|
|
3287
|
+
byte_offset >>>= 0;
|
|
2782
3288
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
2783
3289
|
}
|
|
2784
3290
|
return envObject.clearLastError();
|
|
@@ -2817,26 +3323,28 @@ function createNapiModule(options) {
|
|
|
2817
3323
|
if (!handle.isDataView()) {
|
|
2818
3324
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2819
3325
|
}
|
|
2820
|
-
var v = handle.value;
|
|
3326
|
+
var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
|
|
2821
3327
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2822
3328
|
if (byte_length) {
|
|
3329
|
+
byte_length >>>= 0;
|
|
2823
3330
|
HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
|
|
2824
3331
|
}
|
|
2825
|
-
var buffer;
|
|
2826
3332
|
if (data || arraybuffer) {
|
|
2827
|
-
buffer = v.buffer;
|
|
2828
3333
|
if (data) {
|
|
3334
|
+
data >>>= 0;
|
|
2829
3335
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2830
3336
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
2831
3337
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2832
3338
|
}
|
|
2833
3339
|
if (arraybuffer) {
|
|
3340
|
+
arraybuffer >>>= 0;
|
|
2834
3341
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2835
|
-
var ab = envObject.ensureHandleId(buffer);
|
|
3342
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
2836
3343
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
2837
3344
|
}
|
|
2838
3345
|
}
|
|
2839
3346
|
if (byte_offset) {
|
|
3347
|
+
byte_offset >>>= 0;
|
|
2840
3348
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
2841
3349
|
}
|
|
2842
3350
|
return envObject.clearLastError();
|
|
@@ -2866,6 +3374,7 @@ function createNapiModule(options) {
|
|
|
2866
3374
|
if (!handle.isDate()) {
|
|
2867
3375
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2868
3376
|
}
|
|
3377
|
+
result >>>= 0;
|
|
2869
3378
|
v = handle.value.valueOf();
|
|
2870
3379
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2871
3380
|
HEAP_DATA_VIEW.setFloat64(result, v, true);
|
|
@@ -2893,6 +3402,7 @@ function createNapiModule(options) {
|
|
|
2893
3402
|
if (typeof handle.value !== 'boolean') {
|
|
2894
3403
|
return envObject.setLastError(7 /* napi_status.napi_boolean_expected */);
|
|
2895
3404
|
}
|
|
3405
|
+
result >>>= 0;
|
|
2896
3406
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2897
3407
|
var r = handle.value ? 1 : 0;
|
|
2898
3408
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2916,6 +3426,7 @@ function createNapiModule(options) {
|
|
|
2916
3426
|
if (typeof handle.value !== 'number') {
|
|
2917
3427
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
2918
3428
|
}
|
|
3429
|
+
result >>>= 0;
|
|
2919
3430
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2920
3431
|
var r = handle.value;
|
|
2921
3432
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2945,6 +3456,8 @@ function createNapiModule(options) {
|
|
|
2945
3456
|
if (typeof numberValue !== 'bigint') {
|
|
2946
3457
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
2947
3458
|
}
|
|
3459
|
+
lossless >>>= 0;
|
|
3460
|
+
result >>>= 0;
|
|
2948
3461
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2949
3462
|
if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
|
|
2950
3463
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -2987,6 +3500,8 @@ function createNapiModule(options) {
|
|
|
2987
3500
|
if (typeof numberValue !== 'bigint') {
|
|
2988
3501
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
2989
3502
|
}
|
|
3503
|
+
lossless >>>= 0;
|
|
3504
|
+
result >>>= 0;
|
|
2990
3505
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2991
3506
|
if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
|
|
2992
3507
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -3024,8 +3539,12 @@ function createNapiModule(options) {
|
|
|
3024
3539
|
return envObject.setLastError(17 /* napi_status.napi_bigint_expected */);
|
|
3025
3540
|
}
|
|
3026
3541
|
var isMinus = handle.value < BigInt(0);
|
|
3542
|
+
sign_bit >>>= 0;
|
|
3543
|
+
words >>>= 0;
|
|
3544
|
+
word_count >>>= 0;
|
|
3027
3545
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3028
3546
|
var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
|
|
3547
|
+
word_count_int >>>= 0;
|
|
3029
3548
|
var wordCount = 0;
|
|
3030
3549
|
var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
3031
3550
|
while (bigintValue !== BigInt(0)) {
|
|
@@ -3079,6 +3598,7 @@ function createNapiModule(options) {
|
|
|
3079
3598
|
if (!handle.isExternal()) {
|
|
3080
3599
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3081
3600
|
}
|
|
3601
|
+
result >>>= 0;
|
|
3082
3602
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3083
3603
|
var p = handle.data();
|
|
3084
3604
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3102,6 +3622,7 @@ function createNapiModule(options) {
|
|
|
3102
3622
|
if (typeof handle.value !== 'number') {
|
|
3103
3623
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3104
3624
|
}
|
|
3625
|
+
result >>>= 0;
|
|
3105
3626
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3106
3627
|
var v = new Int32Array([handle.value])[0];
|
|
3107
3628
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3126,6 +3647,7 @@ function createNapiModule(options) {
|
|
|
3126
3647
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3127
3648
|
}
|
|
3128
3649
|
var numberValue = handle.value;
|
|
3650
|
+
result >>>= 0;
|
|
3129
3651
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3130
3652
|
if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
|
|
3131
3653
|
HEAP_DATA_VIEW.setInt32(result, 0, true);
|
|
@@ -3155,6 +3677,9 @@ function createNapiModule(options) {
|
|
|
3155
3677
|
envObject.checkGCAccess();
|
|
3156
3678
|
if (!value)
|
|
3157
3679
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3680
|
+
result >>>= 0;
|
|
3681
|
+
buf >>>= 0;
|
|
3682
|
+
buf_size >>>= 0;
|
|
3158
3683
|
buf_size = buf_size >>> 0;
|
|
3159
3684
|
var handle = emnapiCtx.handleStore.get(value);
|
|
3160
3685
|
if (typeof handle.value !== 'string') {
|
|
@@ -3197,6 +3722,9 @@ function createNapiModule(options) {
|
|
|
3197
3722
|
envObject.checkGCAccess();
|
|
3198
3723
|
if (!value)
|
|
3199
3724
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3725
|
+
result >>>= 0;
|
|
3726
|
+
buf >>>= 0;
|
|
3727
|
+
buf_size >>>= 0;
|
|
3200
3728
|
buf_size = buf_size >>> 0;
|
|
3201
3729
|
var handle = emnapiCtx.handleStore.get(value);
|
|
3202
3730
|
if (typeof handle.value !== 'string') {
|
|
@@ -3233,6 +3761,9 @@ function createNapiModule(options) {
|
|
|
3233
3761
|
envObject.checkGCAccess();
|
|
3234
3762
|
if (!value)
|
|
3235
3763
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3764
|
+
result >>>= 0;
|
|
3765
|
+
buf >>>= 0;
|
|
3766
|
+
buf_size >>>= 0;
|
|
3236
3767
|
buf_size = buf_size >>> 0;
|
|
3237
3768
|
var handle = emnapiCtx.handleStore.get(value);
|
|
3238
3769
|
if (typeof handle.value !== 'string') {
|
|
@@ -3273,6 +3804,7 @@ function createNapiModule(options) {
|
|
|
3273
3804
|
if (typeof handle.value !== 'number') {
|
|
3274
3805
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3275
3806
|
}
|
|
3807
|
+
result >>>= 0;
|
|
3276
3808
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3277
3809
|
var v = new Uint32Array([handle.value])[0];
|
|
3278
3810
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3313,6 +3845,7 @@ function createNapiModule(options) {
|
|
|
3313
3845
|
envObject.checkGCAccess();
|
|
3314
3846
|
if (!result)
|
|
3315
3847
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3848
|
+
result >>>= 0;
|
|
3316
3849
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3317
3850
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
3318
3851
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3330,6 +3863,7 @@ function createNapiModule(options) {
|
|
|
3330
3863
|
envObject.checkGCAccess();
|
|
3331
3864
|
if (!result)
|
|
3332
3865
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3866
|
+
result >>>= 0;
|
|
3333
3867
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3334
3868
|
var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
|
|
3335
3869
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3351,6 +3885,7 @@ function createNapiModule(options) {
|
|
|
3351
3885
|
value = Number(low);
|
|
3352
3886
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3353
3887
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3888
|
+
high >>>= 0;
|
|
3354
3889
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3355
3890
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3356
3891
|
return envObject.clearLastError();
|
|
@@ -3366,6 +3901,7 @@ function createNapiModule(options) {
|
|
|
3366
3901
|
envObject.checkGCAccess();
|
|
3367
3902
|
if (!result)
|
|
3368
3903
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3904
|
+
result >>>= 0;
|
|
3369
3905
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3370
3906
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
3371
3907
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3466,6 +4002,7 @@ function createNapiModule(options) {
|
|
|
3466
4002
|
value = low;
|
|
3467
4003
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3468
4004
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
4005
|
+
high >>>= 0;
|
|
3469
4006
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3470
4007
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3471
4008
|
return envObject.clearLastError();
|
|
@@ -3488,6 +4025,7 @@ function createNapiModule(options) {
|
|
|
3488
4025
|
value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
3489
4026
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3490
4027
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
4028
|
+
high >>>= 0;
|
|
3491
4029
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3492
4030
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3493
4031
|
return envObject.clearLastError();
|
|
@@ -3514,6 +4052,8 @@ function createNapiModule(options) {
|
|
|
3514
4052
|
}
|
|
3515
4053
|
if (!result)
|
|
3516
4054
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4055
|
+
words >>>= 0;
|
|
4056
|
+
word_count >>>= 0;
|
|
3517
4057
|
word_count = word_count >>> 0;
|
|
3518
4058
|
if (word_count > 2147483647) {
|
|
3519
4059
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
@@ -3530,6 +4070,7 @@ function createNapiModule(options) {
|
|
|
3530
4070
|
value += wordi << BigInt(64 * i);
|
|
3531
4071
|
}
|
|
3532
4072
|
value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
|
|
4073
|
+
result >>>= 0;
|
|
3533
4074
|
v = emnapiCtx.addToCurrentScope(value).id;
|
|
3534
4075
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
3535
4076
|
return envObject.getReturnStatus();
|
|
@@ -3558,6 +4099,7 @@ function createNapiModule(options) {
|
|
|
3558
4099
|
node_api_create_property_key_utf8: node_api_create_property_key_utf8
|
|
3559
4100
|
});
|
|
3560
4101
|
function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
|
|
4102
|
+
utf8name >>>= 0;
|
|
3561
4103
|
var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
|
|
3562
4104
|
var f;
|
|
3563
4105
|
var napiCallback = (wasmTable.get(cb));
|
|
@@ -3700,6 +4242,7 @@ function createNapiModule(options) {
|
|
|
3700
4242
|
if (!finalize_cb)
|
|
3701
4243
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3702
4244
|
reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1 /* ReferenceOwnership.kUserland */, finalize_cb, native_object, finalize_hint);
|
|
4245
|
+
result >>>= 0;
|
|
3703
4246
|
referenceId = reference.id;
|
|
3704
4247
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3705
4248
|
HEAP_DATA_VIEW.setUint32(result, referenceId, true);
|
|
@@ -3750,6 +4293,7 @@ function createNapiModule(options) {
|
|
|
3750
4293
|
if (!ref)
|
|
3751
4294
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3752
4295
|
if (result) {
|
|
4296
|
+
result >>>= 0;
|
|
3753
4297
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3754
4298
|
data = ref.data();
|
|
3755
4299
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3793,12 +4337,15 @@ function createNapiModule(options) {
|
|
|
3793
4337
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3794
4338
|
if (!constructor)
|
|
3795
4339
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4340
|
+
length >>>= 0;
|
|
4341
|
+
properties >>>= 0;
|
|
4342
|
+
property_count >>>= 0;
|
|
3796
4343
|
property_count = property_count >>> 0;
|
|
3797
4344
|
if (property_count > 0) {
|
|
3798
4345
|
if (!properties)
|
|
3799
4346
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3800
4347
|
}
|
|
3801
|
-
if ((length
|
|
4348
|
+
if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
|
|
3802
4349
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3803
4350
|
}
|
|
3804
4351
|
var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
|
|
@@ -3817,6 +4364,7 @@ function createNapiModule(options) {
|
|
|
3817
4364
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
3818
4365
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
3819
4366
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
4367
|
+
attributes >>>= 0;
|
|
3820
4368
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
3821
4369
|
if (utf8Name) {
|
|
3822
4370
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -3839,6 +4387,7 @@ function createNapiModule(options) {
|
|
|
3839
4387
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3840
4388
|
var valueHandle = emnapiCtx.addToCurrentScope(F);
|
|
3841
4389
|
valueHandleId = valueHandle.id;
|
|
4390
|
+
result >>>= 0;
|
|
3842
4391
|
HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
|
|
3843
4392
|
return envObject.getReturnStatus();
|
|
3844
4393
|
}
|
|
@@ -3887,6 +4436,7 @@ function createNapiModule(options) {
|
|
|
3887
4436
|
if (!(value.isObject() || value.isFunction())) {
|
|
3888
4437
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
|
|
3889
4438
|
}
|
|
4439
|
+
type_tag >>>= 0;
|
|
3890
4440
|
if (!type_tag) {
|
|
3891
4441
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
3892
4442
|
}
|
|
@@ -3936,6 +4486,7 @@ function createNapiModule(options) {
|
|
|
3936
4486
|
}
|
|
3937
4487
|
var binding = envObject.getObjectBinding(value.value);
|
|
3938
4488
|
if (binding.tag !== null) {
|
|
4489
|
+
type_tag >>>= 0;
|
|
3939
4490
|
var tag = binding.tag;
|
|
3940
4491
|
var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
|
|
3941
4492
|
ret = (tag[0] === typeTag[0] &&
|
|
@@ -3946,6 +4497,7 @@ function createNapiModule(options) {
|
|
|
3946
4497
|
else {
|
|
3947
4498
|
ret = false;
|
|
3948
4499
|
}
|
|
4500
|
+
result >>>= 0;
|
|
3949
4501
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3950
4502
|
HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
|
|
3951
4503
|
return envObject.getReturnStatus();
|
|
@@ -3977,8 +4529,12 @@ function createNapiModule(options) {
|
|
|
3977
4529
|
}
|
|
3978
4530
|
var handle = handleResult.handle;
|
|
3979
4531
|
var ownership = !result ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
|
|
4532
|
+
finalize_data >>>= 0;
|
|
4533
|
+
finalize_cb >>>= 0;
|
|
4534
|
+
finalize_hint >>>= 0;
|
|
3980
4535
|
var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
|
|
3981
4536
|
if (result) {
|
|
4537
|
+
result >>>= 0;
|
|
3982
4538
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3983
4539
|
var referenceId = reference.id;
|
|
3984
4540
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4026,6 +4582,9 @@ function createNapiModule(options) {
|
|
|
4026
4582
|
try {
|
|
4027
4583
|
if (!result)
|
|
4028
4584
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4585
|
+
byte_length >>>= 0;
|
|
4586
|
+
external_data >>>= 0;
|
|
4587
|
+
result >>>= 0;
|
|
4029
4588
|
byte_length = byte_length >>> 0;
|
|
4030
4589
|
if (!external_data) {
|
|
4031
4590
|
byte_length = 0;
|
|
@@ -4145,7 +4704,7 @@ function createNapiModule(options) {
|
|
|
4145
4704
|
var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
|
|
4146
4705
|
if (!pointer)
|
|
4147
4706
|
throw new Error('Unknown ArrayBuffer address');
|
|
4148
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4707
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
4149
4708
|
len = arrayBufferOrView.byteLength - offset;
|
|
4150
4709
|
}
|
|
4151
4710
|
len = len >>> 0;
|
|
@@ -4167,7 +4726,7 @@ function createNapiModule(options) {
|
|
|
4167
4726
|
var pointer = viewPointerInfo.address;
|
|
4168
4727
|
if (!pointer)
|
|
4169
4728
|
throw new Error('Unknown ArrayBuffer address');
|
|
4170
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4729
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
4171
4730
|
len = latestView.byteLength - offset;
|
|
4172
4731
|
}
|
|
4173
4732
|
len = len >>> 0;
|
|
@@ -4204,6 +4763,9 @@ function createNapiModule(options) {
|
|
|
4204
4763
|
try {
|
|
4205
4764
|
if (!arraybuffer_or_view)
|
|
4206
4765
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4766
|
+
arraybuffer_or_view >>>= 0;
|
|
4767
|
+
offset >>>= 0;
|
|
4768
|
+
len >>>= 0;
|
|
4207
4769
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4208
4770
|
var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
|
|
4209
4771
|
var handle = envObject.ctx.handleStore.get(handleId);
|
|
@@ -4212,6 +4774,7 @@ function createNapiModule(options) {
|
|
|
4212
4774
|
}
|
|
4213
4775
|
var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
|
|
4214
4776
|
if (handle.value !== ret) {
|
|
4777
|
+
arraybuffer_or_view >>>= 0;
|
|
4215
4778
|
v = envObject.ensureHandleId(ret);
|
|
4216
4779
|
HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
|
|
4217
4780
|
}
|
|
@@ -4270,13 +4833,16 @@ function createNapiModule(options) {
|
|
|
4270
4833
|
p = info.address;
|
|
4271
4834
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4272
4835
|
if (address) {
|
|
4836
|
+
address >>>= 0;
|
|
4273
4837
|
HEAP_DATA_VIEW.setUint32(address, p, true);
|
|
4274
4838
|
}
|
|
4275
4839
|
if (ownership) {
|
|
4840
|
+
ownership >>>= 0;
|
|
4276
4841
|
ownershipOut = info.ownership;
|
|
4277
4842
|
HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
|
|
4278
4843
|
}
|
|
4279
4844
|
if (runtime_allocated) {
|
|
4845
|
+
runtime_allocated >>>= 0;
|
|
4280
4846
|
runtimeAllocated = info.runtimeAllocated;
|
|
4281
4847
|
HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
|
|
4282
4848
|
}
|
|
@@ -4306,22 +4872,129 @@ function createNapiModule(options) {
|
|
|
4306
4872
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4307
4873
|
var versions = runtimeVersion.split('.')
|
|
4308
4874
|
.map(function (n) { return Number(n); });
|
|
4875
|
+
version >>>= 0;
|
|
4309
4876
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4310
4877
|
HEAP_DATA_VIEW.setUint32(version, versions[0], true);
|
|
4311
4878
|
HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
|
|
4312
4879
|
HEAP_DATA_VIEW.setUint32(version + 8, versions[2], true);
|
|
4313
4880
|
return envObject.clearLastError();
|
|
4314
4881
|
}
|
|
4882
|
+
/**
|
|
4883
|
+
* Get the handle for an external SharedArrayBuffer.
|
|
4884
|
+
* Must be called on the emnapi main thread.
|
|
4885
|
+
* @__sig ippp
|
|
4886
|
+
*/
|
|
4887
|
+
function emnapi_get_external_sharedarraybuffer_handle(env, sharedarraybuffer, handle) {
|
|
4888
|
+
if (!env)
|
|
4889
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4890
|
+
// @ts-expect-error
|
|
4891
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4892
|
+
envObject.checkGCAccess();
|
|
4893
|
+
if (!envObject.tryCatch.isEmpty())
|
|
4894
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4895
|
+
if (!envObject.canCallIntoJs())
|
|
4896
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
4897
|
+
envObject.clearLastError();
|
|
4898
|
+
try {
|
|
4899
|
+
if (!sharedarraybuffer)
|
|
4900
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4901
|
+
if (!handle)
|
|
4902
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4903
|
+
handle >>>= 0;
|
|
4904
|
+
var jsValue = emnapiCtx.handleStore.get(sharedarraybuffer).value;
|
|
4905
|
+
if (!emnapiExternalMemory.isSharedArrayBuffer(jsValue)) {
|
|
4906
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4907
|
+
}
|
|
4908
|
+
var metaPtr = emnapiExternalSAB.handleTable.get(jsValue);
|
|
4909
|
+
if (metaPtr === undefined) {
|
|
4910
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4911
|
+
}
|
|
4912
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4913
|
+
HEAP_DATA_VIEW.setUint32(handle, metaPtr, true);
|
|
4914
|
+
return envObject.getReturnStatus();
|
|
4915
|
+
}
|
|
4916
|
+
catch (err) {
|
|
4917
|
+
envObject.tryCatch.setError(err);
|
|
4918
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4919
|
+
}
|
|
4920
|
+
}
|
|
4921
|
+
/**
|
|
4922
|
+
* Acquire a reference to an external SharedArrayBuffer.
|
|
4923
|
+
* Can be called on any thread.
|
|
4924
|
+
* @__sig vp
|
|
4925
|
+
*/
|
|
4926
|
+
function emnapi_acquire_external_sharedarraybuffer(handle) {
|
|
4927
|
+
handle >>>= 0;
|
|
4928
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, handle, 1), 0, 1);
|
|
4929
|
+
}
|
|
4930
|
+
/**
|
|
4931
|
+
* Release a reference to an external SharedArrayBuffer.
|
|
4932
|
+
* Can be called on any thread.
|
|
4933
|
+
* @__sig vp
|
|
4934
|
+
*/
|
|
4935
|
+
function emnapi_release_external_sharedarraybuffer(handle) {
|
|
4936
|
+
handle >>>= 0;
|
|
4937
|
+
emnapiExternalSAB.release(handle);
|
|
4938
|
+
}
|
|
4939
|
+
/**
|
|
4940
|
+
* Acquire a reference to an external SharedArrayBuffer on the current thread.
|
|
4941
|
+
* Can be called on any thread. Increments refcount and registers in
|
|
4942
|
+
* the current thread's FinalizationRegistry.
|
|
4943
|
+
* Exposed as Module.emnapiAcquireExternalSharedArrayBuffer (emscripten) or
|
|
4944
|
+
* napiModule.emnapi.acquireExternalSharedArrayBuffer (core).
|
|
4945
|
+
*/
|
|
4946
|
+
function $emnapiAcquireExternalSharedArrayBuffer(handle, sab) {
|
|
4947
|
+
if (sab != null && !emnapiExternalMemory.isSharedArrayBuffer(sab)) {
|
|
4948
|
+
throw new TypeError('Expected a SharedArrayBuffer');
|
|
4949
|
+
}
|
|
4950
|
+
if (!emnapiExternalSAB.registry) {
|
|
4951
|
+
throw new Error('FinalizationRegistry is not supported in this environment');
|
|
4952
|
+
}
|
|
4953
|
+
handle >>>= 0;
|
|
4954
|
+
var meta = emnapiExternalSAB.readMeta(handle);
|
|
4955
|
+
// eslint-disable-next-line prefer-const
|
|
4956
|
+
var external_data = meta.external_data;
|
|
4957
|
+
external_data >>>= 0;
|
|
4958
|
+
if (sab == null) {
|
|
4959
|
+
sab = new SharedArrayBuffer(meta.byte_length);
|
|
4960
|
+
new Uint8Array(sab).set(new Uint8Array(wasmMemory.buffer, external_data, meta.byte_length));
|
|
4961
|
+
}
|
|
4962
|
+
else {
|
|
4963
|
+
if (emnapiExternalSAB.handleTable.has(sab)) {
|
|
4964
|
+
return sab;
|
|
4965
|
+
}
|
|
4966
|
+
}
|
|
4967
|
+
// Increment refcount atomically
|
|
4968
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, handle, 1), 0, 1);
|
|
4969
|
+
// Register in emnapiExternalMemory.table for emnapi_sync_memory support
|
|
4970
|
+
if (!emnapiExternalMemory.table.has(sab)) {
|
|
4971
|
+
if (external_data) {
|
|
4972
|
+
emnapiExternalMemory.table.set(sab, {
|
|
4973
|
+
address: external_data,
|
|
4974
|
+
ownership: 1 /* ReferenceOwnership.kUserland */,
|
|
4975
|
+
runtimeAllocated: 0
|
|
4976
|
+
});
|
|
4977
|
+
}
|
|
4978
|
+
}
|
|
4979
|
+
// Register in handleTable and FinalizationRegistry for this thread
|
|
4980
|
+
emnapiExternalSAB.handleTable.set(sab, handle);
|
|
4981
|
+
emnapiExternalSAB.registry.register(sab, handle);
|
|
4982
|
+
return sab;
|
|
4983
|
+
}
|
|
4315
4984
|
var emnapiMod = /*#__PURE__*/ Object.freeze({
|
|
4316
4985
|
__proto__: null,
|
|
4986
|
+
$emnapiAcquireExternalSharedArrayBuffer: $emnapiAcquireExternalSharedArrayBuffer,
|
|
4317
4987
|
$emnapiGetMemoryAddress: $emnapiGetMemoryAddress,
|
|
4318
4988
|
$emnapiSyncMemory: $emnapiSyncMemory,
|
|
4989
|
+
emnapi_acquire_external_sharedarraybuffer: emnapi_acquire_external_sharedarraybuffer,
|
|
4319
4990
|
emnapi_create_memory_view: emnapi_create_memory_view,
|
|
4991
|
+
emnapi_get_external_sharedarraybuffer_handle: emnapi_get_external_sharedarraybuffer_handle,
|
|
4320
4992
|
emnapi_get_memory_address: emnapi_get_memory_address,
|
|
4321
4993
|
emnapi_get_runtime_version: emnapi_get_runtime_version,
|
|
4322
4994
|
emnapi_is_node_binding_available: emnapi_is_node_binding_available,
|
|
4323
4995
|
emnapi_is_support_bigint: emnapi_is_support_bigint,
|
|
4324
4996
|
emnapi_is_support_weakref: emnapi_is_support_weakref,
|
|
4997
|
+
emnapi_release_external_sharedarraybuffer: emnapi_release_external_sharedarraybuffer,
|
|
4325
4998
|
emnapi_sync_memory: emnapi_sync_memory
|
|
4326
4999
|
});
|
|
4327
5000
|
/**
|
|
@@ -4335,6 +5008,7 @@ function createNapiModule(options) {
|
|
|
4335
5008
|
envObject.checkGCAccess();
|
|
4336
5009
|
if (!result)
|
|
4337
5010
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5011
|
+
result >>>= 0;
|
|
4338
5012
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4339
5013
|
var value = emnapiCtx.addToCurrentScope([]).id;
|
|
4340
5014
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4352,6 +5026,8 @@ function createNapiModule(options) {
|
|
|
4352
5026
|
envObject.checkGCAccess();
|
|
4353
5027
|
if (!result)
|
|
4354
5028
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5029
|
+
length >>>= 0;
|
|
5030
|
+
result >>>= 0;
|
|
4355
5031
|
length = length >>> 0;
|
|
4356
5032
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4357
5033
|
var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
|
|
@@ -4360,9 +5036,11 @@ function createNapiModule(options) {
|
|
|
4360
5036
|
return envObject.clearLastError();
|
|
4361
5037
|
}
|
|
4362
5038
|
function emnapiCreateArrayBuffer(byte_length, data, shared) {
|
|
5039
|
+
byte_length >>>= 0;
|
|
4363
5040
|
byte_length = byte_length >>> 0;
|
|
4364
5041
|
var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
|
|
4365
5042
|
if (data) {
|
|
5043
|
+
data >>>= 0;
|
|
4366
5044
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4367
5045
|
var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
|
|
4368
5046
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4389,6 +5067,7 @@ function createNapiModule(options) {
|
|
|
4389
5067
|
try {
|
|
4390
5068
|
if (!result)
|
|
4391
5069
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5070
|
+
result >>>= 0;
|
|
4392
5071
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
|
|
4393
5072
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
4394
5073
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4419,6 +5098,7 @@ function createNapiModule(options) {
|
|
|
4419
5098
|
try {
|
|
4420
5099
|
if (!result)
|
|
4421
5100
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5101
|
+
result >>>= 0;
|
|
4422
5102
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
|
|
4423
5103
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
4424
5104
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4449,6 +5129,7 @@ function createNapiModule(options) {
|
|
|
4449
5129
|
try {
|
|
4450
5130
|
if (!result)
|
|
4451
5131
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5132
|
+
result >>>= 0;
|
|
4452
5133
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4453
5134
|
value = emnapiCtx.addToCurrentScope(new Date(time)).id;
|
|
4454
5135
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4486,6 +5167,7 @@ function createNapiModule(options) {
|
|
|
4486
5167
|
if (finalize_cb) {
|
|
4487
5168
|
emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0 /* ReferenceOwnership.kRuntime */, finalize_cb, data, finalize_hint);
|
|
4488
5169
|
}
|
|
5170
|
+
result >>>= 0;
|
|
4489
5171
|
value = externalHandle.id;
|
|
4490
5172
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4491
5173
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4515,6 +5197,9 @@ function createNapiModule(options) {
|
|
|
4515
5197
|
try {
|
|
4516
5198
|
if (!result)
|
|
4517
5199
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5200
|
+
byte_length >>>= 0;
|
|
5201
|
+
external_data >>>= 0;
|
|
5202
|
+
result >>>= 0;
|
|
4518
5203
|
byte_length = byte_length >>> 0;
|
|
4519
5204
|
if (!external_data) {
|
|
4520
5205
|
byte_length = 0;
|
|
@@ -4565,6 +5250,65 @@ function createNapiModule(options) {
|
|
|
4565
5250
|
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4566
5251
|
}
|
|
4567
5252
|
}
|
|
5253
|
+
/**
|
|
5254
|
+
* @__sig ipppppp
|
|
5255
|
+
*/
|
|
5256
|
+
function node_api_create_external_sharedarraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result) {
|
|
5257
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5258
|
+
var value;
|
|
5259
|
+
if (!env)
|
|
5260
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
5261
|
+
// @ts-expect-error
|
|
5262
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
5263
|
+
envObject.checkGCAccess();
|
|
5264
|
+
if (!envObject.tryCatch.isEmpty())
|
|
5265
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
5266
|
+
if (!envObject.canCallIntoJs())
|
|
5267
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
5268
|
+
envObject.clearLastError();
|
|
5269
|
+
try {
|
|
5270
|
+
if (!result)
|
|
5271
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5272
|
+
byte_length >>>= 0;
|
|
5273
|
+
external_data >>>= 0;
|
|
5274
|
+
result >>>= 0;
|
|
5275
|
+
byte_length = byte_length >>> 0;
|
|
5276
|
+
if (!external_data) {
|
|
5277
|
+
byte_length = 0;
|
|
5278
|
+
}
|
|
5279
|
+
if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
|
|
5280
|
+
throw new RangeError('Memory out of range');
|
|
5281
|
+
}
|
|
5282
|
+
if (!emnapiExternalSAB.registry && finalize_cb) {
|
|
5283
|
+
throw emnapiCtx.createNotSupportWeakRefError('node_api_create_external_sharedarraybuffer', 'Parameter "finalize_cb" must be 0(NULL)');
|
|
5284
|
+
}
|
|
5285
|
+
var sharedArrayBuffer = new SharedArrayBuffer(byte_length);
|
|
5286
|
+
if (byte_length !== 0) {
|
|
5287
|
+
var u8arr = new Uint8Array(sharedArrayBuffer);
|
|
5288
|
+
u8arr.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
|
|
5289
|
+
emnapiExternalMemory.table.set(sharedArrayBuffer, {
|
|
5290
|
+
address: external_data,
|
|
5291
|
+
ownership: 1 /* ReferenceOwnership.kUserland */,
|
|
5292
|
+
runtimeAllocated: 0
|
|
5293
|
+
});
|
|
5294
|
+
}
|
|
5295
|
+
value = emnapiCtx.addToCurrentScope(sharedArrayBuffer).id;
|
|
5296
|
+
if (finalize_cb) {
|
|
5297
|
+
finalize_cb >>>= 0;
|
|
5298
|
+
finalize_hint >>>= 0;
|
|
5299
|
+
var metaPtr = emnapiExternalSAB.allocMeta(external_data, byte_length, finalize_cb, external_data, finalize_hint);
|
|
5300
|
+
emnapiExternalSAB.handleTable.set(sharedArrayBuffer, metaPtr);
|
|
5301
|
+
emnapiExternalSAB.registry.register(sharedArrayBuffer, metaPtr);
|
|
5302
|
+
}
|
|
5303
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5304
|
+
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5305
|
+
return envObject.getReturnStatus();
|
|
5306
|
+
}
|
|
5307
|
+
catch (err) {
|
|
5308
|
+
envObject.tryCatch.setError(err);
|
|
5309
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
5310
|
+
}
|
|
5311
|
+
}
|
|
4568
5312
|
/**
|
|
4569
5313
|
* @__sig ipp
|
|
4570
5314
|
*/
|
|
@@ -4576,6 +5320,7 @@ function createNapiModule(options) {
|
|
|
4576
5320
|
envObject.checkGCAccess();
|
|
4577
5321
|
if (!result)
|
|
4578
5322
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5323
|
+
result >>>= 0;
|
|
4579
5324
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4580
5325
|
var value = emnapiCtx.addToCurrentScope({}).id;
|
|
4581
5326
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4585,7 +5330,7 @@ function createNapiModule(options) {
|
|
|
4585
5330
|
/**
|
|
4586
5331
|
* @__sig ipppppp
|
|
4587
5332
|
*/
|
|
4588
|
-
function
|
|
5333
|
+
function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
|
|
4589
5334
|
if (!env)
|
|
4590
5335
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
4591
5336
|
// @ts-expect-error
|
|
@@ -4593,6 +5338,7 @@ function createNapiModule(options) {
|
|
|
4593
5338
|
envObject.checkGCAccess();
|
|
4594
5339
|
if (!result)
|
|
4595
5340
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5341
|
+
property_count >>>= 0;
|
|
4596
5342
|
property_count = property_count >>> 0;
|
|
4597
5343
|
if (property_count > 0) {
|
|
4598
5344
|
if (!property_names)
|
|
@@ -4604,6 +5350,8 @@ function createNapiModule(options) {
|
|
|
4604
5350
|
? emnapiCtx.handleStore.get(prototype_or_null).value
|
|
4605
5351
|
: null;
|
|
4606
5352
|
var properties = {};
|
|
5353
|
+
property_names >>>= 0;
|
|
5354
|
+
property_values >>>= 0;
|
|
4607
5355
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4608
5356
|
for (var i = 0; i < property_count; i++) {
|
|
4609
5357
|
var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
|
|
@@ -4625,6 +5373,7 @@ function createNapiModule(options) {
|
|
|
4625
5373
|
}
|
|
4626
5374
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4627
5375
|
var value = emnapiCtx.addToCurrentScope(obj).id;
|
|
5376
|
+
result >>>= 0;
|
|
4628
5377
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4629
5378
|
return envObject.clearLastError();
|
|
4630
5379
|
}
|
|
@@ -4639,6 +5388,7 @@ function createNapiModule(options) {
|
|
|
4639
5388
|
envObject.checkGCAccess();
|
|
4640
5389
|
if (!result)
|
|
4641
5390
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5391
|
+
result >>>= 0;
|
|
4642
5392
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4643
5393
|
if (!description) {
|
|
4644
5394
|
// eslint-disable-next-line symbol-description, @typescript-eslint/no-unused-vars
|
|
@@ -4679,10 +5429,9 @@ function createNapiModule(options) {
|
|
|
4679
5429
|
if (!result)
|
|
4680
5430
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4681
5431
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
4682
|
-
if (!handle.isArrayBuffer()) {
|
|
4683
|
-
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4684
|
-
}
|
|
4685
5432
|
var buffer = handle.value;
|
|
5433
|
+
byte_offset >>>= 0;
|
|
5434
|
+
length >>>= 0;
|
|
4686
5435
|
var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
|
|
4687
5436
|
var _a;
|
|
4688
5437
|
byte_offset = byte_offset >>> 0;
|
|
@@ -4713,42 +5462,48 @@ function createNapiModule(options) {
|
|
|
4713
5462
|
});
|
|
4714
5463
|
}
|
|
4715
5464
|
}
|
|
5465
|
+
result >>>= 0;
|
|
4716
5466
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4717
5467
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4718
5468
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4719
5469
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4720
5470
|
return envObject.getReturnStatus();
|
|
4721
5471
|
};
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4738
|
-
|
|
4739
|
-
|
|
4740
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
4744
|
-
|
|
4745
|
-
|
|
4746
|
-
|
|
5472
|
+
if (buffer instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(buffer)) {
|
|
5473
|
+
switch (type) {
|
|
5474
|
+
case 0 /* napi_typedarray_type.napi_int8_array */:
|
|
5475
|
+
return createTypedArray(envObject, Int8Array, 1, buffer, byte_offset, length);
|
|
5476
|
+
case 1 /* napi_typedarray_type.napi_uint8_array */:
|
|
5477
|
+
return createTypedArray(envObject, Uint8Array, 1, buffer, byte_offset, length);
|
|
5478
|
+
case 2 /* napi_typedarray_type.napi_uint8_clamped_array */:
|
|
5479
|
+
return createTypedArray(envObject, Uint8ClampedArray, 1, buffer, byte_offset, length);
|
|
5480
|
+
case 3 /* napi_typedarray_type.napi_int16_array */:
|
|
5481
|
+
return createTypedArray(envObject, Int16Array, 2, buffer, byte_offset, length);
|
|
5482
|
+
case 4 /* napi_typedarray_type.napi_uint16_array */:
|
|
5483
|
+
return createTypedArray(envObject, Uint16Array, 2, buffer, byte_offset, length);
|
|
5484
|
+
case 5 /* napi_typedarray_type.napi_int32_array */:
|
|
5485
|
+
return createTypedArray(envObject, Int32Array, 4, buffer, byte_offset, length);
|
|
5486
|
+
case 6 /* napi_typedarray_type.napi_uint32_array */:
|
|
5487
|
+
return createTypedArray(envObject, Uint32Array, 4, buffer, byte_offset, length);
|
|
5488
|
+
case 7 /* napi_typedarray_type.napi_float32_array */:
|
|
5489
|
+
return createTypedArray(envObject, Float32Array, 4, buffer, byte_offset, length);
|
|
5490
|
+
case 8 /* napi_typedarray_type.napi_float64_array */:
|
|
5491
|
+
return createTypedArray(envObject, Float64Array, 8, buffer, byte_offset, length);
|
|
5492
|
+
case 9 /* napi_typedarray_type.napi_bigint64_array */:
|
|
5493
|
+
return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
|
|
5494
|
+
case 10 /* napi_typedarray_type.napi_biguint64_array */:
|
|
5495
|
+
return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
|
|
5496
|
+
case 11 /* napi_typedarray_type.napi_float16_array */:
|
|
5497
|
+
if (typeof Float16Array !== 'function') {
|
|
5498
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5499
|
+
}
|
|
5500
|
+
return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
|
|
5501
|
+
default:
|
|
4747
5502
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4748
|
-
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
|
|
5503
|
+
}
|
|
5504
|
+
}
|
|
5505
|
+
else {
|
|
5506
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4752
5507
|
}
|
|
4753
5508
|
}
|
|
4754
5509
|
catch (err) {
|
|
@@ -4781,7 +5536,9 @@ function createNapiModule(options) {
|
|
|
4781
5536
|
if (!Buffer) {
|
|
4782
5537
|
throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
|
|
4783
5538
|
}
|
|
5539
|
+
result >>>= 0;
|
|
4784
5540
|
var buffer = void 0;
|
|
5541
|
+
size >>>= 0;
|
|
4785
5542
|
size = size >>> 0;
|
|
4786
5543
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4787
5544
|
if (!data || (size === 0)) {
|
|
@@ -4793,6 +5550,7 @@ function createNapiModule(options) {
|
|
|
4793
5550
|
pointer = _malloc(size);
|
|
4794
5551
|
if (!pointer)
|
|
4795
5552
|
throw new Error('Out of memory');
|
|
5553
|
+
pointer >>>= 0;
|
|
4796
5554
|
new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
|
|
4797
5555
|
var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
|
|
4798
5556
|
var viewDescriptor = {
|
|
@@ -4806,6 +5564,7 @@ function createNapiModule(options) {
|
|
|
4806
5564
|
(_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
|
|
4807
5565
|
value = emnapiCtx.addToCurrentScope(buffer_1).id;
|
|
4808
5566
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5567
|
+
data >>>= 0;
|
|
4809
5568
|
HEAP_DATA_VIEW.setUint32(data, pointer, true);
|
|
4810
5569
|
}
|
|
4811
5570
|
return envObject.getReturnStatus();
|
|
@@ -4840,8 +5599,11 @@ function createNapiModule(options) {
|
|
|
4840
5599
|
}
|
|
4841
5600
|
var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
|
|
4842
5601
|
var buffer = Buffer.from(arrayBuffer);
|
|
5602
|
+
data >>>= 0;
|
|
5603
|
+
length >>>= 0;
|
|
4843
5604
|
buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
|
|
4844
5605
|
value = emnapiCtx.addToCurrentScope(buffer).id;
|
|
5606
|
+
result >>>= 0;
|
|
4845
5607
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4846
5608
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4847
5609
|
return envObject.getReturnStatus();
|
|
@@ -4878,6 +5640,8 @@ function createNapiModule(options) {
|
|
|
4878
5640
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4879
5641
|
if (!result)
|
|
4880
5642
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5643
|
+
byte_offset >>>= 0;
|
|
5644
|
+
byte_length >>>= 0;
|
|
4881
5645
|
byte_offset = byte_offset >>> 0;
|
|
4882
5646
|
byte_length = byte_length >>> 0;
|
|
4883
5647
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
@@ -4906,6 +5670,7 @@ function createNapiModule(options) {
|
|
|
4906
5670
|
});
|
|
4907
5671
|
}
|
|
4908
5672
|
}
|
|
5673
|
+
result >>>= 0;
|
|
4909
5674
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4910
5675
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4911
5676
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4936,6 +5701,8 @@ function createNapiModule(options) {
|
|
|
4936
5701
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4937
5702
|
if (!result)
|
|
4938
5703
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5704
|
+
byte_length >>>= 0;
|
|
5705
|
+
byte_offset >>>= 0;
|
|
4939
5706
|
byte_length = byte_length >>> 0;
|
|
4940
5707
|
byte_offset = byte_offset >>> 0;
|
|
4941
5708
|
var value = emnapiCtx.handleStore.get(arraybuffer).value;
|
|
@@ -4957,6 +5724,7 @@ function createNapiModule(options) {
|
|
|
4957
5724
|
});
|
|
4958
5725
|
}
|
|
4959
5726
|
}
|
|
5727
|
+
result >>>= 0;
|
|
4960
5728
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4961
5729
|
var v = emnapiCtx.addToCurrentScope(dataview).id;
|
|
4962
5730
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4986,7 +5754,10 @@ function createNapiModule(options) {
|
|
|
4986
5754
|
envObject.checkGCAccess();
|
|
4987
5755
|
if (!result)
|
|
4988
5756
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4989
|
-
|
|
5757
|
+
length >>>= 0;
|
|
5758
|
+
utf8description >>>= 0;
|
|
5759
|
+
result >>>= 0;
|
|
5760
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
4990
5761
|
var sizelength = length >>> 0;
|
|
4991
5762
|
if (length !== 0) {
|
|
4992
5763
|
if (!utf8description)
|
|
@@ -5015,10 +5786,11 @@ function createNapiModule(options) {
|
|
|
5015
5786
|
napi_create_external_arraybuffer: napi_create_external_arraybuffer,
|
|
5016
5787
|
napi_create_external_buffer: napi_create_external_buffer,
|
|
5017
5788
|
napi_create_object: napi_create_object,
|
|
5018
|
-
napi_create_object_with_properties: napi_create_object_with_properties,
|
|
5019
5789
|
napi_create_symbol: napi_create_symbol,
|
|
5020
5790
|
napi_create_typedarray: napi_create_typedarray,
|
|
5021
5791
|
node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
|
|
5792
|
+
node_api_create_external_sharedarraybuffer: node_api_create_external_sharedarraybuffer,
|
|
5793
|
+
node_api_create_object_with_properties: node_api_create_object_with_properties,
|
|
5022
5794
|
node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
|
|
5023
5795
|
node_api_symbol_for: node_api_symbol_for
|
|
5024
5796
|
});
|
|
@@ -5031,6 +5803,7 @@ function createNapiModule(options) {
|
|
|
5031
5803
|
envObject.checkGCAccess();
|
|
5032
5804
|
if (!result)
|
|
5033
5805
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5806
|
+
result >>>= 0;
|
|
5034
5807
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5035
5808
|
var v = value === 0 ? 3 /* GlobalHandle.FALSE */ : 4 /* GlobalHandle.TRUE */;
|
|
5036
5809
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5046,6 +5819,7 @@ function createNapiModule(options) {
|
|
|
5046
5819
|
envObject.checkGCAccess();
|
|
5047
5820
|
if (!result)
|
|
5048
5821
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5822
|
+
result >>>= 0;
|
|
5049
5823
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5050
5824
|
var value = 5 /* GlobalHandle.GLOBAL */;
|
|
5051
5825
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5061,6 +5835,7 @@ function createNapiModule(options) {
|
|
|
5061
5835
|
envObject.checkGCAccess();
|
|
5062
5836
|
if (!result)
|
|
5063
5837
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5838
|
+
result >>>= 0;
|
|
5064
5839
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5065
5840
|
var value = 2 /* GlobalHandle.NULL */;
|
|
5066
5841
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5076,6 +5851,7 @@ function createNapiModule(options) {
|
|
|
5076
5851
|
envObject.checkGCAccess();
|
|
5077
5852
|
if (!result)
|
|
5078
5853
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5854
|
+
result >>>= 0;
|
|
5079
5855
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5080
5856
|
var value = 1 /* GlobalHandle.UNDEFINED */;
|
|
5081
5857
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5094,6 +5870,9 @@ function createNapiModule(options) {
|
|
|
5094
5870
|
if (!env)
|
|
5095
5871
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
5096
5872
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5873
|
+
data >>>= 0;
|
|
5874
|
+
finalize_cb >>>= 0;
|
|
5875
|
+
finalize_hint >>>= 0;
|
|
5097
5876
|
envObject.setInstanceData(data, finalize_cb, finalize_hint);
|
|
5098
5877
|
return envObject.clearLastError();
|
|
5099
5878
|
}
|
|
@@ -5104,6 +5883,7 @@ function createNapiModule(options) {
|
|
|
5104
5883
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5105
5884
|
if (!data)
|
|
5106
5885
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5886
|
+
data >>>= 0;
|
|
5107
5887
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5108
5888
|
var value = envObject.getInstanceData();
|
|
5109
5889
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5117,6 +5897,9 @@ function createNapiModule(options) {
|
|
|
5117
5897
|
});
|
|
5118
5898
|
/** @__sig vpppp */
|
|
5119
5899
|
function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
|
|
5900
|
+
error_code >>>= 0;
|
|
5901
|
+
engine_error_code >>>= 0;
|
|
5902
|
+
engine_reserved >>>= 0;
|
|
5120
5903
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5121
5904
|
var lastError = envObject.lastError;
|
|
5122
5905
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -5125,6 +5908,7 @@ function createNapiModule(options) {
|
|
|
5125
5908
|
var engineErrorCode = lastError.engineErrorCode >>> 0;
|
|
5126
5909
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5127
5910
|
var engineReserved = lastError.engineReserved;
|
|
5911
|
+
engineReserved >>>= 0;
|
|
5128
5912
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5129
5913
|
HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
|
|
5130
5914
|
HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
|
|
@@ -5168,6 +5952,8 @@ function createNapiModule(options) {
|
|
|
5168
5952
|
try {
|
|
5169
5953
|
if (!msg)
|
|
5170
5954
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5955
|
+
code >>>= 0;
|
|
5956
|
+
msg >>>= 0;
|
|
5171
5957
|
var error = new Error(emnapiString.UTF8ToString(msg, -1));
|
|
5172
5958
|
if (code)
|
|
5173
5959
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -5194,6 +5980,8 @@ function createNapiModule(options) {
|
|
|
5194
5980
|
try {
|
|
5195
5981
|
if (!msg)
|
|
5196
5982
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5983
|
+
code >>>= 0;
|
|
5984
|
+
msg >>>= 0;
|
|
5197
5985
|
var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
|
|
5198
5986
|
if (code)
|
|
5199
5987
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -5220,6 +6008,8 @@ function createNapiModule(options) {
|
|
|
5220
6008
|
try {
|
|
5221
6009
|
if (!msg)
|
|
5222
6010
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6011
|
+
code >>>= 0;
|
|
6012
|
+
msg >>>= 0;
|
|
5223
6013
|
var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
|
|
5224
6014
|
if (code)
|
|
5225
6015
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -5246,6 +6036,8 @@ function createNapiModule(options) {
|
|
|
5246
6036
|
try {
|
|
5247
6037
|
if (!msg)
|
|
5248
6038
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6039
|
+
code >>>= 0;
|
|
6040
|
+
msg >>>= 0;
|
|
5249
6041
|
var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
|
|
5250
6042
|
if (code)
|
|
5251
6043
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -5268,6 +6060,7 @@ function createNapiModule(options) {
|
|
|
5268
6060
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5269
6061
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5270
6062
|
var r = envObject.tryCatch.hasCaught();
|
|
6063
|
+
result >>>= 0;
|
|
5271
6064
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5272
6065
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
5273
6066
|
return envObject.clearLastError();
|
|
@@ -5295,6 +6088,7 @@ function createNapiModule(options) {
|
|
|
5295
6088
|
}
|
|
5296
6089
|
error.code = codeValue;
|
|
5297
6090
|
}
|
|
6091
|
+
result >>>= 0;
|
|
5298
6092
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5299
6093
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
5300
6094
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5324,6 +6118,7 @@ function createNapiModule(options) {
|
|
|
5324
6118
|
}
|
|
5325
6119
|
error.code = codeValue;
|
|
5326
6120
|
}
|
|
6121
|
+
result >>>= 0;
|
|
5327
6122
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5328
6123
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
5329
6124
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5353,6 +6148,7 @@ function createNapiModule(options) {
|
|
|
5353
6148
|
}
|
|
5354
6149
|
error.code = codeValue;
|
|
5355
6150
|
}
|
|
6151
|
+
result >>>= 0;
|
|
5356
6152
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5357
6153
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
5358
6154
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5382,6 +6178,7 @@ function createNapiModule(options) {
|
|
|
5382
6178
|
}
|
|
5383
6179
|
error.code = codeValue;
|
|
5384
6180
|
}
|
|
6181
|
+
result >>>= 0;
|
|
5385
6182
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5386
6183
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
5387
6184
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5397,6 +6194,7 @@ function createNapiModule(options) {
|
|
|
5397
6194
|
envObject.checkGCAccess();
|
|
5398
6195
|
if (!result)
|
|
5399
6196
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6197
|
+
result >>>= 0;
|
|
5400
6198
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5401
6199
|
if (!envObject.tryCatch.hasCaught()) {
|
|
5402
6200
|
HEAP_DATA_VIEW.setUint32(result, 1, true); // ID_UNDEFINED
|
|
@@ -5413,6 +6211,10 @@ function createNapiModule(options) {
|
|
|
5413
6211
|
}
|
|
5414
6212
|
/** @__sig vpppp */
|
|
5415
6213
|
function napi_fatal_error(location, location_len, message, message_len) {
|
|
6214
|
+
location >>>= 0;
|
|
6215
|
+
location_len >>>= 0;
|
|
6216
|
+
message >>>= 0;
|
|
6217
|
+
message_len >>>= 0;
|
|
5416
6218
|
var locationStr = emnapiString.UTF8ToString(location, location_len);
|
|
5417
6219
|
var messageStr = emnapiString.UTF8ToString(message, message_len);
|
|
5418
6220
|
if (emnapiNodeBinding) {
|
|
@@ -5469,9 +6271,23 @@ function createNapiModule(options) {
|
|
|
5469
6271
|
node_api_throw_syntax_error: node_api_throw_syntax_error
|
|
5470
6272
|
});
|
|
5471
6273
|
/** @__sig ipppppp */
|
|
5472
|
-
function
|
|
6274
|
+
function _emnapi_create_function(env, utf8name, length, cb, data, result) {
|
|
6275
|
+
length >>>= 0;
|
|
6276
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
6277
|
+
var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
|
|
6278
|
+
if (fresult.status !== 0 /* napi_status.napi_ok */)
|
|
6279
|
+
return envObject.setLastError(fresult.status);
|
|
6280
|
+
var f = fresult.f;
|
|
6281
|
+
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
6282
|
+
result >>>= 0;
|
|
5473
6283
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5474
|
-
var value;
|
|
6284
|
+
var value = valueHandle.id;
|
|
6285
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6286
|
+
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
6287
|
+
return envObject.getReturnStatus();
|
|
6288
|
+
}
|
|
6289
|
+
/** @__sig ipppppp */
|
|
6290
|
+
function napi_create_function(env, utf8name, length, cb, data, result) {
|
|
5475
6291
|
if (!env)
|
|
5476
6292
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
5477
6293
|
// @ts-expect-error
|
|
@@ -5487,15 +6303,7 @@ function createNapiModule(options) {
|
|
|
5487
6303
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5488
6304
|
if (!cb)
|
|
5489
6305
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5490
|
-
|
|
5491
|
-
if (fresult.status !== 0 /* napi_status.napi_ok */)
|
|
5492
|
-
return envObject.setLastError(fresult.status);
|
|
5493
|
-
var f = fresult.f;
|
|
5494
|
-
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
5495
|
-
value = valueHandle.id;
|
|
5496
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5497
|
-
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5498
|
-
return envObject.getReturnStatus();
|
|
6306
|
+
return _emnapi_create_function(env, utf8name, length, cb, data, result);
|
|
5499
6307
|
}
|
|
5500
6308
|
catch (err) {
|
|
5501
6309
|
envObject.tryCatch.setError(err);
|
|
@@ -5510,11 +6318,14 @@ function createNapiModule(options) {
|
|
|
5510
6318
|
if (!cbinfo)
|
|
5511
6319
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5512
6320
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
6321
|
+
argc >>>= 0;
|
|
6322
|
+
argv >>>= 0;
|
|
5513
6323
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5514
6324
|
if (argv) {
|
|
5515
6325
|
if (!argc)
|
|
5516
6326
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5517
6327
|
var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
|
|
6328
|
+
argcValue >>>= 0;
|
|
5518
6329
|
var len = cbinfoValue.args.length;
|
|
5519
6330
|
var arrlen = argcValue < len ? argcValue : len;
|
|
5520
6331
|
var i = 0;
|
|
@@ -5533,11 +6344,13 @@ function createNapiModule(options) {
|
|
|
5533
6344
|
HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
|
|
5534
6345
|
}
|
|
5535
6346
|
if (this_arg) {
|
|
6347
|
+
this_arg >>>= 0;
|
|
5536
6348
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5537
6349
|
var v = envObject.ensureHandleId(cbinfoValue.thiz);
|
|
5538
6350
|
HEAP_DATA_VIEW.setUint32(this_arg, v, true);
|
|
5539
6351
|
}
|
|
5540
6352
|
if (data) {
|
|
6353
|
+
data >>>= 0;
|
|
5541
6354
|
HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
|
|
5542
6355
|
}
|
|
5543
6356
|
return envObject.clearLastError();
|
|
@@ -5560,6 +6373,9 @@ function createNapiModule(options) {
|
|
|
5560
6373
|
try {
|
|
5561
6374
|
if (!recv)
|
|
5562
6375
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6376
|
+
argc >>>= 0;
|
|
6377
|
+
argv >>>= 0;
|
|
6378
|
+
result >>>= 0;
|
|
5563
6379
|
argc = argc >>> 0;
|
|
5564
6380
|
if (argc > 0) {
|
|
5565
6381
|
if (!argv)
|
|
@@ -5607,6 +6423,9 @@ function createNapiModule(options) {
|
|
|
5607
6423
|
try {
|
|
5608
6424
|
if (!constructor)
|
|
5609
6425
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6426
|
+
argc >>>= 0;
|
|
6427
|
+
argv >>>= 0;
|
|
6428
|
+
result >>>= 0;
|
|
5610
6429
|
argc = argc >>> 0;
|
|
5611
6430
|
if (argc > 0) {
|
|
5612
6431
|
if (!argv)
|
|
@@ -5659,8 +6478,10 @@ function createNapiModule(options) {
|
|
|
5659
6478
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5660
6479
|
if (!result)
|
|
5661
6480
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6481
|
+
result >>>= 0;
|
|
5662
6482
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
5663
6483
|
var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
|
|
6484
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unused-vars
|
|
5664
6485
|
var value = thiz == null || thiz.constructor == null
|
|
5665
6486
|
? 0
|
|
5666
6487
|
: thiz instanceof fn
|
|
@@ -5672,6 +6493,7 @@ function createNapiModule(options) {
|
|
|
5672
6493
|
}
|
|
5673
6494
|
var functionMod = /*#__PURE__*/ Object.freeze({
|
|
5674
6495
|
__proto__: null,
|
|
6496
|
+
_emnapi_create_function: _emnapi_create_function,
|
|
5675
6497
|
napi_call_function: napi_call_function,
|
|
5676
6498
|
napi_create_function: napi_create_function,
|
|
5677
6499
|
napi_get_cb_info: napi_get_cb_info,
|
|
@@ -5689,6 +6511,7 @@ function createNapiModule(options) {
|
|
|
5689
6511
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5690
6512
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5691
6513
|
var scope = emnapiCtx.openScope(envObject);
|
|
6514
|
+
result >>>= 0;
|
|
5692
6515
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5693
6516
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
5694
6517
|
return envObject.clearLastError();
|
|
@@ -5719,6 +6542,7 @@ function createNapiModule(options) {
|
|
|
5719
6542
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5720
6543
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5721
6544
|
var scope = emnapiCtx.openScope(envObject);
|
|
6545
|
+
result >>>= 0;
|
|
5722
6546
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5723
6547
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
5724
6548
|
return envObject.clearLastError();
|
|
@@ -5753,6 +6577,8 @@ function createNapiModule(options) {
|
|
|
5753
6577
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5754
6578
|
var scopeObject = emnapiCtx.scopeStore.get(scope);
|
|
5755
6579
|
if (!scopeObject.escapeCalled()) {
|
|
6580
|
+
escapee >>>= 0;
|
|
6581
|
+
result >>>= 0;
|
|
5756
6582
|
var newHandle = scopeObject.escape(escapee);
|
|
5757
6583
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5758
6584
|
var value = newHandle ? newHandle.id : 0;
|
|
@@ -5781,6 +6607,7 @@ function createNapiModule(options) {
|
|
|
5781
6607
|
}
|
|
5782
6608
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5783
6609
|
var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1 /* ReferenceOwnership.kUserland */);
|
|
6610
|
+
result >>>= 0;
|
|
5784
6611
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5785
6612
|
HEAP_DATA_VIEW.setUint32(result, ref.id, true);
|
|
5786
6613
|
return envObject.clearLastError();
|
|
@@ -5807,6 +6634,7 @@ function createNapiModule(options) {
|
|
|
5807
6634
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5808
6635
|
var count = emnapiCtx.refStore.get(ref).ref();
|
|
5809
6636
|
if (result) {
|
|
6637
|
+
result >>>= 0;
|
|
5810
6638
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5811
6639
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
5812
6640
|
}
|
|
@@ -5829,6 +6657,7 @@ function createNapiModule(options) {
|
|
|
5829
6657
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5830
6658
|
var count = reference.unref();
|
|
5831
6659
|
if (result) {
|
|
6660
|
+
result >>>= 0;
|
|
5832
6661
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5833
6662
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
5834
6663
|
}
|
|
@@ -5848,6 +6677,7 @@ function createNapiModule(options) {
|
|
|
5848
6677
|
var reference = emnapiCtx.refStore.get(ref);
|
|
5849
6678
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5850
6679
|
var handleId = reference.get(envObject);
|
|
6680
|
+
result >>>= 0;
|
|
5851
6681
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5852
6682
|
HEAP_DATA_VIEW.setUint32(result, handleId, true);
|
|
5853
6683
|
return envObject.clearLastError();
|
|
@@ -5859,6 +6689,8 @@ function createNapiModule(options) {
|
|
|
5859
6689
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5860
6690
|
if (!fun)
|
|
5861
6691
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6692
|
+
fun >>>= 0;
|
|
6693
|
+
arg >>>= 0;
|
|
5862
6694
|
emnapiCtx.addCleanupHook(envObject, fun, arg);
|
|
5863
6695
|
return 0 /* napi_status.napi_ok */;
|
|
5864
6696
|
}
|
|
@@ -5869,6 +6701,8 @@ function createNapiModule(options) {
|
|
|
5869
6701
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5870
6702
|
if (!fun)
|
|
5871
6703
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6704
|
+
fun >>>= 0;
|
|
6705
|
+
arg >>>= 0;
|
|
5872
6706
|
emnapiCtx.removeCleanupHook(envObject, fun, arg);
|
|
5873
6707
|
return 0 /* napi_status.napi_ok */;
|
|
5874
6708
|
}
|
|
@@ -5935,8 +6769,10 @@ function createNapiModule(options) {
|
|
|
5935
6769
|
var p = new Promise(function (resolve, reject) {
|
|
5936
6770
|
var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
|
|
5937
6771
|
deferredObjectId = deferredObject.id;
|
|
6772
|
+
deferred >>>= 0;
|
|
5938
6773
|
HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
|
|
5939
6774
|
});
|
|
6775
|
+
promise >>>= 0;
|
|
5940
6776
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5941
6777
|
value = emnapiCtx.addToCurrentScope(p).id;
|
|
5942
6778
|
HEAP_DATA_VIEW.setUint32(promise, value, true);
|
|
@@ -6011,6 +6847,7 @@ function createNapiModule(options) {
|
|
|
6011
6847
|
if (!is_promise)
|
|
6012
6848
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6013
6849
|
var h = emnapiCtx.handleStore.get(value);
|
|
6850
|
+
is_promise >>>= 0;
|
|
6014
6851
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6015
6852
|
var r = h.isPromise() ? 1 : 0;
|
|
6016
6853
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6158,6 +6995,7 @@ function createNapiModule(options) {
|
|
|
6158
6995
|
}
|
|
6159
6996
|
}
|
|
6160
6997
|
}
|
|
6998
|
+
result >>>= 0;
|
|
6161
6999
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6162
7000
|
value = emnapiCtx.addToCurrentScope(ret).id;
|
|
6163
7001
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6236,6 +7074,7 @@ function createNapiModule(options) {
|
|
|
6236
7074
|
catch (_) {
|
|
6237
7075
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6238
7076
|
}
|
|
7077
|
+
result >>>= 0;
|
|
6239
7078
|
r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
|
|
6240
7079
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6241
7080
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6278,6 +7117,7 @@ function createNapiModule(options) {
|
|
|
6278
7117
|
catch (_) {
|
|
6279
7118
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6280
7119
|
}
|
|
7120
|
+
result >>>= 0;
|
|
6281
7121
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6282
7122
|
value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
|
|
6283
7123
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6325,6 +7165,7 @@ function createNapiModule(options) {
|
|
|
6325
7165
|
}
|
|
6326
7166
|
}
|
|
6327
7167
|
if (result) {
|
|
7168
|
+
result >>>= 0;
|
|
6328
7169
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6329
7170
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
6330
7171
|
}
|
|
@@ -6372,6 +7213,7 @@ function createNapiModule(options) {
|
|
|
6372
7213
|
return envObject.setLastError(4 /* napi_status.napi_name_expected */);
|
|
6373
7214
|
}
|
|
6374
7215
|
r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
|
|
7216
|
+
result >>>= 0;
|
|
6375
7217
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6376
7218
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
6377
7219
|
return envObject.getReturnStatus();
|
|
@@ -6405,6 +7247,7 @@ function createNapiModule(options) {
|
|
|
6405
7247
|
if (!cname) {
|
|
6406
7248
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6407
7249
|
}
|
|
7250
|
+
cname >>>= 0;
|
|
6408
7251
|
emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
|
|
6409
7252
|
return envObject.getReturnStatus();
|
|
6410
7253
|
}
|
|
@@ -6446,6 +7289,8 @@ function createNapiModule(options) {
|
|
|
6446
7289
|
catch (_) {
|
|
6447
7290
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6448
7291
|
}
|
|
7292
|
+
utf8name >>>= 0;
|
|
7293
|
+
result >>>= 0;
|
|
6449
7294
|
r = emnapiString.UTF8ToString(utf8name, -1) in v;
|
|
6450
7295
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6451
7296
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
@@ -6489,6 +7334,8 @@ function createNapiModule(options) {
|
|
|
6489
7334
|
catch (_) {
|
|
6490
7335
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6491
7336
|
}
|
|
7337
|
+
utf8name >>>= 0;
|
|
7338
|
+
result >>>= 0;
|
|
6492
7339
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6493
7340
|
value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
|
|
6494
7341
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6559,6 +7406,7 @@ function createNapiModule(options) {
|
|
|
6559
7406
|
catch (_) {
|
|
6560
7407
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6561
7408
|
}
|
|
7409
|
+
result >>>= 0;
|
|
6562
7410
|
r = ((index >>> 0) in v) ? 1 : 0;
|
|
6563
7411
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6564
7412
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6599,6 +7447,7 @@ function createNapiModule(options) {
|
|
|
6599
7447
|
catch (_) {
|
|
6600
7448
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6601
7449
|
}
|
|
7450
|
+
result >>>= 0;
|
|
6602
7451
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6603
7452
|
value = envObject.ensureHandleId(v[index >>> 0]);
|
|
6604
7453
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6643,6 +7492,7 @@ function createNapiModule(options) {
|
|
|
6643
7492
|
}
|
|
6644
7493
|
}
|
|
6645
7494
|
if (result) {
|
|
7495
|
+
result >>>= 0;
|
|
6646
7496
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6647
7497
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
6648
7498
|
}
|
|
@@ -6668,6 +7518,8 @@ function createNapiModule(options) {
|
|
|
6668
7518
|
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
6669
7519
|
envObject.clearLastError();
|
|
6670
7520
|
try {
|
|
7521
|
+
properties >>>= 0;
|
|
7522
|
+
property_count >>>= 0;
|
|
6671
7523
|
property_count = property_count >>> 0;
|
|
6672
7524
|
if (property_count > 0) {
|
|
6673
7525
|
if (!properties)
|
|
@@ -6692,6 +7544,7 @@ function createNapiModule(options) {
|
|
|
6692
7544
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
6693
7545
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
6694
7546
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
7547
|
+
attributes >>>= 0;
|
|
6695
7548
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
6696
7549
|
if (utf8Name) {
|
|
6697
7550
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -6816,6 +7669,7 @@ function createNapiModule(options) {
|
|
|
6816
7669
|
}
|
|
6817
7670
|
var g = emnapiCtx.handleStore.get(5 /* GlobalHandle.GLOBAL */).value;
|
|
6818
7671
|
var ret = g.eval(v8Script.value);
|
|
7672
|
+
result >>>= 0;
|
|
6819
7673
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6820
7674
|
value = envObject.ensureHandleId(ret);
|
|
6821
7675
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6844,6 +7698,7 @@ function createNapiModule(options) {
|
|
|
6844
7698
|
if (!result)
|
|
6845
7699
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6846
7700
|
var v = emnapiCtx.handleStore.get(value);
|
|
7701
|
+
result >>>= 0;
|
|
6847
7702
|
var r;
|
|
6848
7703
|
if (v.isNumber()) {
|
|
6849
7704
|
r = 3 /* napi_valuetype.napi_number */;
|
|
@@ -6908,6 +7763,7 @@ function createNapiModule(options) {
|
|
|
6908
7763
|
if (!result)
|
|
6909
7764
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6910
7765
|
var handle = emnapiCtx.handleStore.get(value);
|
|
7766
|
+
result >>>= 0;
|
|
6911
7767
|
v = handle.value ? 4 /* GlobalHandle.TRUE */ : 3 /* GlobalHandle.FALSE */;
|
|
6912
7768
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6913
7769
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6941,6 +7797,7 @@ function createNapiModule(options) {
|
|
|
6941
7797
|
if (handle.isBigInt()) {
|
|
6942
7798
|
throw new TypeError('Cannot convert a BigInt value to a number');
|
|
6943
7799
|
}
|
|
7800
|
+
result >>>= 0;
|
|
6944
7801
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6945
7802
|
v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
|
|
6946
7803
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6975,6 +7832,7 @@ function createNapiModule(options) {
|
|
|
6975
7832
|
if (handle.value == null) {
|
|
6976
7833
|
throw new TypeError('Cannot convert undefined or null to object');
|
|
6977
7834
|
}
|
|
7835
|
+
result >>>= 0;
|
|
6978
7836
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6979
7837
|
v = envObject.ensureHandleId(Object(handle.value));
|
|
6980
7838
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7009,6 +7867,7 @@ function createNapiModule(options) {
|
|
|
7009
7867
|
if (handle.isSymbol()) {
|
|
7010
7868
|
throw new TypeError('Cannot convert a Symbol value to a string');
|
|
7011
7869
|
}
|
|
7870
|
+
result >>>= 0;
|
|
7012
7871
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7013
7872
|
v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
|
|
7014
7873
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7041,6 +7900,7 @@ function createNapiModule(options) {
|
|
|
7041
7900
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7042
7901
|
if (!constructor)
|
|
7043
7902
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7903
|
+
result >>>= 0;
|
|
7044
7904
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7045
7905
|
HEAP_DATA_VIEW.setInt8(result, 0, true);
|
|
7046
7906
|
var ctor = emnapiCtx.handleStore.get(constructor);
|
|
@@ -7070,6 +7930,7 @@ function createNapiModule(options) {
|
|
|
7070
7930
|
if (!result)
|
|
7071
7931
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7072
7932
|
var h = emnapiCtx.handleStore.get(value);
|
|
7933
|
+
result >>>= 0;
|
|
7073
7934
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7074
7935
|
var r = h.isArray() ? 1 : 0;
|
|
7075
7936
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7088,6 +7949,7 @@ function createNapiModule(options) {
|
|
|
7088
7949
|
if (!result)
|
|
7089
7950
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7090
7951
|
var h = emnapiCtx.handleStore.get(value);
|
|
7952
|
+
result >>>= 0;
|
|
7091
7953
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7092
7954
|
var r = h.isArrayBuffer() ? 1 : 0;
|
|
7093
7955
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7106,6 +7968,7 @@ function createNapiModule(options) {
|
|
|
7106
7968
|
if (!result)
|
|
7107
7969
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7108
7970
|
var h = emnapiCtx.handleStore.get(value);
|
|
7971
|
+
result >>>= 0;
|
|
7109
7972
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7110
7973
|
var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
|
|
7111
7974
|
(Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
|
|
@@ -7127,6 +7990,7 @@ function createNapiModule(options) {
|
|
|
7127
7990
|
if (!result)
|
|
7128
7991
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7129
7992
|
var h = emnapiCtx.handleStore.get(value);
|
|
7993
|
+
result >>>= 0;
|
|
7130
7994
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7131
7995
|
var r = h.isDate() ? 1 : 0;
|
|
7132
7996
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7145,6 +8009,7 @@ function createNapiModule(options) {
|
|
|
7145
8009
|
if (!result)
|
|
7146
8010
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7147
8011
|
var val = emnapiCtx.handleStore.get(value).value;
|
|
8012
|
+
result >>>= 0;
|
|
7148
8013
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7149
8014
|
var r = (val instanceof Error) ? 1 : 0;
|
|
7150
8015
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7163,6 +8028,7 @@ function createNapiModule(options) {
|
|
|
7163
8028
|
if (!result)
|
|
7164
8029
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7165
8030
|
var h = emnapiCtx.handleStore.get(value);
|
|
8031
|
+
result >>>= 0;
|
|
7166
8032
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7167
8033
|
var r = h.isTypedArray() ? 1 : 0;
|
|
7168
8034
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7181,6 +8047,7 @@ function createNapiModule(options) {
|
|
|
7181
8047
|
if (!result)
|
|
7182
8048
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7183
8049
|
var h = emnapiCtx.handleStore.get(value);
|
|
8050
|
+
result >>>= 0;
|
|
7184
8051
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7185
8052
|
var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
|
|
7186
8053
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7199,6 +8066,7 @@ function createNapiModule(options) {
|
|
|
7199
8066
|
if (!result)
|
|
7200
8067
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7201
8068
|
var h = emnapiCtx.handleStore.get(value);
|
|
8069
|
+
result >>>= 0;
|
|
7202
8070
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7203
8071
|
var r = h.isDataView() ? 1 : 0;
|
|
7204
8072
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7228,6 +8096,7 @@ function createNapiModule(options) {
|
|
|
7228
8096
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7229
8097
|
var lv = emnapiCtx.handleStore.get(lhs).value;
|
|
7230
8098
|
var rv = emnapiCtx.handleStore.get(rhs).value;
|
|
8099
|
+
result >>>= 0;
|
|
7231
8100
|
r = (lv === rv) ? 1 : 0;
|
|
7232
8101
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7233
8102
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -7282,6 +8151,7 @@ function createNapiModule(options) {
|
|
|
7282
8151
|
if (!result)
|
|
7283
8152
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7284
8153
|
var h = emnapiCtx.handleStore.get(arraybuffer);
|
|
8154
|
+
result >>>= 0;
|
|
7285
8155
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7286
8156
|
if (h.isArrayBuffer() && h.value.byteLength === 0) {
|
|
7287
8157
|
try {
|
|
@@ -7340,11 +8210,13 @@ function createNapiModule(options) {
|
|
|
7340
8210
|
});
|
|
7341
8211
|
emnapiAWST.init();
|
|
7342
8212
|
emnapiExternalMemory.init();
|
|
8213
|
+
emnapiExternalSAB.init();
|
|
7343
8214
|
emnapiString.init();
|
|
7344
8215
|
emnapiTSFN.init();
|
|
7345
8216
|
PThread.init();
|
|
7346
8217
|
napiModule.emnapi.syncMemory = $emnapiSyncMemory;
|
|
7347
8218
|
napiModule.emnapi.getMemoryAddress = $emnapiGetMemoryAddress;
|
|
8219
|
+
napiModule.emnapi.acquireExternalSharedArrayBuffer = $emnapiAcquireExternalSharedArrayBuffer;
|
|
7348
8220
|
function addImports(mod) {
|
|
7349
8221
|
var keys = Object.keys(mod);
|
|
7350
8222
|
for (var i = 0; i < keys.length; ++i) {
|
|
@@ -7613,12 +8485,7 @@ var MessageHandler = /*#__PURE__*/ (function (_super) {
|
|
|
7613
8485
|
try {
|
|
7614
8486
|
if (type === 'async-worker-init') {
|
|
7615
8487
|
this.handleAfterLoad(e, function () {
|
|
7616
|
-
_this.napiModule.initWorker(payload_1.arg);
|
|
7617
|
-
});
|
|
7618
|
-
}
|
|
7619
|
-
else if (type === 'async-work-execute') {
|
|
7620
|
-
this.handleAfterLoad(e, function () {
|
|
7621
|
-
_this.napiModule.executeAsyncWork(payload_1.work);
|
|
8488
|
+
_this.napiModule.initWorker(payload_1.arg, payload_1.func);
|
|
7622
8489
|
});
|
|
7623
8490
|
}
|
|
7624
8491
|
}
|
|
@@ -7644,6 +8511,6 @@ var MessageHandler = /*#__PURE__*/ (function (_super) {
|
|
|
7644
8511
|
// }
|
|
7645
8512
|
// }
|
|
7646
8513
|
|
|
7647
|
-
var version = "1.
|
|
8514
|
+
var version = "1.11.1";
|
|
7648
8515
|
|
|
7649
8516
|
export { MessageHandler, createNapiModule, instantiateNapiModule, instantiateNapiModuleSync, loadNapiModule, loadNapiModuleSync, version };
|