@tailwindcss/oxide-wasm32-wasi 4.2.3 → 4.3.0
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 +854 -307
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts +3 -2
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.d.mts +3 -2
- package/node_modules/@emnapi/core/dist/emnapi-core.d.ts +3 -2
- package/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js +892 -313
- package/node_modules/@emnapi/core/dist/emnapi-core.js +904 -328
- package/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts +3 -2
- 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 +854 -307
- 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 +17 -20
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.d.ts +2 -0
- 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 -0
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.ts +2 -0
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js +17 -20
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.js +17 -20
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.d.mts +2 -0
- 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 +17 -20
- 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/package.json +5 -5
- 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 +4 -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) {
|
|
@@ -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,29 +1004,59 @@ 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
1062
|
PThread.runningWorkers.forEach(emnapiTSFN.addListener);
|
|
@@ -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(wasmMemory.buffer), pendng >>> 2) !== 0) {
|
|
1085
|
+
emnapiTSFN.enqueue(payload.tsfn);
|
|
1086
|
+
}
|
|
1037
1087
|
}
|
|
1038
1088
|
}
|
|
1039
1089
|
};
|
|
@@ -1060,6 +1110,7 @@ function createNapiModule(options) {
|
|
|
1060
1110
|
var queue = _malloc(size);
|
|
1061
1111
|
if (!queue)
|
|
1062
1112
|
return false;
|
|
1113
|
+
queue >>>= 0;
|
|
1063
1114
|
new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
|
|
1064
1115
|
emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
|
|
1065
1116
|
return true;
|
|
@@ -1067,6 +1118,12 @@ function createNapiModule(options) {
|
|
|
1067
1118
|
destroyQueue: function (func) {
|
|
1068
1119
|
var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
|
|
1069
1120
|
if (queue) {
|
|
1121
|
+
var node = emnapiTSFN.loadSizeTypeValue(queue, false);
|
|
1122
|
+
while (node !== 0) {
|
|
1123
|
+
var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
|
|
1124
|
+
_free(node);
|
|
1125
|
+
node = next;
|
|
1126
|
+
}
|
|
1070
1127
|
_free(queue);
|
|
1071
1128
|
}
|
|
1072
1129
|
},
|
|
@@ -1079,6 +1136,7 @@ function createNapiModule(options) {
|
|
|
1079
1136
|
var node = _malloc(size);
|
|
1080
1137
|
if (!node)
|
|
1081
1138
|
throw new Error('OOM');
|
|
1139
|
+
node >>>= 0;
|
|
1082
1140
|
emnapiTSFN.storeSizeTypeValue(node, data, false);
|
|
1083
1141
|
emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
|
|
1084
1142
|
if (head === 0 && tail === 0) {
|
|
@@ -1114,11 +1172,11 @@ function createNapiModule(options) {
|
|
|
1114
1172
|
var waitCondition = function () {
|
|
1115
1173
|
var queueSize = emnapiTSFN.getQueueSize(func);
|
|
1116
1174
|
var maxSize = emnapiTSFN.getMaxQueueSize(func);
|
|
1117
|
-
|
|
1118
|
-
return queueSize >= maxSize && maxSize > 0 && !isClosing;
|
|
1175
|
+
return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0 /* State.kOpen */;
|
|
1119
1176
|
};
|
|
1120
1177
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
1121
|
-
|
|
1178
|
+
var shouldDelete = false;
|
|
1179
|
+
var ret = mutex.execute(function () {
|
|
1122
1180
|
while (waitCondition()) {
|
|
1123
1181
|
if (mode === 0 /* napi_threadsafe_function_call_mode.napi_tsfn_nonblocking */) {
|
|
1124
1182
|
return 15 /* napi_status.napi_queue_full */;
|
|
@@ -1135,21 +1193,25 @@ function createNapiModule(options) {
|
|
|
1135
1193
|
}
|
|
1136
1194
|
cond.wait();
|
|
1137
1195
|
}
|
|
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 {
|
|
1196
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
1148
1197
|
emnapiTSFN.pushQueue(func, data);
|
|
1149
1198
|
emnapiTSFN.send(func);
|
|
1150
1199
|
return 0 /* napi_status.napi_ok */;
|
|
1151
1200
|
}
|
|
1201
|
+
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1202
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1203
|
+
}
|
|
1204
|
+
emnapiTSFN.subThreadCount(func);
|
|
1205
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
1206
|
+
return 16 /* napi_status.napi_closing */;
|
|
1207
|
+
}
|
|
1208
|
+
shouldDelete = true;
|
|
1209
|
+
return 16 /* napi_status.napi_closing */;
|
|
1152
1210
|
});
|
|
1211
|
+
if (shouldDelete) {
|
|
1212
|
+
emnapiTSFN.destroy(func);
|
|
1213
|
+
}
|
|
1214
|
+
return ret;
|
|
1153
1215
|
},
|
|
1154
1216
|
getMutex: function (func) {
|
|
1155
1217
|
var index = func + emnapiTSFN.offset.mutex;
|
|
@@ -1159,7 +1221,7 @@ function createNapiModule(options) {
|
|
|
1159
1221
|
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
1160
1222
|
if (isBrowserMain) {
|
|
1161
1223
|
while (true) {
|
|
1162
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1224
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1163
1225
|
if (oldValue === 0) {
|
|
1164
1226
|
return;
|
|
1165
1227
|
}
|
|
@@ -1167,11 +1229,11 @@ function createNapiModule(options) {
|
|
|
1167
1229
|
}
|
|
1168
1230
|
else {
|
|
1169
1231
|
while (true) {
|
|
1170
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1232
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1171
1233
|
if (oldValue === 0) {
|
|
1172
1234
|
return;
|
|
1173
1235
|
}
|
|
1174
|
-
Atomics.wait(i32a, 0,
|
|
1236
|
+
Atomics.wait(i32a, 0, 10);
|
|
1175
1237
|
}
|
|
1176
1238
|
}
|
|
1177
1239
|
},
|
|
@@ -1180,20 +1242,20 @@ function createNapiModule(options) {
|
|
|
1180
1242
|
const again = (): void => { fn() }
|
|
1181
1243
|
const fn = (): void => {
|
|
1182
1244
|
const i32a = new Int32Array(wasmMemory.buffer, index, 1)
|
|
1183
|
-
const oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1245
|
+
const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
|
|
1184
1246
|
if (oldValue === 0) {
|
|
1185
1247
|
resolve()
|
|
1186
1248
|
return
|
|
1187
1249
|
}
|
|
1188
|
-
(Atomics as any).waitAsync(i32a, 0,
|
|
1250
|
+
(Atomics as any).waitAsync(i32a, 0, 10).value.then(again)
|
|
1189
1251
|
}
|
|
1190
1252
|
fn()
|
|
1191
1253
|
})
|
|
1192
1254
|
}, */
|
|
1193
1255
|
unlock: function () {
|
|
1194
1256
|
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
1195
|
-
var oldValue = Atomics.compareExchange(i32a, 0,
|
|
1196
|
-
if (oldValue !==
|
|
1257
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
1258
|
+
if (oldValue !== 10) {
|
|
1197
1259
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
1198
1260
|
}
|
|
1199
1261
|
Atomics.notify(i32a, 0, 1);
|
|
@@ -1257,14 +1319,14 @@ function createNapiModule(options) {
|
|
|
1257
1319
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1258
1320
|
var arr, index;
|
|
1259
1321
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1260
|
-
index = (func + offset)
|
|
1322
|
+
index = (func + offset) >>> 2;
|
|
1261
1323
|
Atomics.add(arr, index, 1);
|
|
1262
1324
|
},
|
|
1263
1325
|
subQueueSize: function (func) {
|
|
1264
1326
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1265
1327
|
var arr, index;
|
|
1266
1328
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1267
|
-
index = (func + offset)
|
|
1329
|
+
index = (func + offset) >>> 2;
|
|
1268
1330
|
Atomics.sub(arr, index, 1);
|
|
1269
1331
|
},
|
|
1270
1332
|
getThreadCount: function (func) {
|
|
@@ -1274,30 +1336,30 @@ function createNapiModule(options) {
|
|
|
1274
1336
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1275
1337
|
var arr, index;
|
|
1276
1338
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1277
|
-
index = (func + offset)
|
|
1339
|
+
index = (func + offset) >>> 2;
|
|
1278
1340
|
Atomics.add(arr, index, 1);
|
|
1279
1341
|
},
|
|
1280
1342
|
subThreadCount: function (func) {
|
|
1281
1343
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1282
1344
|
var arr, index;
|
|
1283
1345
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1284
|
-
index = (func + offset)
|
|
1346
|
+
index = (func + offset) >>> 2;
|
|
1285
1347
|
Atomics.sub(arr, index, 1);
|
|
1286
1348
|
},
|
|
1287
|
-
|
|
1288
|
-
return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.
|
|
1349
|
+
getState: function (func) {
|
|
1350
|
+
return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
|
|
1289
1351
|
},
|
|
1290
|
-
|
|
1291
|
-
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.
|
|
1352
|
+
setState: function (func, value) {
|
|
1353
|
+
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
|
|
1292
1354
|
},
|
|
1293
1355
|
getHandlesClosing: function (func) {
|
|
1294
|
-
return Atomics.load(new
|
|
1356
|
+
return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
|
|
1295
1357
|
},
|
|
1296
1358
|
setHandlesClosing: function (func, value) {
|
|
1297
|
-
Atomics.store(new
|
|
1359
|
+
Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
|
|
1298
1360
|
},
|
|
1299
1361
|
getDispatchState: function (func) {
|
|
1300
|
-
return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state)
|
|
1362
|
+
return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
|
|
1301
1363
|
},
|
|
1302
1364
|
getContext: function (func) {
|
|
1303
1365
|
return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
|
|
@@ -1328,12 +1390,12 @@ function createNapiModule(options) {
|
|
|
1328
1390
|
var arr;
|
|
1329
1391
|
if (unsigned) {
|
|
1330
1392
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1331
|
-
ret = Atomics.load(arr, offset
|
|
1393
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
1332
1394
|
return ret;
|
|
1333
1395
|
}
|
|
1334
1396
|
else {
|
|
1335
1397
|
arr = new Int32Array(wasmMemory.buffer);
|
|
1336
|
-
ret = Atomics.load(arr, offset
|
|
1398
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
1337
1399
|
return ret;
|
|
1338
1400
|
}
|
|
1339
1401
|
},
|
|
@@ -1341,54 +1403,82 @@ function createNapiModule(options) {
|
|
|
1341
1403
|
var arr;
|
|
1342
1404
|
if (unsigned) {
|
|
1343
1405
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1344
|
-
Atomics.store(arr, offset
|
|
1406
|
+
Atomics.store(arr, offset >>> 2, value);
|
|
1345
1407
|
return undefined;
|
|
1346
1408
|
}
|
|
1347
1409
|
else {
|
|
1348
1410
|
arr = new Int32Array(wasmMemory.buffer);
|
|
1349
|
-
Atomics.store(arr, offset
|
|
1411
|
+
Atomics.store(arr, offset >>> 2, value >>> 0);
|
|
1350
1412
|
return undefined;
|
|
1351
1413
|
}
|
|
1352
1414
|
},
|
|
1415
|
+
releaseResources: function (func) {
|
|
1416
|
+
if (emnapiTSFN.getState(func) !== 2 /* State.kClosed */) {
|
|
1417
|
+
emnapiTSFN.setState(func, 2 /* State.kClosed */);
|
|
1418
|
+
var env = emnapiTSFN.getEnv(func);
|
|
1419
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1420
|
+
var ref = emnapiTSFN.getRef(func);
|
|
1421
|
+
if (ref) {
|
|
1422
|
+
emnapiCtx.refStore.get(ref).dispose();
|
|
1423
|
+
}
|
|
1424
|
+
var resource = emnapiTSFN.getResource(func);
|
|
1425
|
+
emnapiCtx.refStore.get(resource).dispose();
|
|
1426
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1427
|
+
HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
|
|
1428
|
+
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
1429
|
+
envObject.unref();
|
|
1430
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
1431
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
1432
|
+
if (Atomics.load(arr, asyncRefOffset) > 0) {
|
|
1433
|
+
Atomics.store(arr, asyncRefOffset, 0);
|
|
1434
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1435
|
+
}
|
|
1436
|
+
if (emnapiNodeBinding) {
|
|
1437
|
+
var view = new DataView(wasmMemory.buffer);
|
|
1438
|
+
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1439
|
+
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1440
|
+
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
1441
|
+
}
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1353
1444
|
destroy: function (func) {
|
|
1445
|
+
emnapiTSFN._liveSet.delete(func);
|
|
1354
1446
|
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
|
-
}
|
|
1447
|
+
emnapiTSFN.releaseResources(func);
|
|
1377
1448
|
_free(func);
|
|
1378
1449
|
},
|
|
1379
|
-
|
|
1450
|
+
emptyQueue: function (func) {
|
|
1451
|
+
var drainQueue = [];
|
|
1452
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
1453
|
+
while (emnapiTSFN.getQueueSize(func) > 0) {
|
|
1454
|
+
drainQueue.push(emnapiTSFN.shiftQueue(func));
|
|
1455
|
+
}
|
|
1456
|
+
});
|
|
1380
1457
|
var callJsCb = emnapiTSFN.getCallJSCb(func);
|
|
1381
1458
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1382
1459
|
var context = emnapiTSFN.getContext(func);
|
|
1383
1460
|
var data;
|
|
1384
|
-
|
|
1461
|
+
for (var i = 0; i < drainQueue.length; i++) {
|
|
1385
1462
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1386
|
-
data =
|
|
1463
|
+
data = drainQueue[i];
|
|
1387
1464
|
if (callJsCb) {
|
|
1388
1465
|
(wasmTable.get(callJsCb))(0, 0, context, data);
|
|
1389
1466
|
}
|
|
1390
1467
|
}
|
|
1391
|
-
|
|
1468
|
+
},
|
|
1469
|
+
maybeDelete: function (func) {
|
|
1470
|
+
var shouldDelete = false;
|
|
1471
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
1472
|
+
if (emnapiTSFN.getThreadCount(func) > 0) {
|
|
1473
|
+
emnapiTSFN.releaseResources(func);
|
|
1474
|
+
}
|
|
1475
|
+
else {
|
|
1476
|
+
shouldDelete = true;
|
|
1477
|
+
}
|
|
1478
|
+
});
|
|
1479
|
+
if (shouldDelete) {
|
|
1480
|
+
emnapiTSFN.destroy(func);
|
|
1481
|
+
}
|
|
1392
1482
|
},
|
|
1393
1483
|
finalize: function (func) {
|
|
1394
1484
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -1403,6 +1493,7 @@ function createNapiModule(options) {
|
|
|
1403
1493
|
envObject.callFinalizerInternal(0, finalize, data, context);
|
|
1404
1494
|
};
|
|
1405
1495
|
try {
|
|
1496
|
+
emnapiTSFN.emptyQueue(func);
|
|
1406
1497
|
if (finalize) {
|
|
1407
1498
|
if (emnapiNodeBinding) {
|
|
1408
1499
|
var resource = emnapiTSFN.getResource(func);
|
|
@@ -1420,7 +1511,7 @@ function createNapiModule(options) {
|
|
|
1420
1511
|
f();
|
|
1421
1512
|
}
|
|
1422
1513
|
}
|
|
1423
|
-
emnapiTSFN.
|
|
1514
|
+
emnapiTSFN.maybeDelete(func);
|
|
1424
1515
|
}
|
|
1425
1516
|
finally {
|
|
1426
1517
|
emnapiCtx.closeScope(envObject);
|
|
@@ -1436,7 +1527,7 @@ function createNapiModule(options) {
|
|
|
1436
1527
|
try {
|
|
1437
1528
|
if (set_closing) {
|
|
1438
1529
|
emnapiTSFN.getMutex(func).execute(function () {
|
|
1439
|
-
emnapiTSFN.
|
|
1530
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
1440
1531
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1441
1532
|
emnapiTSFN.getCond(func).signal();
|
|
1442
1533
|
}
|
|
@@ -1446,6 +1537,7 @@ function createNapiModule(options) {
|
|
|
1446
1537
|
return;
|
|
1447
1538
|
}
|
|
1448
1539
|
emnapiTSFN.setHandlesClosing(func, 1);
|
|
1540
|
+
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
|
|
1449
1541
|
emnapiCtx.feature.setImmediate(function () {
|
|
1450
1542
|
emnapiTSFN.finalize(func);
|
|
1451
1543
|
});
|
|
@@ -1462,10 +1554,7 @@ function createNapiModule(options) {
|
|
|
1462
1554
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1463
1555
|
var cond = emnapiTSFN.getCond(func);
|
|
1464
1556
|
mutex.execute(function () {
|
|
1465
|
-
if (emnapiTSFN.
|
|
1466
|
-
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
1467
|
-
}
|
|
1468
|
-
else {
|
|
1557
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
1469
1558
|
var size = emnapiTSFN.getQueueSize(func);
|
|
1470
1559
|
if (size > 0) {
|
|
1471
1560
|
data = emnapiTSFN.shiftQueue(func);
|
|
@@ -1478,7 +1567,7 @@ function createNapiModule(options) {
|
|
|
1478
1567
|
}
|
|
1479
1568
|
if (size === 0) {
|
|
1480
1569
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1481
|
-
emnapiTSFN.
|
|
1570
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
1482
1571
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1483
1572
|
cond.signal();
|
|
1484
1573
|
}
|
|
@@ -1489,6 +1578,9 @@ function createNapiModule(options) {
|
|
|
1489
1578
|
has_more = true;
|
|
1490
1579
|
}
|
|
1491
1580
|
}
|
|
1581
|
+
else {
|
|
1582
|
+
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
1583
|
+
}
|
|
1492
1584
|
});
|
|
1493
1585
|
if (popped_value) {
|
|
1494
1586
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -1537,7 +1629,7 @@ function createNapiModule(options) {
|
|
|
1537
1629
|
var has_more = true;
|
|
1538
1630
|
var iterations_left = 1000;
|
|
1539
1631
|
var ui32a = new Uint32Array(wasmMemory.buffer);
|
|
1540
|
-
var index = (func + emnapiTSFN.offset.dispatch_state)
|
|
1632
|
+
var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
|
|
1541
1633
|
while (has_more && --iterations_left !== 0) {
|
|
1542
1634
|
Atomics.store(ui32a, index, 1);
|
|
1543
1635
|
has_more = emnapiTSFN.dispatchOne(func);
|
|
@@ -1549,25 +1641,85 @@ function createNapiModule(options) {
|
|
|
1549
1641
|
emnapiTSFN.send(func);
|
|
1550
1642
|
}
|
|
1551
1643
|
},
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1644
|
+
enqueue: function (func) {
|
|
1645
|
+
// `pending` means a worker thread has requested a wakeup that has not
|
|
1646
|
+
// been drained on the main thread yet.
|
|
1647
|
+
var pending = func + emnapiTSFN.offset.async_pending;
|
|
1648
|
+
// `scheduled` prevents queueing the same main-thread drain chain more than
|
|
1649
|
+
// once while a previous wakeup is still in flight.
|
|
1650
|
+
var scheduled = func + emnapiTSFN.offset.async_u_fd;
|
|
1651
|
+
var i32a = new Int32Array(wasmMemory.buffer);
|
|
1652
|
+
if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
|
|
1555
1653
|
return;
|
|
1556
1654
|
}
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1655
|
+
// Match uv_async_send-style coalescing in JS: the first turn represents
|
|
1656
|
+
// the wakeup reaching the main thread, and the second turn performs the
|
|
1657
|
+
// actual TSFN drain after nearby Send/Signal calls have had a chance to
|
|
1658
|
+
// collapse into the shared AsyncProgressWorker state.
|
|
1659
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1660
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
1661
|
+
return;
|
|
1662
|
+
}
|
|
1663
|
+
if (Atomics.load(i32a, pending >>> 2) === 0) {
|
|
1664
|
+
Atomics.store(i32a, scheduled >>> 2, 0);
|
|
1665
|
+
return;
|
|
1666
|
+
}
|
|
1667
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1668
|
+
try {
|
|
1669
|
+
// Consume the coalesced wakeup once, then let dispatch() observe any
|
|
1670
|
+
// queue mutations through dispatch_state like the C implementation.
|
|
1671
|
+
if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
|
|
1672
|
+
return;
|
|
1673
|
+
}
|
|
1674
|
+
// After destroy(), the func address is freed. Skip dispatch
|
|
1675
|
+
// to avoid use-after-free (JS-side lifecycle check).
|
|
1676
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
1677
|
+
return;
|
|
1678
|
+
}
|
|
1679
|
+
emnapiTSFN.dispatch(func);
|
|
1680
|
+
}
|
|
1681
|
+
finally {
|
|
1682
|
+
// Allow a later wakeup to schedule a new drain chain. If another
|
|
1683
|
+
// worker-thread send raced with this drain, enqueue one more turn.
|
|
1684
|
+
if (emnapiTSFN._liveSet.has(func)) {
|
|
1685
|
+
Atomics.store(i32a, scheduled >>> 2, 0);
|
|
1686
|
+
if (Atomics.load(i32a, pending >>> 2) !== 0) {
|
|
1687
|
+
emnapiTSFN.enqueue(func);
|
|
1688
|
+
}
|
|
1563
1689
|
}
|
|
1564
1690
|
}
|
|
1565
1691
|
});
|
|
1692
|
+
});
|
|
1693
|
+
},
|
|
1694
|
+
send: function (func) {
|
|
1695
|
+
var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
|
|
1696
|
+
if ((current_state & 1) === 1) {
|
|
1697
|
+
return;
|
|
1566
1698
|
}
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1699
|
+
var pendng = func + emnapiTSFN.offset.async_pending;
|
|
1700
|
+
// A wakeup is already pending, so this send only needs to leave the queued
|
|
1701
|
+
// work in the TSFN queue and let the existing drain pick it up.
|
|
1702
|
+
if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
|
|
1703
|
+
return;
|
|
1704
|
+
}
|
|
1705
|
+
if (Atomics.exchange(new Int32Array(wasmMemory.buffer), pendng >>> 2, 1) === 0) {
|
|
1706
|
+
if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
|
|
1707
|
+
// Worker threads only post a wakeup token. Main-thread draining is
|
|
1708
|
+
// serialized by enqueue() once the message is received.
|
|
1709
|
+
postMessage({
|
|
1710
|
+
__emnapi__: {
|
|
1711
|
+
type: 'tsfn-send',
|
|
1712
|
+
payload: {
|
|
1713
|
+
tsfn: func
|
|
1714
|
+
}
|
|
1715
|
+
}
|
|
1716
|
+
});
|
|
1717
|
+
}
|
|
1718
|
+
else {
|
|
1719
|
+
// On the main thread we can skip the cross-thread hop and schedule the
|
|
1720
|
+
// coalesced drain chain directly.
|
|
1721
|
+
emnapiTSFN.enqueue(func);
|
|
1722
|
+
}
|
|
1571
1723
|
}
|
|
1572
1724
|
}
|
|
1573
1725
|
};
|
|
@@ -1580,6 +1732,13 @@ function createNapiModule(options) {
|
|
|
1580
1732
|
envObject.checkGCAccess();
|
|
1581
1733
|
if (!async_resource_name)
|
|
1582
1734
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1735
|
+
max_queue_size >>>= 0;
|
|
1736
|
+
initial_thread_count >>>= 0;
|
|
1737
|
+
env >>>= 0;
|
|
1738
|
+
thread_finalize_data >>>= 0;
|
|
1739
|
+
thread_finalize_cb >>>= 0;
|
|
1740
|
+
context >>>= 0;
|
|
1741
|
+
call_js_cb >>>= 0;
|
|
1583
1742
|
max_queue_size = max_queue_size >>> 0;
|
|
1584
1743
|
initial_thread_count = initial_thread_count >>> 0;
|
|
1585
1744
|
if (initial_thread_count === 0) {
|
|
@@ -1588,6 +1747,7 @@ function createNapiModule(options) {
|
|
|
1588
1747
|
if (!result)
|
|
1589
1748
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1590
1749
|
var ref = 0;
|
|
1750
|
+
func >>>= 0;
|
|
1591
1751
|
if (!func) {
|
|
1592
1752
|
if (!call_js_cb)
|
|
1593
1753
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
@@ -1619,22 +1779,25 @@ function createNapiModule(options) {
|
|
|
1619
1779
|
asyncResourceName = String(asyncResourceName);
|
|
1620
1780
|
var resource_name = envObject.ensureHandleId(asyncResourceName);
|
|
1621
1781
|
// tsfn create
|
|
1622
|
-
var sizeofTSFN = emnapiTSFN.offset.
|
|
1782
|
+
var sizeofTSFN = emnapiTSFN.offset.__size__;
|
|
1783
|
+
// eslint-disable-next-line prefer-const
|
|
1623
1784
|
var tsfn = _malloc(sizeofTSFN);
|
|
1624
1785
|
if (!tsfn)
|
|
1625
1786
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
1787
|
+
tsfn >>>= 0;
|
|
1626
1788
|
new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
|
|
1627
1789
|
var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
1628
1790
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1629
1791
|
var resource_ = resourceRef.id;
|
|
1630
1792
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1631
|
-
HEAP_DATA_VIEW.setUint32(tsfn, resource_, true);
|
|
1793
|
+
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
|
|
1632
1794
|
if (!emnapiTSFN.initQueue(tsfn)) {
|
|
1633
1795
|
_free(tsfn);
|
|
1634
1796
|
resourceRef.dispose();
|
|
1635
1797
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
1636
1798
|
}
|
|
1637
1799
|
_emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
|
|
1800
|
+
HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
|
|
1638
1801
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
|
|
1639
1802
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
|
|
1640
1803
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
|
|
@@ -1644,9 +1807,11 @@ function createNapiModule(options) {
|
|
|
1644
1807
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
|
|
1645
1808
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
|
|
1646
1809
|
emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
|
|
1810
|
+
emnapiTSFN._liveSet.add(tsfn);
|
|
1647
1811
|
envObject.ref();
|
|
1648
1812
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1649
|
-
HEAP_DATA_VIEW.
|
|
1813
|
+
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
|
|
1814
|
+
result >>>= 0;
|
|
1650
1815
|
HEAP_DATA_VIEW.setUint32(result, tsfn, true);
|
|
1651
1816
|
return envObject.clearLastError();
|
|
1652
1817
|
}
|
|
@@ -1656,6 +1821,8 @@ function createNapiModule(options) {
|
|
|
1656
1821
|
abort();
|
|
1657
1822
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1658
1823
|
}
|
|
1824
|
+
func >>>= 0;
|
|
1825
|
+
result >>>= 0;
|
|
1659
1826
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1660
1827
|
var context = emnapiTSFN.getContext(func);
|
|
1661
1828
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -1668,6 +1835,8 @@ function createNapiModule(options) {
|
|
|
1668
1835
|
abort();
|
|
1669
1836
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1670
1837
|
}
|
|
1838
|
+
func >>>= 0;
|
|
1839
|
+
data >>>= 0;
|
|
1671
1840
|
return emnapiTSFN.push(func, data, mode);
|
|
1672
1841
|
}
|
|
1673
1842
|
/** @__sig ip */
|
|
@@ -1676,13 +1845,14 @@ function createNapiModule(options) {
|
|
|
1676
1845
|
abort();
|
|
1677
1846
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1678
1847
|
}
|
|
1848
|
+
func >>>= 0;
|
|
1679
1849
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1680
1850
|
return mutex.execute(function () {
|
|
1681
|
-
if (emnapiTSFN.
|
|
1682
|
-
|
|
1851
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
1852
|
+
emnapiTSFN.addThreadCount(func);
|
|
1853
|
+
return 0 /* napi_status.napi_ok */;
|
|
1683
1854
|
}
|
|
1684
|
-
|
|
1685
|
-
return 0 /* napi_status.napi_ok */;
|
|
1855
|
+
return 16 /* napi_status.napi_closing */;
|
|
1686
1856
|
});
|
|
1687
1857
|
}
|
|
1688
1858
|
/** @__sig ipi */
|
|
@@ -1691,26 +1861,36 @@ function createNapiModule(options) {
|
|
|
1691
1861
|
abort();
|
|
1692
1862
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1693
1863
|
}
|
|
1864
|
+
func >>>= 0;
|
|
1694
1865
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1695
1866
|
var cond = emnapiTSFN.getCond(func);
|
|
1696
|
-
|
|
1867
|
+
var shouldDelete = false;
|
|
1868
|
+
var ret = mutex.execute(function () {
|
|
1697
1869
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1698
1870
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1699
1871
|
}
|
|
1700
1872
|
emnapiTSFN.subThreadCount(func);
|
|
1701
1873
|
if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
if (
|
|
1874
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
1875
|
+
if (mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
1876
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
1877
|
+
}
|
|
1878
|
+
if (emnapiTSFN.getState(func) === 1 /* State.kClosing */ && emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1707
1879
|
cond.signal();
|
|
1708
1880
|
}
|
|
1709
1881
|
emnapiTSFN.send(func);
|
|
1710
1882
|
}
|
|
1711
1883
|
}
|
|
1884
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
1885
|
+
return 0 /* napi_status.napi_ok */;
|
|
1886
|
+
}
|
|
1887
|
+
shouldDelete = true;
|
|
1712
1888
|
return 0 /* napi_status.napi_ok */;
|
|
1713
1889
|
});
|
|
1890
|
+
if (shouldDelete) {
|
|
1891
|
+
emnapiTSFN.destroy(func);
|
|
1892
|
+
}
|
|
1893
|
+
return ret;
|
|
1714
1894
|
}
|
|
1715
1895
|
/** @__sig ipp */
|
|
1716
1896
|
function napi_unref_threadsafe_function(env, func) {
|
|
@@ -1718,11 +1898,15 @@ function createNapiModule(options) {
|
|
|
1718
1898
|
abort();
|
|
1719
1899
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1720
1900
|
}
|
|
1721
|
-
|
|
1722
|
-
var
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1901
|
+
func >>>= 0;
|
|
1902
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
1903
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
1904
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1905
|
+
if (currentValue > 0) {
|
|
1906
|
+
Atomics.store(arr, asyncRefOffset, currentValue - 1);
|
|
1907
|
+
if (currentValue === 1) {
|
|
1908
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1909
|
+
}
|
|
1726
1910
|
}
|
|
1727
1911
|
return 0 /* napi_status.napi_ok */;
|
|
1728
1912
|
}
|
|
@@ -1732,34 +1916,57 @@ function createNapiModule(options) {
|
|
|
1732
1916
|
abort();
|
|
1733
1917
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1734
1918
|
}
|
|
1735
|
-
|
|
1736
|
-
var
|
|
1737
|
-
|
|
1738
|
-
|
|
1919
|
+
func >>>= 0;
|
|
1920
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
1921
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
1922
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1923
|
+
if (!currentValue) {
|
|
1739
1924
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1740
1925
|
}
|
|
1926
|
+
Atomics.store(arr, asyncRefOffset, currentValue + 1);
|
|
1741
1927
|
return 0 /* napi_status.napi_ok */;
|
|
1742
1928
|
}
|
|
1743
1929
|
var emnapiAWMT = {
|
|
1744
|
-
|
|
1745
|
-
runningWorkers: [],
|
|
1746
|
-
workQueue: [],
|
|
1930
|
+
pool: [],
|
|
1747
1931
|
workerReady: null,
|
|
1932
|
+
globalAddress: 0,
|
|
1933
|
+
globalOffset: {
|
|
1934
|
+
idle_threads: 0,
|
|
1935
|
+
q: 1 * 4,
|
|
1936
|
+
next: 1 * 4,
|
|
1937
|
+
prev: 2 * 4,
|
|
1938
|
+
mutex: 3 * 4,
|
|
1939
|
+
cond: 4 * 4,
|
|
1940
|
+
exit_message: 5 * 4,
|
|
1941
|
+
end: 7 * 4
|
|
1942
|
+
},
|
|
1748
1943
|
offset: {
|
|
1749
1944
|
/* napi_ref */ resource: 0,
|
|
1750
1945
|
/* double */ async_id: 8,
|
|
1751
1946
|
/* double */ trigger_async_id: 16,
|
|
1752
1947
|
/* napi_env */ env: 24,
|
|
1753
|
-
/*
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1948
|
+
/* int32_t */ status: 1 * 4 + 24, // 0 for pending, 1 for cancelled, 2 for completed
|
|
1949
|
+
queue: 2 * 4 + 24,
|
|
1950
|
+
queue_next: 2 * 4 + 24,
|
|
1951
|
+
queue_prev: 3 * 4 + 24,
|
|
1952
|
+
/* void* */ data: 4 * 4 + 24,
|
|
1953
|
+
/* napi_async_execute_callback */ execute: 5 * 4 + 24,
|
|
1954
|
+
/* napi_async_complete_callback */ complete: 6 * 4 + 24,
|
|
1955
|
+
end: 7 * 4 + 24
|
|
1757
1956
|
},
|
|
1758
1957
|
init: function () {
|
|
1759
|
-
emnapiAWMT.
|
|
1760
|
-
emnapiAWMT.runningWorkers = [];
|
|
1761
|
-
emnapiAWMT.workQueue = [];
|
|
1958
|
+
emnapiAWMT.pool = [];
|
|
1762
1959
|
emnapiAWMT.workerReady = null;
|
|
1960
|
+
if (typeof PThread !== 'undefined') {
|
|
1961
|
+
PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
|
|
1962
|
+
PThread.runningWorkers.forEach(emnapiAWMT.addListener);
|
|
1963
|
+
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
1964
|
+
PThread.getNewWorker = function () {
|
|
1965
|
+
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
1966
|
+
emnapiAWMT.addListener(r);
|
|
1967
|
+
return r;
|
|
1968
|
+
};
|
|
1969
|
+
}
|
|
1763
1970
|
},
|
|
1764
1971
|
addListener: function (worker) {
|
|
1765
1972
|
if (!worker)
|
|
@@ -1773,18 +1980,8 @@ function createNapiModule(options) {
|
|
|
1773
1980
|
var type = __emnapi__.type;
|
|
1774
1981
|
var payload = __emnapi__.payload;
|
|
1775
1982
|
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
1983
|
emnapiAWMT.callComplete(payload.work, 0 /* napi_status.napi_ok */);
|
|
1781
1984
|
}
|
|
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
1985
|
}
|
|
1789
1986
|
};
|
|
1790
1987
|
var dispose = function () {
|
|
@@ -1805,6 +2002,26 @@ function createNapiModule(options) {
|
|
|
1805
2002
|
}
|
|
1806
2003
|
return true;
|
|
1807
2004
|
},
|
|
2005
|
+
initGlobal: function () {
|
|
2006
|
+
if (!emnapiAWMT.globalAddress) {
|
|
2007
|
+
emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
|
|
2008
|
+
emnapiAWMT.globalAddress >>>= 0;
|
|
2009
|
+
var size = emnapiAWMT.globalOffset.end;
|
|
2010
|
+
var addr = emnapiAWMT.globalAddress;
|
|
2011
|
+
new Uint8Array(wasmMemory.buffer, addr, size).fill(0);
|
|
2012
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
|
|
2013
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
|
|
2014
|
+
}
|
|
2015
|
+
},
|
|
2016
|
+
terminateWorkers: function () {
|
|
2017
|
+
emnapiAWMT.pool.forEach(function (w) {
|
|
2018
|
+
var _a, _b;
|
|
2019
|
+
(_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
2020
|
+
(_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
2021
|
+
w.terminate();
|
|
2022
|
+
});
|
|
2023
|
+
emnapiAWMT.pool.length = 0;
|
|
2024
|
+
},
|
|
1808
2025
|
initWorkers: function (n) {
|
|
1809
2026
|
if (ENVIRONMENT_IS_PTHREAD) {
|
|
1810
2027
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
@@ -1812,137 +2029,200 @@ function createNapiModule(options) {
|
|
|
1812
2029
|
}
|
|
1813
2030
|
if (emnapiAWMT.workerReady)
|
|
1814
2031
|
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
2032
|
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
1821
2033
|
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
1822
2034
|
}
|
|
2035
|
+
var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
|
|
2036
|
+
var args = [];
|
|
2037
|
+
emnapiAWMT.initGlobal();
|
|
1823
2038
|
for (var i = 0; i < n; ++i) {
|
|
1824
|
-
args.push(
|
|
2039
|
+
args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
|
|
1825
2040
|
}
|
|
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);
|
|
2041
|
+
var promises = args.map(function (index) {
|
|
2042
|
+
if (index === 0) {
|
|
2043
|
+
return Promise.reject(new Error('Failed to create async worker'));
|
|
1848
2044
|
}
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
_free(arg);
|
|
2045
|
+
var worker;
|
|
2046
|
+
if (index < 0) {
|
|
2047
|
+
worker = emnapiAWMT.pool[-index - 1];
|
|
2048
|
+
if (worker)
|
|
2049
|
+
return worker.whenLoaded;
|
|
1855
2050
|
}
|
|
1856
|
-
|
|
1857
|
-
|
|
2051
|
+
index >>>= 0;
|
|
2052
|
+
var view = new DataView(wasmMemory.buffer);
|
|
2053
|
+
var tidOffset = 20;
|
|
2054
|
+
var tid = view.getInt32(index + tidOffset, true);
|
|
2055
|
+
worker = PThread.pthreads[tid];
|
|
2056
|
+
return worker.whenLoaded;
|
|
2057
|
+
});
|
|
1858
2058
|
emnapiAWMT.workerReady = Promise.all(promises);
|
|
1859
2059
|
return emnapiAWMT.workerReady;
|
|
1860
2060
|
},
|
|
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
2061
|
getResource: function (work) {
|
|
1875
|
-
|
|
2062
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2063
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
|
|
1876
2064
|
},
|
|
1877
2065
|
getExecute: function (work) {
|
|
1878
|
-
|
|
2066
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2067
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
|
|
1879
2068
|
},
|
|
1880
2069
|
getComplete: function (work) {
|
|
1881
|
-
|
|
2070
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2071
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
|
|
1882
2072
|
},
|
|
1883
2073
|
getEnv: function (work) {
|
|
1884
|
-
|
|
2074
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2075
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
|
|
1885
2076
|
},
|
|
1886
2077
|
getData: function (work) {
|
|
1887
|
-
|
|
2078
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2079
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
|
|
2080
|
+
},
|
|
2081
|
+
getMutex: function () {
|
|
2082
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
|
|
2083
|
+
var mutex = {
|
|
2084
|
+
lock: function () {
|
|
2085
|
+
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
2086
|
+
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
2087
|
+
if (isBrowserMain) {
|
|
2088
|
+
while (true) {
|
|
2089
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
2090
|
+
if (oldValue === 0) {
|
|
2091
|
+
return;
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2094
|
+
}
|
|
2095
|
+
else {
|
|
2096
|
+
while (true) {
|
|
2097
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
2098
|
+
if (oldValue === 0) {
|
|
2099
|
+
return;
|
|
2100
|
+
}
|
|
2101
|
+
Atomics.wait(i32a, 0, 10);
|
|
2102
|
+
}
|
|
2103
|
+
}
|
|
2104
|
+
},
|
|
2105
|
+
unlock: function () {
|
|
2106
|
+
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
2107
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
2108
|
+
if (oldValue !== 10) {
|
|
2109
|
+
throw new Error('Tried to unlock while not holding the mutex');
|
|
2110
|
+
}
|
|
2111
|
+
Atomics.notify(i32a, 0, 1);
|
|
2112
|
+
},
|
|
2113
|
+
execute: function (fn) {
|
|
2114
|
+
mutex.lock();
|
|
2115
|
+
try {
|
|
2116
|
+
return fn();
|
|
2117
|
+
}
|
|
2118
|
+
finally {
|
|
2119
|
+
mutex.unlock();
|
|
2120
|
+
}
|
|
2121
|
+
}
|
|
2122
|
+
};
|
|
2123
|
+
return mutex;
|
|
2124
|
+
},
|
|
2125
|
+
getCond: function () {
|
|
2126
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
|
|
2127
|
+
var mutex = emnapiAWMT.getMutex();
|
|
2128
|
+
var cond = {
|
|
2129
|
+
wait: function () {
|
|
2130
|
+
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
2131
|
+
var value = Atomics.load(i32a, 0);
|
|
2132
|
+
mutex.unlock();
|
|
2133
|
+
Atomics.wait(i32a, 0, value);
|
|
2134
|
+
mutex.lock();
|
|
2135
|
+
},
|
|
2136
|
+
signal: function () {
|
|
2137
|
+
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
2138
|
+
Atomics.add(i32a, 0, 1);
|
|
2139
|
+
Atomics.notify(i32a, 0, 1);
|
|
2140
|
+
}
|
|
2141
|
+
};
|
|
2142
|
+
return cond;
|
|
2143
|
+
},
|
|
2144
|
+
queueInit: function (q) {
|
|
2145
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2146
|
+
HEAP_DATA_VIEW.setUint32(q, q, true);
|
|
2147
|
+
HEAP_DATA_VIEW.setUint32(q + 4, q, true);
|
|
2148
|
+
},
|
|
2149
|
+
queueInsertTail: function (h, q) {
|
|
2150
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2151
|
+
HEAP_DATA_VIEW.setUint32(q, h, true);
|
|
2152
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2153
|
+
var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
|
|
2154
|
+
HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
|
|
2155
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2156
|
+
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
2157
|
+
HEAP_DATA_VIEW.setUint32(qprev, q, true);
|
|
2158
|
+
HEAP_DATA_VIEW.setUint32(h + 4, q, true);
|
|
2159
|
+
},
|
|
2160
|
+
queueRemove: function (q) {
|
|
2161
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2162
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2163
|
+
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
2164
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2165
|
+
var qnext = HEAP_DATA_VIEW.getUint32(q, true);
|
|
2166
|
+
HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
|
|
2167
|
+
HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
|
|
2168
|
+
},
|
|
2169
|
+
queueEmpty: function (q) {
|
|
2170
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2171
|
+
// eslint-disable-next-line eqeqeq
|
|
2172
|
+
return q == HEAP_DATA_VIEW.getUint32(q, true);
|
|
1888
2173
|
},
|
|
1889
2174
|
scheduleWork: function (work) {
|
|
1890
2175
|
var _a;
|
|
1891
|
-
if (
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
}
|
|
2176
|
+
if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
|
|
2177
|
+
emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
|
|
2178
|
+
emnapiAWMT.workerReady.ready = true;
|
|
2179
|
+
}).catch(function (err) {
|
|
2180
|
+
emnapiAWMT.workerReady = null;
|
|
2181
|
+
throw err;
|
|
1898
2182
|
});
|
|
1899
|
-
return;
|
|
1900
2183
|
}
|
|
1901
2184
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1902
|
-
emnapiAWMT.
|
|
1903
|
-
|
|
1904
|
-
|
|
2185
|
+
var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
|
|
2186
|
+
Atomics.store(statusBuffer, 0, 0 /* AsyncWorkStatus.Pending */);
|
|
2187
|
+
var mutex = emnapiAWMT.getMutex();
|
|
2188
|
+
var cond = emnapiAWMT.getCond();
|
|
2189
|
+
mutex.lock();
|
|
2190
|
+
try {
|
|
2191
|
+
emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
|
|
1905
2192
|
}
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
emnapiAWMT.checkIdleWorker();
|
|
1915
|
-
}, fail);
|
|
1916
|
-
}
|
|
1917
|
-
catch (err) {
|
|
1918
|
-
fail(err);
|
|
1919
|
-
}
|
|
2193
|
+
catch (err) {
|
|
2194
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2195
|
+
mutex.unlock();
|
|
2196
|
+
throw err;
|
|
2197
|
+
}
|
|
2198
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2199
|
+
if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
|
|
2200
|
+
cond.signal();
|
|
1920
2201
|
}
|
|
2202
|
+
mutex.unlock();
|
|
1921
2203
|
},
|
|
1922
2204
|
cancelWork: function (work) {
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
2205
|
+
var cancelled = false;
|
|
2206
|
+
emnapiAWMT.getMutex().execute(function () {
|
|
2207
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2208
|
+
cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2 /* AsyncWorkStatus.Completed */;
|
|
2209
|
+
if (cancelled) {
|
|
2210
|
+
emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
|
|
2211
|
+
}
|
|
2212
|
+
});
|
|
2213
|
+
if (!cancelled) {
|
|
2214
|
+
return 9 /* napi_status.napi_generic_failure */;
|
|
1932
2215
|
}
|
|
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 */;
|
|
2216
|
+
if (Atomics.compareExchange(new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1), 0, 0 /* AsyncWorkStatus.Pending */, 1 /* AsyncWorkStatus.Cancelled */) !== 0 /* AsyncWorkStatus.Pending */) {
|
|
2217
|
+
return 9 /* napi_status.napi_generic_failure */;
|
|
1942
2218
|
}
|
|
1943
|
-
|
|
2219
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
2220
|
+
emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
|
|
2221
|
+
});
|
|
2222
|
+
return 0 /* napi_status.napi_ok */;
|
|
1944
2223
|
},
|
|
1945
2224
|
callComplete: function (work, status) {
|
|
2225
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1946
2226
|
var complete = emnapiAWMT.getComplete(work);
|
|
1947
2227
|
var env = emnapiAWMT.getEnv(work);
|
|
1948
2228
|
var data = emnapiAWMT.getData(work);
|
|
@@ -1977,6 +2257,7 @@ function createNapiModule(options) {
|
|
|
1977
2257
|
}
|
|
1978
2258
|
}
|
|
1979
2259
|
};
|
|
2260
|
+
emnapiAWMT.init();
|
|
1980
2261
|
/** @__sig ippppppp */
|
|
1981
2262
|
var napi_create_async_work = singleThreadAsyncWork
|
|
1982
2263
|
? function (env, resource, resource_name, execute, complete, data, result) {
|
|
@@ -2001,6 +2282,7 @@ function createNapiModule(options) {
|
|
|
2001
2282
|
var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
|
|
2002
2283
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2003
2284
|
var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
|
|
2285
|
+
result >>>= 0;
|
|
2004
2286
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2005
2287
|
HEAP_DATA_VIEW.setUint32(result, id, true);
|
|
2006
2288
|
return envObject.clearLastError();
|
|
@@ -2028,6 +2310,7 @@ function createNapiModule(options) {
|
|
|
2028
2310
|
var aw = _malloc(sizeofAW);
|
|
2029
2311
|
if (!aw)
|
|
2030
2312
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
2313
|
+
aw >>>= 0;
|
|
2031
2314
|
new Uint8Array(wasmMemory.buffer).subarray(aw, aw + sizeofAW).fill(0);
|
|
2032
2315
|
var s = envObject.ensureHandleId(resourceObject);
|
|
2033
2316
|
var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
@@ -2040,6 +2323,8 @@ function createNapiModule(options) {
|
|
|
2040
2323
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
|
|
2041
2324
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
|
|
2042
2325
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
|
|
2326
|
+
emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
|
|
2327
|
+
result >>>= 0;
|
|
2043
2328
|
HEAP_DATA_VIEW.setUint32(result, aw, true);
|
|
2044
2329
|
return envObject.clearLastError();
|
|
2045
2330
|
};
|
|
@@ -2053,6 +2338,7 @@ function createNapiModule(options) {
|
|
|
2053
2338
|
envObject.checkGCAccess();
|
|
2054
2339
|
if (!work)
|
|
2055
2340
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2341
|
+
work >>>= 0;
|
|
2056
2342
|
emnapiAWST.remove(work);
|
|
2057
2343
|
return envObject.clearLastError();
|
|
2058
2344
|
}
|
|
@@ -2064,6 +2350,7 @@ function createNapiModule(options) {
|
|
|
2064
2350
|
envObject.checkGCAccess();
|
|
2065
2351
|
if (!work)
|
|
2066
2352
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2353
|
+
work >>>= 0;
|
|
2067
2354
|
var resource = emnapiAWMT.getResource(work);
|
|
2068
2355
|
emnapiCtx.refStore.get(resource).dispose();
|
|
2069
2356
|
if (emnapiNodeBinding) {
|
|
@@ -2083,6 +2370,7 @@ function createNapiModule(options) {
|
|
|
2083
2370
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2084
2371
|
if (!work)
|
|
2085
2372
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2373
|
+
work >>>= 0;
|
|
2086
2374
|
emnapiAWST.queue(work);
|
|
2087
2375
|
return envObject.clearLastError();
|
|
2088
2376
|
}
|
|
@@ -2092,6 +2380,7 @@ function createNapiModule(options) {
|
|
|
2092
2380
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2093
2381
|
if (!work)
|
|
2094
2382
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2383
|
+
work >>>= 0;
|
|
2095
2384
|
emnapiAWMT.scheduleWork(work);
|
|
2096
2385
|
return envObject.clearLastError();
|
|
2097
2386
|
};
|
|
@@ -2103,6 +2392,7 @@ function createNapiModule(options) {
|
|
|
2103
2392
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2104
2393
|
if (!work)
|
|
2105
2394
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2395
|
+
work >>>= 0;
|
|
2106
2396
|
var status = emnapiAWST.cancel(work);
|
|
2107
2397
|
if (status === 0 /* napi_status.napi_ok */)
|
|
2108
2398
|
return envObject.clearLastError();
|
|
@@ -2114,42 +2404,128 @@ function createNapiModule(options) {
|
|
|
2114
2404
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2115
2405
|
if (!work)
|
|
2116
2406
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2407
|
+
work >>>= 0;
|
|
2117
2408
|
var status = emnapiAWMT.cancelWork(work);
|
|
2118
2409
|
if (status === 0 /* napi_status.napi_ok */)
|
|
2119
2410
|
return envObject.clearLastError();
|
|
2120
2411
|
return envObject.setLastError(status);
|
|
2121
2412
|
};
|
|
2122
|
-
|
|
2413
|
+
/** @__sig pp */
|
|
2414
|
+
function _emnapi_async_worker(globalAddress) {
|
|
2415
|
+
globalAddress >>>= 0;
|
|
2416
|
+
emnapiAWMT.globalAddress = globalAddress;
|
|
2417
|
+
var mutex = emnapiAWMT.getMutex();
|
|
2418
|
+
var cond = emnapiAWMT.getCond();
|
|
2419
|
+
mutex.lock();
|
|
2420
|
+
var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
|
|
2421
|
+
var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
|
|
2422
|
+
var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
|
|
2423
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2424
|
+
for (;;) {
|
|
2425
|
+
while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
|
|
2426
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
|
|
2427
|
+
cond.wait();
|
|
2428
|
+
Atomics.sub(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
|
|
2429
|
+
}
|
|
2430
|
+
var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
|
|
2431
|
+
if (q === exitMessageAddr) {
|
|
2432
|
+
cond.signal();
|
|
2433
|
+
mutex.unlock();
|
|
2434
|
+
break;
|
|
2435
|
+
}
|
|
2436
|
+
var work = q - emnapiAWMT.offset.queue;
|
|
2437
|
+
emnapiAWMT.queueRemove(q);
|
|
2438
|
+
emnapiAWMT.queueInit(q);
|
|
2439
|
+
mutex.unlock();
|
|
2440
|
+
var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
|
|
2441
|
+
if (Atomics.load(statusBuffer, 0) === 1 /* AsyncWorkStatus.Cancelled */) {
|
|
2442
|
+
abort('unreachable');
|
|
2443
|
+
}
|
|
2444
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2445
|
+
var execute = emnapiAWMT.getExecute(work);
|
|
2446
|
+
var env = emnapiAWMT.getEnv(work);
|
|
2447
|
+
var data = emnapiAWMT.getData(work);
|
|
2448
|
+
(wasmTable.get(execute))(env, data);
|
|
2449
|
+
Atomics.store(statusBuffer, 0, 2 /* AsyncWorkStatus.Completed */);
|
|
2450
|
+
var postMessage_1 = napiModule.postMessage;
|
|
2451
|
+
postMessage_1({
|
|
2452
|
+
__emnapi__: {
|
|
2453
|
+
type: 'async-work-complete',
|
|
2454
|
+
payload: { work: work }
|
|
2455
|
+
}
|
|
2456
|
+
});
|
|
2457
|
+
mutex.lock();
|
|
2458
|
+
}
|
|
2459
|
+
return 0;
|
|
2460
|
+
}
|
|
2461
|
+
/** @__sig ipp */
|
|
2462
|
+
function _emnapi_spawn_worker(f, globalAddress) {
|
|
2463
|
+
if (typeof onCreateWorker !== 'function') {
|
|
2464
|
+
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
2465
|
+
}
|
|
2466
|
+
var promises = [];
|
|
2467
|
+
var args = [];
|
|
2468
|
+
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
2469
|
+
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
2470
|
+
}
|
|
2471
|
+
args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
|
|
2472
|
+
var handleError = function (e) {
|
|
2473
|
+
if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
|
|
2474
|
+
emnapiAWMT.terminateWorkers();
|
|
2475
|
+
}
|
|
2476
|
+
};
|
|
2477
|
+
var ret;
|
|
2478
|
+
try {
|
|
2479
|
+
var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
|
|
2480
|
+
var p = PThread.loadWasmModuleToWorker(worker_1);
|
|
2481
|
+
if (ENVIRONMENT_IS_NODE) {
|
|
2482
|
+
worker_1.on('error', handleError);
|
|
2483
|
+
}
|
|
2484
|
+
else {
|
|
2485
|
+
worker_1.addEventListener('error', handleError, false);
|
|
2486
|
+
}
|
|
2487
|
+
emnapiAWMT.addListener(worker_1);
|
|
2488
|
+
emnapiTSFN.addListener(worker_1);
|
|
2489
|
+
promises.push(p.then(function () {
|
|
2490
|
+
if (typeof worker_1.unref === 'function') {
|
|
2491
|
+
worker_1.unref();
|
|
2492
|
+
}
|
|
2493
|
+
}));
|
|
2494
|
+
ret = emnapiAWMT.pool.push(worker_1) - 1;
|
|
2495
|
+
var arg = args[0];
|
|
2496
|
+
worker_1.threadBlockBase = arg;
|
|
2497
|
+
worker_1.postMessage({
|
|
2498
|
+
__emnapi__: {
|
|
2499
|
+
type: 'async-worker-init',
|
|
2500
|
+
payload: { arg: arg, func: [f, globalAddress] }
|
|
2501
|
+
}
|
|
2502
|
+
});
|
|
2503
|
+
}
|
|
2504
|
+
catch (err) {
|
|
2505
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2506
|
+
var arg = args[0];
|
|
2507
|
+
_free(arg);
|
|
2508
|
+
throw err;
|
|
2509
|
+
}
|
|
2510
|
+
return ret;
|
|
2511
|
+
}
|
|
2512
|
+
function initWorker(startArg, func) {
|
|
2123
2513
|
if (napiModule.childThread) {
|
|
2124
2514
|
if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
|
|
2125
2515
|
throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
|
|
2126
2516
|
}
|
|
2127
2517
|
wasmInstance.exports.emnapi_async_worker_init(startArg);
|
|
2518
|
+
(wasmTable.get(func[0]))(func[1]);
|
|
2128
2519
|
}
|
|
2129
2520
|
else {
|
|
2130
2521
|
throw new Error('startThread is only available in child threads');
|
|
2131
2522
|
}
|
|
2132
2523
|
}
|
|
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
2524
|
napiModule.initWorker = initWorker;
|
|
2150
|
-
napiModule.executeAsyncWork = executeAsyncWork;
|
|
2151
2525
|
var asyncWorkMod = /*#__PURE__*/ Object.freeze({
|
|
2152
2526
|
__proto__: null,
|
|
2527
|
+
_emnapi_async_worker: _emnapi_async_worker,
|
|
2528
|
+
_emnapi_spawn_worker: _emnapi_spawn_worker,
|
|
2153
2529
|
napi_cancel_async_work: napi_cancel_async_work,
|
|
2154
2530
|
napi_create_async_work: napi_create_async_work,
|
|
2155
2531
|
napi_delete_async_work: napi_delete_async_work,
|
|
@@ -2219,6 +2595,7 @@ function createNapiModule(options) {
|
|
|
2219
2595
|
var pointer = _malloc(arrayBuffer.byteLength);
|
|
2220
2596
|
if (!pointer)
|
|
2221
2597
|
throw new Error('Out of memory');
|
|
2598
|
+
pointer >>>= 0;
|
|
2222
2599
|
new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
|
|
2223
2600
|
info.address = pointer;
|
|
2224
2601
|
info.ownership = emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
|
|
@@ -2240,8 +2617,7 @@ function createNapiModule(options) {
|
|
|
2240
2617
|
}
|
|
2241
2618
|
return view;
|
|
2242
2619
|
}
|
|
2243
|
-
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) ||
|
|
2244
|
-
((typeof SharedArrayBuffer === 'function') && (view.buffer instanceof SharedArrayBuffer));
|
|
2620
|
+
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
|
|
2245
2621
|
if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
2246
2622
|
var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
|
|
2247
2623
|
var Ctor = info.Ctor;
|
|
@@ -2381,7 +2757,7 @@ function createNapiModule(options) {
|
|
|
2381
2757
|
ptr >>>= 0;
|
|
2382
2758
|
var HEAPU8 = new Uint8Array(wasmMemory.buffer);
|
|
2383
2759
|
var end = ptr;
|
|
2384
|
-
if (length === -1) {
|
|
2760
|
+
if (length === -1 || length === 4294967295) {
|
|
2385
2761
|
for (; HEAPU8[end];)
|
|
2386
2762
|
++end;
|
|
2387
2763
|
}
|
|
@@ -2472,12 +2848,12 @@ function createNapiModule(options) {
|
|
|
2472
2848
|
return '';
|
|
2473
2849
|
ptr >>>= 0;
|
|
2474
2850
|
var end = ptr;
|
|
2475
|
-
if (length === -1) {
|
|
2476
|
-
var idx = end
|
|
2851
|
+
if (length === -1 || length === 4294967295) {
|
|
2852
|
+
var idx = end >>> 1;
|
|
2477
2853
|
var HEAPU16 = new Uint16Array(wasmMemory.buffer);
|
|
2478
2854
|
while (HEAPU16[idx])
|
|
2479
2855
|
++idx;
|
|
2480
|
-
end = idx << 1;
|
|
2856
|
+
end = (idx << 1) >>> 0;
|
|
2481
2857
|
}
|
|
2482
2858
|
else {
|
|
2483
2859
|
end = ptr + (length >>> 0) * 2;
|
|
@@ -2510,12 +2886,13 @@ function createNapiModule(options) {
|
|
|
2510
2886
|
return outPtr - startPtr;
|
|
2511
2887
|
},
|
|
2512
2888
|
newString: function (env, str, length, result, stringMaker) {
|
|
2889
|
+
length >>>= 0;
|
|
2513
2890
|
if (!env)
|
|
2514
2891
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2515
2892
|
// @ts-expect-error
|
|
2516
2893
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2517
2894
|
envObject.checkGCAccess();
|
|
2518
|
-
var autoLength = length === -1;
|
|
2895
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
2519
2896
|
var sizelength = length >>> 0;
|
|
2520
2897
|
if (length !== 0) {
|
|
2521
2898
|
if (!str)
|
|
@@ -2525,7 +2902,9 @@ function createNapiModule(options) {
|
|
|
2525
2902
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2526
2903
|
if (!(autoLength || (sizelength <= 2147483647)))
|
|
2527
2904
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2905
|
+
str >>>= 0;
|
|
2528
2906
|
var strValue = stringMaker(str, autoLength, sizelength);
|
|
2907
|
+
result >>>= 0;
|
|
2529
2908
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2530
2909
|
var value = emnapiCtx.addToCurrentScope(strValue).id;
|
|
2531
2910
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2533,12 +2912,13 @@ function createNapiModule(options) {
|
|
|
2533
2912
|
return envObject.clearLastError();
|
|
2534
2913
|
},
|
|
2535
2914
|
newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
|
|
2915
|
+
length >>>= 0;
|
|
2536
2916
|
if (!env)
|
|
2537
2917
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
2538
2918
|
// @ts-expect-error
|
|
2539
2919
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2540
2920
|
envObject.checkGCAccess();
|
|
2541
|
-
var autoLength = length === -1;
|
|
2921
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
2542
2922
|
var sizelength = length >>> 0;
|
|
2543
2923
|
if (length !== 0) {
|
|
2544
2924
|
if (!str)
|
|
@@ -2584,6 +2964,7 @@ function createNapiModule(options) {
|
|
|
2584
2964
|
if (!handle.isArray()) {
|
|
2585
2965
|
return envObject.setLastError(8 /* napi_status.napi_array_expected */);
|
|
2586
2966
|
}
|
|
2967
|
+
result >>>= 0;
|
|
2587
2968
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2588
2969
|
var v = handle.value.length >>> 0;
|
|
2589
2970
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2612,11 +2993,13 @@ function createNapiModule(options) {
|
|
|
2612
2993
|
}
|
|
2613
2994
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2614
2995
|
if (data) {
|
|
2996
|
+
data >>>= 0;
|
|
2615
2997
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2616
2998
|
var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
|
|
2617
2999
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2618
3000
|
}
|
|
2619
3001
|
if (byte_length) {
|
|
3002
|
+
byte_length >>>= 0;
|
|
2620
3003
|
HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
|
|
2621
3004
|
}
|
|
2622
3005
|
return envObject.clearLastError();
|
|
@@ -2689,6 +3072,7 @@ function createNapiModule(options) {
|
|
|
2689
3072
|
catch (_) {
|
|
2690
3073
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2691
3074
|
}
|
|
3075
|
+
result >>>= 0;
|
|
2692
3076
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2693
3077
|
var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
|
|
2694
3078
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2718,6 +3102,7 @@ function createNapiModule(options) {
|
|
|
2718
3102
|
var v = handle.value;
|
|
2719
3103
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2720
3104
|
if (type) {
|
|
3105
|
+
type >>>= 0;
|
|
2721
3106
|
var t = void 0;
|
|
2722
3107
|
if (v instanceof Int8Array) {
|
|
2723
3108
|
t = 0 /* napi_typedarray_type.napi_int8_array */;
|
|
@@ -2761,24 +3146,27 @@ function createNapiModule(options) {
|
|
|
2761
3146
|
}
|
|
2762
3147
|
HEAP_DATA_VIEW.setInt32(type, t, true);
|
|
2763
3148
|
}
|
|
3149
|
+
v = emnapiExternalMemory.getOrUpdateMemoryView(v);
|
|
2764
3150
|
if (length) {
|
|
3151
|
+
length >>>= 0;
|
|
2765
3152
|
HEAP_DATA_VIEW.setUint32(length, v.length, true);
|
|
2766
3153
|
}
|
|
2767
|
-
var buffer;
|
|
2768
3154
|
if (data || arraybuffer) {
|
|
2769
|
-
buffer = v.buffer;
|
|
2770
3155
|
if (data) {
|
|
3156
|
+
data >>>= 0;
|
|
2771
3157
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2772
3158
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
2773
3159
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2774
3160
|
}
|
|
2775
3161
|
if (arraybuffer) {
|
|
3162
|
+
arraybuffer >>>= 0;
|
|
2776
3163
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2777
|
-
var ab = envObject.ensureHandleId(buffer);
|
|
3164
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
2778
3165
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
2779
3166
|
}
|
|
2780
3167
|
}
|
|
2781
3168
|
if (byte_offset) {
|
|
3169
|
+
byte_offset >>>= 0;
|
|
2782
3170
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
2783
3171
|
}
|
|
2784
3172
|
return envObject.clearLastError();
|
|
@@ -2817,26 +3205,28 @@ function createNapiModule(options) {
|
|
|
2817
3205
|
if (!handle.isDataView()) {
|
|
2818
3206
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2819
3207
|
}
|
|
2820
|
-
var v = handle.value;
|
|
3208
|
+
var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
|
|
2821
3209
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2822
3210
|
if (byte_length) {
|
|
3211
|
+
byte_length >>>= 0;
|
|
2823
3212
|
HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
|
|
2824
3213
|
}
|
|
2825
|
-
var buffer;
|
|
2826
3214
|
if (data || arraybuffer) {
|
|
2827
|
-
buffer = v.buffer;
|
|
2828
3215
|
if (data) {
|
|
3216
|
+
data >>>= 0;
|
|
2829
3217
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2830
3218
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
2831
3219
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2832
3220
|
}
|
|
2833
3221
|
if (arraybuffer) {
|
|
3222
|
+
arraybuffer >>>= 0;
|
|
2834
3223
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2835
|
-
var ab = envObject.ensureHandleId(buffer);
|
|
3224
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
2836
3225
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
2837
3226
|
}
|
|
2838
3227
|
}
|
|
2839
3228
|
if (byte_offset) {
|
|
3229
|
+
byte_offset >>>= 0;
|
|
2840
3230
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
2841
3231
|
}
|
|
2842
3232
|
return envObject.clearLastError();
|
|
@@ -2866,6 +3256,7 @@ function createNapiModule(options) {
|
|
|
2866
3256
|
if (!handle.isDate()) {
|
|
2867
3257
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2868
3258
|
}
|
|
3259
|
+
result >>>= 0;
|
|
2869
3260
|
v = handle.value.valueOf();
|
|
2870
3261
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2871
3262
|
HEAP_DATA_VIEW.setFloat64(result, v, true);
|
|
@@ -2893,6 +3284,7 @@ function createNapiModule(options) {
|
|
|
2893
3284
|
if (typeof handle.value !== 'boolean') {
|
|
2894
3285
|
return envObject.setLastError(7 /* napi_status.napi_boolean_expected */);
|
|
2895
3286
|
}
|
|
3287
|
+
result >>>= 0;
|
|
2896
3288
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2897
3289
|
var r = handle.value ? 1 : 0;
|
|
2898
3290
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2916,6 +3308,7 @@ function createNapiModule(options) {
|
|
|
2916
3308
|
if (typeof handle.value !== 'number') {
|
|
2917
3309
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
2918
3310
|
}
|
|
3311
|
+
result >>>= 0;
|
|
2919
3312
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2920
3313
|
var r = handle.value;
|
|
2921
3314
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -2945,6 +3338,8 @@ function createNapiModule(options) {
|
|
|
2945
3338
|
if (typeof numberValue !== 'bigint') {
|
|
2946
3339
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
2947
3340
|
}
|
|
3341
|
+
lossless >>>= 0;
|
|
3342
|
+
result >>>= 0;
|
|
2948
3343
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2949
3344
|
if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
|
|
2950
3345
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -2987,6 +3382,8 @@ function createNapiModule(options) {
|
|
|
2987
3382
|
if (typeof numberValue !== 'bigint') {
|
|
2988
3383
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
2989
3384
|
}
|
|
3385
|
+
lossless >>>= 0;
|
|
3386
|
+
result >>>= 0;
|
|
2990
3387
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2991
3388
|
if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
|
|
2992
3389
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -3024,8 +3421,12 @@ function createNapiModule(options) {
|
|
|
3024
3421
|
return envObject.setLastError(17 /* napi_status.napi_bigint_expected */);
|
|
3025
3422
|
}
|
|
3026
3423
|
var isMinus = handle.value < BigInt(0);
|
|
3424
|
+
sign_bit >>>= 0;
|
|
3425
|
+
words >>>= 0;
|
|
3426
|
+
word_count >>>= 0;
|
|
3027
3427
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3028
3428
|
var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
|
|
3429
|
+
word_count_int >>>= 0;
|
|
3029
3430
|
var wordCount = 0;
|
|
3030
3431
|
var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
3031
3432
|
while (bigintValue !== BigInt(0)) {
|
|
@@ -3079,6 +3480,7 @@ function createNapiModule(options) {
|
|
|
3079
3480
|
if (!handle.isExternal()) {
|
|
3080
3481
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3081
3482
|
}
|
|
3483
|
+
result >>>= 0;
|
|
3082
3484
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3083
3485
|
var p = handle.data();
|
|
3084
3486
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3102,6 +3504,7 @@ function createNapiModule(options) {
|
|
|
3102
3504
|
if (typeof handle.value !== 'number') {
|
|
3103
3505
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3104
3506
|
}
|
|
3507
|
+
result >>>= 0;
|
|
3105
3508
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3106
3509
|
var v = new Int32Array([handle.value])[0];
|
|
3107
3510
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3126,6 +3529,7 @@ function createNapiModule(options) {
|
|
|
3126
3529
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3127
3530
|
}
|
|
3128
3531
|
var numberValue = handle.value;
|
|
3532
|
+
result >>>= 0;
|
|
3129
3533
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3130
3534
|
if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
|
|
3131
3535
|
HEAP_DATA_VIEW.setInt32(result, 0, true);
|
|
@@ -3155,6 +3559,9 @@ function createNapiModule(options) {
|
|
|
3155
3559
|
envObject.checkGCAccess();
|
|
3156
3560
|
if (!value)
|
|
3157
3561
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3562
|
+
result >>>= 0;
|
|
3563
|
+
buf >>>= 0;
|
|
3564
|
+
buf_size >>>= 0;
|
|
3158
3565
|
buf_size = buf_size >>> 0;
|
|
3159
3566
|
var handle = emnapiCtx.handleStore.get(value);
|
|
3160
3567
|
if (typeof handle.value !== 'string') {
|
|
@@ -3197,6 +3604,9 @@ function createNapiModule(options) {
|
|
|
3197
3604
|
envObject.checkGCAccess();
|
|
3198
3605
|
if (!value)
|
|
3199
3606
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3607
|
+
result >>>= 0;
|
|
3608
|
+
buf >>>= 0;
|
|
3609
|
+
buf_size >>>= 0;
|
|
3200
3610
|
buf_size = buf_size >>> 0;
|
|
3201
3611
|
var handle = emnapiCtx.handleStore.get(value);
|
|
3202
3612
|
if (typeof handle.value !== 'string') {
|
|
@@ -3233,6 +3643,9 @@ function createNapiModule(options) {
|
|
|
3233
3643
|
envObject.checkGCAccess();
|
|
3234
3644
|
if (!value)
|
|
3235
3645
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3646
|
+
result >>>= 0;
|
|
3647
|
+
buf >>>= 0;
|
|
3648
|
+
buf_size >>>= 0;
|
|
3236
3649
|
buf_size = buf_size >>> 0;
|
|
3237
3650
|
var handle = emnapiCtx.handleStore.get(value);
|
|
3238
3651
|
if (typeof handle.value !== 'string') {
|
|
@@ -3273,6 +3686,7 @@ function createNapiModule(options) {
|
|
|
3273
3686
|
if (typeof handle.value !== 'number') {
|
|
3274
3687
|
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3275
3688
|
}
|
|
3689
|
+
result >>>= 0;
|
|
3276
3690
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3277
3691
|
var v = new Uint32Array([handle.value])[0];
|
|
3278
3692
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3313,6 +3727,7 @@ function createNapiModule(options) {
|
|
|
3313
3727
|
envObject.checkGCAccess();
|
|
3314
3728
|
if (!result)
|
|
3315
3729
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3730
|
+
result >>>= 0;
|
|
3316
3731
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3317
3732
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
3318
3733
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3330,6 +3745,7 @@ function createNapiModule(options) {
|
|
|
3330
3745
|
envObject.checkGCAccess();
|
|
3331
3746
|
if (!result)
|
|
3332
3747
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3748
|
+
result >>>= 0;
|
|
3333
3749
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3334
3750
|
var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
|
|
3335
3751
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3351,6 +3767,7 @@ function createNapiModule(options) {
|
|
|
3351
3767
|
value = Number(low);
|
|
3352
3768
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3353
3769
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3770
|
+
high >>>= 0;
|
|
3354
3771
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3355
3772
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3356
3773
|
return envObject.clearLastError();
|
|
@@ -3366,6 +3783,7 @@ function createNapiModule(options) {
|
|
|
3366
3783
|
envObject.checkGCAccess();
|
|
3367
3784
|
if (!result)
|
|
3368
3785
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3786
|
+
result >>>= 0;
|
|
3369
3787
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3370
3788
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
3371
3789
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3466,6 +3884,7 @@ function createNapiModule(options) {
|
|
|
3466
3884
|
value = low;
|
|
3467
3885
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3468
3886
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3887
|
+
high >>>= 0;
|
|
3469
3888
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3470
3889
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3471
3890
|
return envObject.clearLastError();
|
|
@@ -3488,6 +3907,7 @@ function createNapiModule(options) {
|
|
|
3488
3907
|
value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
3489
3908
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3490
3909
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3910
|
+
high >>>= 0;
|
|
3491
3911
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3492
3912
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3493
3913
|
return envObject.clearLastError();
|
|
@@ -3514,6 +3934,8 @@ function createNapiModule(options) {
|
|
|
3514
3934
|
}
|
|
3515
3935
|
if (!result)
|
|
3516
3936
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3937
|
+
words >>>= 0;
|
|
3938
|
+
word_count >>>= 0;
|
|
3517
3939
|
word_count = word_count >>> 0;
|
|
3518
3940
|
if (word_count > 2147483647) {
|
|
3519
3941
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
@@ -3530,6 +3952,7 @@ function createNapiModule(options) {
|
|
|
3530
3952
|
value += wordi << BigInt(64 * i);
|
|
3531
3953
|
}
|
|
3532
3954
|
value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
|
|
3955
|
+
result >>>= 0;
|
|
3533
3956
|
v = emnapiCtx.addToCurrentScope(value).id;
|
|
3534
3957
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
3535
3958
|
return envObject.getReturnStatus();
|
|
@@ -3558,6 +3981,7 @@ function createNapiModule(options) {
|
|
|
3558
3981
|
node_api_create_property_key_utf8: node_api_create_property_key_utf8
|
|
3559
3982
|
});
|
|
3560
3983
|
function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
|
|
3984
|
+
utf8name >>>= 0;
|
|
3561
3985
|
var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
|
|
3562
3986
|
var f;
|
|
3563
3987
|
var napiCallback = (wasmTable.get(cb));
|
|
@@ -3700,6 +4124,7 @@ function createNapiModule(options) {
|
|
|
3700
4124
|
if (!finalize_cb)
|
|
3701
4125
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3702
4126
|
reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1 /* ReferenceOwnership.kUserland */, finalize_cb, native_object, finalize_hint);
|
|
4127
|
+
result >>>= 0;
|
|
3703
4128
|
referenceId = reference.id;
|
|
3704
4129
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3705
4130
|
HEAP_DATA_VIEW.setUint32(result, referenceId, true);
|
|
@@ -3750,6 +4175,7 @@ function createNapiModule(options) {
|
|
|
3750
4175
|
if (!ref)
|
|
3751
4176
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3752
4177
|
if (result) {
|
|
4178
|
+
result >>>= 0;
|
|
3753
4179
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3754
4180
|
data = ref.data();
|
|
3755
4181
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3793,12 +4219,15 @@ function createNapiModule(options) {
|
|
|
3793
4219
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3794
4220
|
if (!constructor)
|
|
3795
4221
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4222
|
+
length >>>= 0;
|
|
4223
|
+
properties >>>= 0;
|
|
4224
|
+
property_count >>>= 0;
|
|
3796
4225
|
property_count = property_count >>> 0;
|
|
3797
4226
|
if (property_count > 0) {
|
|
3798
4227
|
if (!properties)
|
|
3799
4228
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3800
4229
|
}
|
|
3801
|
-
if ((length
|
|
4230
|
+
if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
|
|
3802
4231
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3803
4232
|
}
|
|
3804
4233
|
var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
|
|
@@ -3817,6 +4246,7 @@ function createNapiModule(options) {
|
|
|
3817
4246
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
3818
4247
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
3819
4248
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
4249
|
+
attributes >>>= 0;
|
|
3820
4250
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
3821
4251
|
if (utf8Name) {
|
|
3822
4252
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -3839,6 +4269,7 @@ function createNapiModule(options) {
|
|
|
3839
4269
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3840
4270
|
var valueHandle = emnapiCtx.addToCurrentScope(F);
|
|
3841
4271
|
valueHandleId = valueHandle.id;
|
|
4272
|
+
result >>>= 0;
|
|
3842
4273
|
HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
|
|
3843
4274
|
return envObject.getReturnStatus();
|
|
3844
4275
|
}
|
|
@@ -3887,6 +4318,7 @@ function createNapiModule(options) {
|
|
|
3887
4318
|
if (!(value.isObject() || value.isFunction())) {
|
|
3888
4319
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
|
|
3889
4320
|
}
|
|
4321
|
+
type_tag >>>= 0;
|
|
3890
4322
|
if (!type_tag) {
|
|
3891
4323
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
3892
4324
|
}
|
|
@@ -3936,6 +4368,7 @@ function createNapiModule(options) {
|
|
|
3936
4368
|
}
|
|
3937
4369
|
var binding = envObject.getObjectBinding(value.value);
|
|
3938
4370
|
if (binding.tag !== null) {
|
|
4371
|
+
type_tag >>>= 0;
|
|
3939
4372
|
var tag = binding.tag;
|
|
3940
4373
|
var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
|
|
3941
4374
|
ret = (tag[0] === typeTag[0] &&
|
|
@@ -3946,6 +4379,7 @@ function createNapiModule(options) {
|
|
|
3946
4379
|
else {
|
|
3947
4380
|
ret = false;
|
|
3948
4381
|
}
|
|
4382
|
+
result >>>= 0;
|
|
3949
4383
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3950
4384
|
HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
|
|
3951
4385
|
return envObject.getReturnStatus();
|
|
@@ -3977,8 +4411,12 @@ function createNapiModule(options) {
|
|
|
3977
4411
|
}
|
|
3978
4412
|
var handle = handleResult.handle;
|
|
3979
4413
|
var ownership = !result ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
|
|
4414
|
+
finalize_data >>>= 0;
|
|
4415
|
+
finalize_cb >>>= 0;
|
|
4416
|
+
finalize_hint >>>= 0;
|
|
3980
4417
|
var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
|
|
3981
4418
|
if (result) {
|
|
4419
|
+
result >>>= 0;
|
|
3982
4420
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3983
4421
|
var referenceId = reference.id;
|
|
3984
4422
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4026,6 +4464,9 @@ function createNapiModule(options) {
|
|
|
4026
4464
|
try {
|
|
4027
4465
|
if (!result)
|
|
4028
4466
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4467
|
+
byte_length >>>= 0;
|
|
4468
|
+
external_data >>>= 0;
|
|
4469
|
+
result >>>= 0;
|
|
4029
4470
|
byte_length = byte_length >>> 0;
|
|
4030
4471
|
if (!external_data) {
|
|
4031
4472
|
byte_length = 0;
|
|
@@ -4145,7 +4586,7 @@ function createNapiModule(options) {
|
|
|
4145
4586
|
var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
|
|
4146
4587
|
if (!pointer)
|
|
4147
4588
|
throw new Error('Unknown ArrayBuffer address');
|
|
4148
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4589
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
4149
4590
|
len = arrayBufferOrView.byteLength - offset;
|
|
4150
4591
|
}
|
|
4151
4592
|
len = len >>> 0;
|
|
@@ -4167,7 +4608,7 @@ function createNapiModule(options) {
|
|
|
4167
4608
|
var pointer = viewPointerInfo.address;
|
|
4168
4609
|
if (!pointer)
|
|
4169
4610
|
throw new Error('Unknown ArrayBuffer address');
|
|
4170
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4611
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
4171
4612
|
len = latestView.byteLength - offset;
|
|
4172
4613
|
}
|
|
4173
4614
|
len = len >>> 0;
|
|
@@ -4204,6 +4645,9 @@ function createNapiModule(options) {
|
|
|
4204
4645
|
try {
|
|
4205
4646
|
if (!arraybuffer_or_view)
|
|
4206
4647
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4648
|
+
arraybuffer_or_view >>>= 0;
|
|
4649
|
+
offset >>>= 0;
|
|
4650
|
+
len >>>= 0;
|
|
4207
4651
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4208
4652
|
var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
|
|
4209
4653
|
var handle = envObject.ctx.handleStore.get(handleId);
|
|
@@ -4212,6 +4656,7 @@ function createNapiModule(options) {
|
|
|
4212
4656
|
}
|
|
4213
4657
|
var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
|
|
4214
4658
|
if (handle.value !== ret) {
|
|
4659
|
+
arraybuffer_or_view >>>= 0;
|
|
4215
4660
|
v = envObject.ensureHandleId(ret);
|
|
4216
4661
|
HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
|
|
4217
4662
|
}
|
|
@@ -4270,13 +4715,16 @@ function createNapiModule(options) {
|
|
|
4270
4715
|
p = info.address;
|
|
4271
4716
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4272
4717
|
if (address) {
|
|
4718
|
+
address >>>= 0;
|
|
4273
4719
|
HEAP_DATA_VIEW.setUint32(address, p, true);
|
|
4274
4720
|
}
|
|
4275
4721
|
if (ownership) {
|
|
4722
|
+
ownership >>>= 0;
|
|
4276
4723
|
ownershipOut = info.ownership;
|
|
4277
4724
|
HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
|
|
4278
4725
|
}
|
|
4279
4726
|
if (runtime_allocated) {
|
|
4727
|
+
runtime_allocated >>>= 0;
|
|
4280
4728
|
runtimeAllocated = info.runtimeAllocated;
|
|
4281
4729
|
HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
|
|
4282
4730
|
}
|
|
@@ -4306,6 +4754,7 @@ function createNapiModule(options) {
|
|
|
4306
4754
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4307
4755
|
var versions = runtimeVersion.split('.')
|
|
4308
4756
|
.map(function (n) { return Number(n); });
|
|
4757
|
+
version >>>= 0;
|
|
4309
4758
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4310
4759
|
HEAP_DATA_VIEW.setUint32(version, versions[0], true);
|
|
4311
4760
|
HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
|
|
@@ -4335,6 +4784,7 @@ function createNapiModule(options) {
|
|
|
4335
4784
|
envObject.checkGCAccess();
|
|
4336
4785
|
if (!result)
|
|
4337
4786
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4787
|
+
result >>>= 0;
|
|
4338
4788
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4339
4789
|
var value = emnapiCtx.addToCurrentScope([]).id;
|
|
4340
4790
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4352,6 +4802,8 @@ function createNapiModule(options) {
|
|
|
4352
4802
|
envObject.checkGCAccess();
|
|
4353
4803
|
if (!result)
|
|
4354
4804
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4805
|
+
length >>>= 0;
|
|
4806
|
+
result >>>= 0;
|
|
4355
4807
|
length = length >>> 0;
|
|
4356
4808
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4357
4809
|
var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
|
|
@@ -4360,9 +4812,11 @@ function createNapiModule(options) {
|
|
|
4360
4812
|
return envObject.clearLastError();
|
|
4361
4813
|
}
|
|
4362
4814
|
function emnapiCreateArrayBuffer(byte_length, data, shared) {
|
|
4815
|
+
byte_length >>>= 0;
|
|
4363
4816
|
byte_length = byte_length >>> 0;
|
|
4364
4817
|
var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
|
|
4365
4818
|
if (data) {
|
|
4819
|
+
data >>>= 0;
|
|
4366
4820
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4367
4821
|
var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
|
|
4368
4822
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4389,6 +4843,7 @@ function createNapiModule(options) {
|
|
|
4389
4843
|
try {
|
|
4390
4844
|
if (!result)
|
|
4391
4845
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4846
|
+
result >>>= 0;
|
|
4392
4847
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
|
|
4393
4848
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
4394
4849
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4419,6 +4874,7 @@ function createNapiModule(options) {
|
|
|
4419
4874
|
try {
|
|
4420
4875
|
if (!result)
|
|
4421
4876
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4877
|
+
result >>>= 0;
|
|
4422
4878
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
|
|
4423
4879
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
4424
4880
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4449,6 +4905,7 @@ function createNapiModule(options) {
|
|
|
4449
4905
|
try {
|
|
4450
4906
|
if (!result)
|
|
4451
4907
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4908
|
+
result >>>= 0;
|
|
4452
4909
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4453
4910
|
value = emnapiCtx.addToCurrentScope(new Date(time)).id;
|
|
4454
4911
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4486,6 +4943,7 @@ function createNapiModule(options) {
|
|
|
4486
4943
|
if (finalize_cb) {
|
|
4487
4944
|
emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0 /* ReferenceOwnership.kRuntime */, finalize_cb, data, finalize_hint);
|
|
4488
4945
|
}
|
|
4946
|
+
result >>>= 0;
|
|
4489
4947
|
value = externalHandle.id;
|
|
4490
4948
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4491
4949
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4515,6 +4973,9 @@ function createNapiModule(options) {
|
|
|
4515
4973
|
try {
|
|
4516
4974
|
if (!result)
|
|
4517
4975
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4976
|
+
byte_length >>>= 0;
|
|
4977
|
+
external_data >>>= 0;
|
|
4978
|
+
result >>>= 0;
|
|
4518
4979
|
byte_length = byte_length >>> 0;
|
|
4519
4980
|
if (!external_data) {
|
|
4520
4981
|
byte_length = 0;
|
|
@@ -4576,6 +5037,7 @@ function createNapiModule(options) {
|
|
|
4576
5037
|
envObject.checkGCAccess();
|
|
4577
5038
|
if (!result)
|
|
4578
5039
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5040
|
+
result >>>= 0;
|
|
4579
5041
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4580
5042
|
var value = emnapiCtx.addToCurrentScope({}).id;
|
|
4581
5043
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4585,7 +5047,7 @@ function createNapiModule(options) {
|
|
|
4585
5047
|
/**
|
|
4586
5048
|
* @__sig ipppppp
|
|
4587
5049
|
*/
|
|
4588
|
-
function
|
|
5050
|
+
function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
|
|
4589
5051
|
if (!env)
|
|
4590
5052
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
4591
5053
|
// @ts-expect-error
|
|
@@ -4593,6 +5055,7 @@ function createNapiModule(options) {
|
|
|
4593
5055
|
envObject.checkGCAccess();
|
|
4594
5056
|
if (!result)
|
|
4595
5057
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5058
|
+
property_count >>>= 0;
|
|
4596
5059
|
property_count = property_count >>> 0;
|
|
4597
5060
|
if (property_count > 0) {
|
|
4598
5061
|
if (!property_names)
|
|
@@ -4604,6 +5067,8 @@ function createNapiModule(options) {
|
|
|
4604
5067
|
? emnapiCtx.handleStore.get(prototype_or_null).value
|
|
4605
5068
|
: null;
|
|
4606
5069
|
var properties = {};
|
|
5070
|
+
property_names >>>= 0;
|
|
5071
|
+
property_values >>>= 0;
|
|
4607
5072
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4608
5073
|
for (var i = 0; i < property_count; i++) {
|
|
4609
5074
|
var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
|
|
@@ -4625,6 +5090,7 @@ function createNapiModule(options) {
|
|
|
4625
5090
|
}
|
|
4626
5091
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4627
5092
|
var value = emnapiCtx.addToCurrentScope(obj).id;
|
|
5093
|
+
result >>>= 0;
|
|
4628
5094
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4629
5095
|
return envObject.clearLastError();
|
|
4630
5096
|
}
|
|
@@ -4639,6 +5105,7 @@ function createNapiModule(options) {
|
|
|
4639
5105
|
envObject.checkGCAccess();
|
|
4640
5106
|
if (!result)
|
|
4641
5107
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5108
|
+
result >>>= 0;
|
|
4642
5109
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4643
5110
|
if (!description) {
|
|
4644
5111
|
// eslint-disable-next-line symbol-description, @typescript-eslint/no-unused-vars
|
|
@@ -4683,6 +5150,8 @@ function createNapiModule(options) {
|
|
|
4683
5150
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4684
5151
|
}
|
|
4685
5152
|
var buffer = handle.value;
|
|
5153
|
+
byte_offset >>>= 0;
|
|
5154
|
+
length >>>= 0;
|
|
4686
5155
|
var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
|
|
4687
5156
|
var _a;
|
|
4688
5157
|
byte_offset = byte_offset >>> 0;
|
|
@@ -4713,6 +5182,7 @@ function createNapiModule(options) {
|
|
|
4713
5182
|
});
|
|
4714
5183
|
}
|
|
4715
5184
|
}
|
|
5185
|
+
result >>>= 0;
|
|
4716
5186
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4717
5187
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4718
5188
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4781,7 +5251,9 @@ function createNapiModule(options) {
|
|
|
4781
5251
|
if (!Buffer) {
|
|
4782
5252
|
throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
|
|
4783
5253
|
}
|
|
5254
|
+
result >>>= 0;
|
|
4784
5255
|
var buffer = void 0;
|
|
5256
|
+
size >>>= 0;
|
|
4785
5257
|
size = size >>> 0;
|
|
4786
5258
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4787
5259
|
if (!data || (size === 0)) {
|
|
@@ -4793,6 +5265,7 @@ function createNapiModule(options) {
|
|
|
4793
5265
|
pointer = _malloc(size);
|
|
4794
5266
|
if (!pointer)
|
|
4795
5267
|
throw new Error('Out of memory');
|
|
5268
|
+
pointer >>>= 0;
|
|
4796
5269
|
new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
|
|
4797
5270
|
var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
|
|
4798
5271
|
var viewDescriptor = {
|
|
@@ -4806,6 +5279,7 @@ function createNapiModule(options) {
|
|
|
4806
5279
|
(_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
|
|
4807
5280
|
value = emnapiCtx.addToCurrentScope(buffer_1).id;
|
|
4808
5281
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5282
|
+
data >>>= 0;
|
|
4809
5283
|
HEAP_DATA_VIEW.setUint32(data, pointer, true);
|
|
4810
5284
|
}
|
|
4811
5285
|
return envObject.getReturnStatus();
|
|
@@ -4840,8 +5314,11 @@ function createNapiModule(options) {
|
|
|
4840
5314
|
}
|
|
4841
5315
|
var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
|
|
4842
5316
|
var buffer = Buffer.from(arrayBuffer);
|
|
5317
|
+
data >>>= 0;
|
|
5318
|
+
length >>>= 0;
|
|
4843
5319
|
buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
|
|
4844
5320
|
value = emnapiCtx.addToCurrentScope(buffer).id;
|
|
5321
|
+
result >>>= 0;
|
|
4845
5322
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4846
5323
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4847
5324
|
return envObject.getReturnStatus();
|
|
@@ -4878,6 +5355,8 @@ function createNapiModule(options) {
|
|
|
4878
5355
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4879
5356
|
if (!result)
|
|
4880
5357
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5358
|
+
byte_offset >>>= 0;
|
|
5359
|
+
byte_length >>>= 0;
|
|
4881
5360
|
byte_offset = byte_offset >>> 0;
|
|
4882
5361
|
byte_length = byte_length >>> 0;
|
|
4883
5362
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
@@ -4906,6 +5385,7 @@ function createNapiModule(options) {
|
|
|
4906
5385
|
});
|
|
4907
5386
|
}
|
|
4908
5387
|
}
|
|
5388
|
+
result >>>= 0;
|
|
4909
5389
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4910
5390
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4911
5391
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4936,6 +5416,8 @@ function createNapiModule(options) {
|
|
|
4936
5416
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4937
5417
|
if (!result)
|
|
4938
5418
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5419
|
+
byte_length >>>= 0;
|
|
5420
|
+
byte_offset >>>= 0;
|
|
4939
5421
|
byte_length = byte_length >>> 0;
|
|
4940
5422
|
byte_offset = byte_offset >>> 0;
|
|
4941
5423
|
var value = emnapiCtx.handleStore.get(arraybuffer).value;
|
|
@@ -4957,6 +5439,7 @@ function createNapiModule(options) {
|
|
|
4957
5439
|
});
|
|
4958
5440
|
}
|
|
4959
5441
|
}
|
|
5442
|
+
result >>>= 0;
|
|
4960
5443
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4961
5444
|
var v = emnapiCtx.addToCurrentScope(dataview).id;
|
|
4962
5445
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -4986,7 +5469,10 @@ function createNapiModule(options) {
|
|
|
4986
5469
|
envObject.checkGCAccess();
|
|
4987
5470
|
if (!result)
|
|
4988
5471
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4989
|
-
|
|
5472
|
+
length >>>= 0;
|
|
5473
|
+
utf8description >>>= 0;
|
|
5474
|
+
result >>>= 0;
|
|
5475
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
4990
5476
|
var sizelength = length >>> 0;
|
|
4991
5477
|
if (length !== 0) {
|
|
4992
5478
|
if (!utf8description)
|
|
@@ -5015,10 +5501,10 @@ function createNapiModule(options) {
|
|
|
5015
5501
|
napi_create_external_arraybuffer: napi_create_external_arraybuffer,
|
|
5016
5502
|
napi_create_external_buffer: napi_create_external_buffer,
|
|
5017
5503
|
napi_create_object: napi_create_object,
|
|
5018
|
-
napi_create_object_with_properties: napi_create_object_with_properties,
|
|
5019
5504
|
napi_create_symbol: napi_create_symbol,
|
|
5020
5505
|
napi_create_typedarray: napi_create_typedarray,
|
|
5021
5506
|
node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
|
|
5507
|
+
node_api_create_object_with_properties: node_api_create_object_with_properties,
|
|
5022
5508
|
node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
|
|
5023
5509
|
node_api_symbol_for: node_api_symbol_for
|
|
5024
5510
|
});
|
|
@@ -5031,6 +5517,7 @@ function createNapiModule(options) {
|
|
|
5031
5517
|
envObject.checkGCAccess();
|
|
5032
5518
|
if (!result)
|
|
5033
5519
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5520
|
+
result >>>= 0;
|
|
5034
5521
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5035
5522
|
var v = value === 0 ? 3 /* GlobalHandle.FALSE */ : 4 /* GlobalHandle.TRUE */;
|
|
5036
5523
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5046,6 +5533,7 @@ function createNapiModule(options) {
|
|
|
5046
5533
|
envObject.checkGCAccess();
|
|
5047
5534
|
if (!result)
|
|
5048
5535
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5536
|
+
result >>>= 0;
|
|
5049
5537
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5050
5538
|
var value = 5 /* GlobalHandle.GLOBAL */;
|
|
5051
5539
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5061,6 +5549,7 @@ function createNapiModule(options) {
|
|
|
5061
5549
|
envObject.checkGCAccess();
|
|
5062
5550
|
if (!result)
|
|
5063
5551
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5552
|
+
result >>>= 0;
|
|
5064
5553
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5065
5554
|
var value = 2 /* GlobalHandle.NULL */;
|
|
5066
5555
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5076,6 +5565,7 @@ function createNapiModule(options) {
|
|
|
5076
5565
|
envObject.checkGCAccess();
|
|
5077
5566
|
if (!result)
|
|
5078
5567
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5568
|
+
result >>>= 0;
|
|
5079
5569
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5080
5570
|
var value = 1 /* GlobalHandle.UNDEFINED */;
|
|
5081
5571
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5094,6 +5584,9 @@ function createNapiModule(options) {
|
|
|
5094
5584
|
if (!env)
|
|
5095
5585
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
5096
5586
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5587
|
+
data >>>= 0;
|
|
5588
|
+
finalize_cb >>>= 0;
|
|
5589
|
+
finalize_hint >>>= 0;
|
|
5097
5590
|
envObject.setInstanceData(data, finalize_cb, finalize_hint);
|
|
5098
5591
|
return envObject.clearLastError();
|
|
5099
5592
|
}
|
|
@@ -5104,6 +5597,7 @@ function createNapiModule(options) {
|
|
|
5104
5597
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5105
5598
|
if (!data)
|
|
5106
5599
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5600
|
+
data >>>= 0;
|
|
5107
5601
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5108
5602
|
var value = envObject.getInstanceData();
|
|
5109
5603
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5117,6 +5611,9 @@ function createNapiModule(options) {
|
|
|
5117
5611
|
});
|
|
5118
5612
|
/** @__sig vpppp */
|
|
5119
5613
|
function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
|
|
5614
|
+
error_code >>>= 0;
|
|
5615
|
+
engine_error_code >>>= 0;
|
|
5616
|
+
engine_reserved >>>= 0;
|
|
5120
5617
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5121
5618
|
var lastError = envObject.lastError;
|
|
5122
5619
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -5125,6 +5622,7 @@ function createNapiModule(options) {
|
|
|
5125
5622
|
var engineErrorCode = lastError.engineErrorCode >>> 0;
|
|
5126
5623
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5127
5624
|
var engineReserved = lastError.engineReserved;
|
|
5625
|
+
engineReserved >>>= 0;
|
|
5128
5626
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5129
5627
|
HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
|
|
5130
5628
|
HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
|
|
@@ -5168,6 +5666,8 @@ function createNapiModule(options) {
|
|
|
5168
5666
|
try {
|
|
5169
5667
|
if (!msg)
|
|
5170
5668
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5669
|
+
code >>>= 0;
|
|
5670
|
+
msg >>>= 0;
|
|
5171
5671
|
var error = new Error(emnapiString.UTF8ToString(msg, -1));
|
|
5172
5672
|
if (code)
|
|
5173
5673
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -5194,6 +5694,8 @@ function createNapiModule(options) {
|
|
|
5194
5694
|
try {
|
|
5195
5695
|
if (!msg)
|
|
5196
5696
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5697
|
+
code >>>= 0;
|
|
5698
|
+
msg >>>= 0;
|
|
5197
5699
|
var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
|
|
5198
5700
|
if (code)
|
|
5199
5701
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -5220,6 +5722,8 @@ function createNapiModule(options) {
|
|
|
5220
5722
|
try {
|
|
5221
5723
|
if (!msg)
|
|
5222
5724
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5725
|
+
code >>>= 0;
|
|
5726
|
+
msg >>>= 0;
|
|
5223
5727
|
var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
|
|
5224
5728
|
if (code)
|
|
5225
5729
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -5246,6 +5750,8 @@ function createNapiModule(options) {
|
|
|
5246
5750
|
try {
|
|
5247
5751
|
if (!msg)
|
|
5248
5752
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5753
|
+
code >>>= 0;
|
|
5754
|
+
msg >>>= 0;
|
|
5249
5755
|
var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
|
|
5250
5756
|
if (code)
|
|
5251
5757
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -5268,6 +5774,7 @@ function createNapiModule(options) {
|
|
|
5268
5774
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5269
5775
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5270
5776
|
var r = envObject.tryCatch.hasCaught();
|
|
5777
|
+
result >>>= 0;
|
|
5271
5778
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5272
5779
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
5273
5780
|
return envObject.clearLastError();
|
|
@@ -5295,6 +5802,7 @@ function createNapiModule(options) {
|
|
|
5295
5802
|
}
|
|
5296
5803
|
error.code = codeValue;
|
|
5297
5804
|
}
|
|
5805
|
+
result >>>= 0;
|
|
5298
5806
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5299
5807
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
5300
5808
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5324,6 +5832,7 @@ function createNapiModule(options) {
|
|
|
5324
5832
|
}
|
|
5325
5833
|
error.code = codeValue;
|
|
5326
5834
|
}
|
|
5835
|
+
result >>>= 0;
|
|
5327
5836
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5328
5837
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
5329
5838
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5353,6 +5862,7 @@ function createNapiModule(options) {
|
|
|
5353
5862
|
}
|
|
5354
5863
|
error.code = codeValue;
|
|
5355
5864
|
}
|
|
5865
|
+
result >>>= 0;
|
|
5356
5866
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5357
5867
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
5358
5868
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5382,6 +5892,7 @@ function createNapiModule(options) {
|
|
|
5382
5892
|
}
|
|
5383
5893
|
error.code = codeValue;
|
|
5384
5894
|
}
|
|
5895
|
+
result >>>= 0;
|
|
5385
5896
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5386
5897
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
5387
5898
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5397,6 +5908,7 @@ function createNapiModule(options) {
|
|
|
5397
5908
|
envObject.checkGCAccess();
|
|
5398
5909
|
if (!result)
|
|
5399
5910
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5911
|
+
result >>>= 0;
|
|
5400
5912
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5401
5913
|
if (!envObject.tryCatch.hasCaught()) {
|
|
5402
5914
|
HEAP_DATA_VIEW.setUint32(result, 1, true); // ID_UNDEFINED
|
|
@@ -5413,6 +5925,10 @@ function createNapiModule(options) {
|
|
|
5413
5925
|
}
|
|
5414
5926
|
/** @__sig vpppp */
|
|
5415
5927
|
function napi_fatal_error(location, location_len, message, message_len) {
|
|
5928
|
+
location >>>= 0;
|
|
5929
|
+
location_len >>>= 0;
|
|
5930
|
+
message >>>= 0;
|
|
5931
|
+
message_len >>>= 0;
|
|
5416
5932
|
var locationStr = emnapiString.UTF8ToString(location, location_len);
|
|
5417
5933
|
var messageStr = emnapiString.UTF8ToString(message, message_len);
|
|
5418
5934
|
if (emnapiNodeBinding) {
|
|
@@ -5469,9 +5985,23 @@ function createNapiModule(options) {
|
|
|
5469
5985
|
node_api_throw_syntax_error: node_api_throw_syntax_error
|
|
5470
5986
|
});
|
|
5471
5987
|
/** @__sig ipppppp */
|
|
5472
|
-
function
|
|
5988
|
+
function _emnapi_create_function(env, utf8name, length, cb, data, result) {
|
|
5989
|
+
length >>>= 0;
|
|
5990
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
5991
|
+
var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
|
|
5992
|
+
if (fresult.status !== 0 /* napi_status.napi_ok */)
|
|
5993
|
+
return envObject.setLastError(fresult.status);
|
|
5994
|
+
var f = fresult.f;
|
|
5995
|
+
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
5996
|
+
result >>>= 0;
|
|
5473
5997
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5474
|
-
var value;
|
|
5998
|
+
var value = valueHandle.id;
|
|
5999
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6000
|
+
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
6001
|
+
return envObject.getReturnStatus();
|
|
6002
|
+
}
|
|
6003
|
+
/** @__sig ipppppp */
|
|
6004
|
+
function napi_create_function(env, utf8name, length, cb, data, result) {
|
|
5475
6005
|
if (!env)
|
|
5476
6006
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
5477
6007
|
// @ts-expect-error
|
|
@@ -5487,15 +6017,7 @@ function createNapiModule(options) {
|
|
|
5487
6017
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5488
6018
|
if (!cb)
|
|
5489
6019
|
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();
|
|
6020
|
+
return _emnapi_create_function(env, utf8name, length, cb, data, result);
|
|
5499
6021
|
}
|
|
5500
6022
|
catch (err) {
|
|
5501
6023
|
envObject.tryCatch.setError(err);
|
|
@@ -5510,11 +6032,14 @@ function createNapiModule(options) {
|
|
|
5510
6032
|
if (!cbinfo)
|
|
5511
6033
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5512
6034
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
6035
|
+
argc >>>= 0;
|
|
6036
|
+
argv >>>= 0;
|
|
5513
6037
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5514
6038
|
if (argv) {
|
|
5515
6039
|
if (!argc)
|
|
5516
6040
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5517
6041
|
var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
|
|
6042
|
+
argcValue >>>= 0;
|
|
5518
6043
|
var len = cbinfoValue.args.length;
|
|
5519
6044
|
var arrlen = argcValue < len ? argcValue : len;
|
|
5520
6045
|
var i = 0;
|
|
@@ -5533,11 +6058,13 @@ function createNapiModule(options) {
|
|
|
5533
6058
|
HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
|
|
5534
6059
|
}
|
|
5535
6060
|
if (this_arg) {
|
|
6061
|
+
this_arg >>>= 0;
|
|
5536
6062
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5537
6063
|
var v = envObject.ensureHandleId(cbinfoValue.thiz);
|
|
5538
6064
|
HEAP_DATA_VIEW.setUint32(this_arg, v, true);
|
|
5539
6065
|
}
|
|
5540
6066
|
if (data) {
|
|
6067
|
+
data >>>= 0;
|
|
5541
6068
|
HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
|
|
5542
6069
|
}
|
|
5543
6070
|
return envObject.clearLastError();
|
|
@@ -5560,6 +6087,9 @@ function createNapiModule(options) {
|
|
|
5560
6087
|
try {
|
|
5561
6088
|
if (!recv)
|
|
5562
6089
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6090
|
+
argc >>>= 0;
|
|
6091
|
+
argv >>>= 0;
|
|
6092
|
+
result >>>= 0;
|
|
5563
6093
|
argc = argc >>> 0;
|
|
5564
6094
|
if (argc > 0) {
|
|
5565
6095
|
if (!argv)
|
|
@@ -5607,6 +6137,9 @@ function createNapiModule(options) {
|
|
|
5607
6137
|
try {
|
|
5608
6138
|
if (!constructor)
|
|
5609
6139
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6140
|
+
argc >>>= 0;
|
|
6141
|
+
argv >>>= 0;
|
|
6142
|
+
result >>>= 0;
|
|
5610
6143
|
argc = argc >>> 0;
|
|
5611
6144
|
if (argc > 0) {
|
|
5612
6145
|
if (!argv)
|
|
@@ -5659,8 +6192,10 @@ function createNapiModule(options) {
|
|
|
5659
6192
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5660
6193
|
if (!result)
|
|
5661
6194
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6195
|
+
result >>>= 0;
|
|
5662
6196
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
5663
6197
|
var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
|
|
6198
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unused-vars
|
|
5664
6199
|
var value = thiz == null || thiz.constructor == null
|
|
5665
6200
|
? 0
|
|
5666
6201
|
: thiz instanceof fn
|
|
@@ -5672,6 +6207,7 @@ function createNapiModule(options) {
|
|
|
5672
6207
|
}
|
|
5673
6208
|
var functionMod = /*#__PURE__*/ Object.freeze({
|
|
5674
6209
|
__proto__: null,
|
|
6210
|
+
_emnapi_create_function: _emnapi_create_function,
|
|
5675
6211
|
napi_call_function: napi_call_function,
|
|
5676
6212
|
napi_create_function: napi_create_function,
|
|
5677
6213
|
napi_get_cb_info: napi_get_cb_info,
|
|
@@ -5689,6 +6225,7 @@ function createNapiModule(options) {
|
|
|
5689
6225
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5690
6226
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5691
6227
|
var scope = emnapiCtx.openScope(envObject);
|
|
6228
|
+
result >>>= 0;
|
|
5692
6229
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5693
6230
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
5694
6231
|
return envObject.clearLastError();
|
|
@@ -5719,6 +6256,7 @@ function createNapiModule(options) {
|
|
|
5719
6256
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5720
6257
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5721
6258
|
var scope = emnapiCtx.openScope(envObject);
|
|
6259
|
+
result >>>= 0;
|
|
5722
6260
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5723
6261
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
5724
6262
|
return envObject.clearLastError();
|
|
@@ -5753,6 +6291,8 @@ function createNapiModule(options) {
|
|
|
5753
6291
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5754
6292
|
var scopeObject = emnapiCtx.scopeStore.get(scope);
|
|
5755
6293
|
if (!scopeObject.escapeCalled()) {
|
|
6294
|
+
escapee >>>= 0;
|
|
6295
|
+
result >>>= 0;
|
|
5756
6296
|
var newHandle = scopeObject.escape(escapee);
|
|
5757
6297
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5758
6298
|
var value = newHandle ? newHandle.id : 0;
|
|
@@ -5781,6 +6321,7 @@ function createNapiModule(options) {
|
|
|
5781
6321
|
}
|
|
5782
6322
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5783
6323
|
var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1 /* ReferenceOwnership.kUserland */);
|
|
6324
|
+
result >>>= 0;
|
|
5784
6325
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5785
6326
|
HEAP_DATA_VIEW.setUint32(result, ref.id, true);
|
|
5786
6327
|
return envObject.clearLastError();
|
|
@@ -5807,6 +6348,7 @@ function createNapiModule(options) {
|
|
|
5807
6348
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5808
6349
|
var count = emnapiCtx.refStore.get(ref).ref();
|
|
5809
6350
|
if (result) {
|
|
6351
|
+
result >>>= 0;
|
|
5810
6352
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5811
6353
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
5812
6354
|
}
|
|
@@ -5829,6 +6371,7 @@ function createNapiModule(options) {
|
|
|
5829
6371
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5830
6372
|
var count = reference.unref();
|
|
5831
6373
|
if (result) {
|
|
6374
|
+
result >>>= 0;
|
|
5832
6375
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5833
6376
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
5834
6377
|
}
|
|
@@ -5848,6 +6391,7 @@ function createNapiModule(options) {
|
|
|
5848
6391
|
var reference = emnapiCtx.refStore.get(ref);
|
|
5849
6392
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5850
6393
|
var handleId = reference.get(envObject);
|
|
6394
|
+
result >>>= 0;
|
|
5851
6395
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5852
6396
|
HEAP_DATA_VIEW.setUint32(result, handleId, true);
|
|
5853
6397
|
return envObject.clearLastError();
|
|
@@ -5859,6 +6403,8 @@ function createNapiModule(options) {
|
|
|
5859
6403
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5860
6404
|
if (!fun)
|
|
5861
6405
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6406
|
+
fun >>>= 0;
|
|
6407
|
+
arg >>>= 0;
|
|
5862
6408
|
emnapiCtx.addCleanupHook(envObject, fun, arg);
|
|
5863
6409
|
return 0 /* napi_status.napi_ok */;
|
|
5864
6410
|
}
|
|
@@ -5869,6 +6415,8 @@ function createNapiModule(options) {
|
|
|
5869
6415
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5870
6416
|
if (!fun)
|
|
5871
6417
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6418
|
+
fun >>>= 0;
|
|
6419
|
+
arg >>>= 0;
|
|
5872
6420
|
emnapiCtx.removeCleanupHook(envObject, fun, arg);
|
|
5873
6421
|
return 0 /* napi_status.napi_ok */;
|
|
5874
6422
|
}
|
|
@@ -5935,8 +6483,10 @@ function createNapiModule(options) {
|
|
|
5935
6483
|
var p = new Promise(function (resolve, reject) {
|
|
5936
6484
|
var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
|
|
5937
6485
|
deferredObjectId = deferredObject.id;
|
|
6486
|
+
deferred >>>= 0;
|
|
5938
6487
|
HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
|
|
5939
6488
|
});
|
|
6489
|
+
promise >>>= 0;
|
|
5940
6490
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5941
6491
|
value = emnapiCtx.addToCurrentScope(p).id;
|
|
5942
6492
|
HEAP_DATA_VIEW.setUint32(promise, value, true);
|
|
@@ -6011,6 +6561,7 @@ function createNapiModule(options) {
|
|
|
6011
6561
|
if (!is_promise)
|
|
6012
6562
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6013
6563
|
var h = emnapiCtx.handleStore.get(value);
|
|
6564
|
+
is_promise >>>= 0;
|
|
6014
6565
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6015
6566
|
var r = h.isPromise() ? 1 : 0;
|
|
6016
6567
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6158,6 +6709,7 @@ function createNapiModule(options) {
|
|
|
6158
6709
|
}
|
|
6159
6710
|
}
|
|
6160
6711
|
}
|
|
6712
|
+
result >>>= 0;
|
|
6161
6713
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6162
6714
|
value = emnapiCtx.addToCurrentScope(ret).id;
|
|
6163
6715
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6236,6 +6788,7 @@ function createNapiModule(options) {
|
|
|
6236
6788
|
catch (_) {
|
|
6237
6789
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6238
6790
|
}
|
|
6791
|
+
result >>>= 0;
|
|
6239
6792
|
r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
|
|
6240
6793
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6241
6794
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6278,6 +6831,7 @@ function createNapiModule(options) {
|
|
|
6278
6831
|
catch (_) {
|
|
6279
6832
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6280
6833
|
}
|
|
6834
|
+
result >>>= 0;
|
|
6281
6835
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6282
6836
|
value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
|
|
6283
6837
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6325,6 +6879,7 @@ function createNapiModule(options) {
|
|
|
6325
6879
|
}
|
|
6326
6880
|
}
|
|
6327
6881
|
if (result) {
|
|
6882
|
+
result >>>= 0;
|
|
6328
6883
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6329
6884
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
6330
6885
|
}
|
|
@@ -6372,6 +6927,7 @@ function createNapiModule(options) {
|
|
|
6372
6927
|
return envObject.setLastError(4 /* napi_status.napi_name_expected */);
|
|
6373
6928
|
}
|
|
6374
6929
|
r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
|
|
6930
|
+
result >>>= 0;
|
|
6375
6931
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6376
6932
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
6377
6933
|
return envObject.getReturnStatus();
|
|
@@ -6405,6 +6961,7 @@ function createNapiModule(options) {
|
|
|
6405
6961
|
if (!cname) {
|
|
6406
6962
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6407
6963
|
}
|
|
6964
|
+
cname >>>= 0;
|
|
6408
6965
|
emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
|
|
6409
6966
|
return envObject.getReturnStatus();
|
|
6410
6967
|
}
|
|
@@ -6446,6 +7003,8 @@ function createNapiModule(options) {
|
|
|
6446
7003
|
catch (_) {
|
|
6447
7004
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6448
7005
|
}
|
|
7006
|
+
utf8name >>>= 0;
|
|
7007
|
+
result >>>= 0;
|
|
6449
7008
|
r = emnapiString.UTF8ToString(utf8name, -1) in v;
|
|
6450
7009
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6451
7010
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
@@ -6489,6 +7048,8 @@ function createNapiModule(options) {
|
|
|
6489
7048
|
catch (_) {
|
|
6490
7049
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6491
7050
|
}
|
|
7051
|
+
utf8name >>>= 0;
|
|
7052
|
+
result >>>= 0;
|
|
6492
7053
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6493
7054
|
value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
|
|
6494
7055
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6559,6 +7120,7 @@ function createNapiModule(options) {
|
|
|
6559
7120
|
catch (_) {
|
|
6560
7121
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6561
7122
|
}
|
|
7123
|
+
result >>>= 0;
|
|
6562
7124
|
r = ((index >>> 0) in v) ? 1 : 0;
|
|
6563
7125
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6564
7126
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6599,6 +7161,7 @@ function createNapiModule(options) {
|
|
|
6599
7161
|
catch (_) {
|
|
6600
7162
|
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
6601
7163
|
}
|
|
7164
|
+
result >>>= 0;
|
|
6602
7165
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6603
7166
|
value = envObject.ensureHandleId(v[index >>> 0]);
|
|
6604
7167
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6643,6 +7206,7 @@ function createNapiModule(options) {
|
|
|
6643
7206
|
}
|
|
6644
7207
|
}
|
|
6645
7208
|
if (result) {
|
|
7209
|
+
result >>>= 0;
|
|
6646
7210
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6647
7211
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
6648
7212
|
}
|
|
@@ -6668,6 +7232,8 @@ function createNapiModule(options) {
|
|
|
6668
7232
|
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
6669
7233
|
envObject.clearLastError();
|
|
6670
7234
|
try {
|
|
7235
|
+
properties >>>= 0;
|
|
7236
|
+
property_count >>>= 0;
|
|
6671
7237
|
property_count = property_count >>> 0;
|
|
6672
7238
|
if (property_count > 0) {
|
|
6673
7239
|
if (!properties)
|
|
@@ -6692,6 +7258,7 @@ function createNapiModule(options) {
|
|
|
6692
7258
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
6693
7259
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
6694
7260
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
7261
|
+
attributes >>>= 0;
|
|
6695
7262
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
6696
7263
|
if (utf8Name) {
|
|
6697
7264
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -6816,6 +7383,7 @@ function createNapiModule(options) {
|
|
|
6816
7383
|
}
|
|
6817
7384
|
var g = emnapiCtx.handleStore.get(5 /* GlobalHandle.GLOBAL */).value;
|
|
6818
7385
|
var ret = g.eval(v8Script.value);
|
|
7386
|
+
result >>>= 0;
|
|
6819
7387
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6820
7388
|
value = envObject.ensureHandleId(ret);
|
|
6821
7389
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6844,6 +7412,7 @@ function createNapiModule(options) {
|
|
|
6844
7412
|
if (!result)
|
|
6845
7413
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6846
7414
|
var v = emnapiCtx.handleStore.get(value);
|
|
7415
|
+
result >>>= 0;
|
|
6847
7416
|
var r;
|
|
6848
7417
|
if (v.isNumber()) {
|
|
6849
7418
|
r = 3 /* napi_valuetype.napi_number */;
|
|
@@ -6908,6 +7477,7 @@ function createNapiModule(options) {
|
|
|
6908
7477
|
if (!result)
|
|
6909
7478
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
6910
7479
|
var handle = emnapiCtx.handleStore.get(value);
|
|
7480
|
+
result >>>= 0;
|
|
6911
7481
|
v = handle.value ? 4 /* GlobalHandle.TRUE */ : 3 /* GlobalHandle.FALSE */;
|
|
6912
7482
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6913
7483
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6941,6 +7511,7 @@ function createNapiModule(options) {
|
|
|
6941
7511
|
if (handle.isBigInt()) {
|
|
6942
7512
|
throw new TypeError('Cannot convert a BigInt value to a number');
|
|
6943
7513
|
}
|
|
7514
|
+
result >>>= 0;
|
|
6944
7515
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6945
7516
|
v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
|
|
6946
7517
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -6975,6 +7546,7 @@ function createNapiModule(options) {
|
|
|
6975
7546
|
if (handle.value == null) {
|
|
6976
7547
|
throw new TypeError('Cannot convert undefined or null to object');
|
|
6977
7548
|
}
|
|
7549
|
+
result >>>= 0;
|
|
6978
7550
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6979
7551
|
v = envObject.ensureHandleId(Object(handle.value));
|
|
6980
7552
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7009,6 +7581,7 @@ function createNapiModule(options) {
|
|
|
7009
7581
|
if (handle.isSymbol()) {
|
|
7010
7582
|
throw new TypeError('Cannot convert a Symbol value to a string');
|
|
7011
7583
|
}
|
|
7584
|
+
result >>>= 0;
|
|
7012
7585
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7013
7586
|
v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
|
|
7014
7587
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7041,6 +7614,7 @@ function createNapiModule(options) {
|
|
|
7041
7614
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7042
7615
|
if (!constructor)
|
|
7043
7616
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7617
|
+
result >>>= 0;
|
|
7044
7618
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7045
7619
|
HEAP_DATA_VIEW.setInt8(result, 0, true);
|
|
7046
7620
|
var ctor = emnapiCtx.handleStore.get(constructor);
|
|
@@ -7070,6 +7644,7 @@ function createNapiModule(options) {
|
|
|
7070
7644
|
if (!result)
|
|
7071
7645
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7072
7646
|
var h = emnapiCtx.handleStore.get(value);
|
|
7647
|
+
result >>>= 0;
|
|
7073
7648
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7074
7649
|
var r = h.isArray() ? 1 : 0;
|
|
7075
7650
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7088,6 +7663,7 @@ function createNapiModule(options) {
|
|
|
7088
7663
|
if (!result)
|
|
7089
7664
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7090
7665
|
var h = emnapiCtx.handleStore.get(value);
|
|
7666
|
+
result >>>= 0;
|
|
7091
7667
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7092
7668
|
var r = h.isArrayBuffer() ? 1 : 0;
|
|
7093
7669
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7106,6 +7682,7 @@ function createNapiModule(options) {
|
|
|
7106
7682
|
if (!result)
|
|
7107
7683
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7108
7684
|
var h = emnapiCtx.handleStore.get(value);
|
|
7685
|
+
result >>>= 0;
|
|
7109
7686
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7110
7687
|
var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
|
|
7111
7688
|
(Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
|
|
@@ -7127,6 +7704,7 @@ function createNapiModule(options) {
|
|
|
7127
7704
|
if (!result)
|
|
7128
7705
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7129
7706
|
var h = emnapiCtx.handleStore.get(value);
|
|
7707
|
+
result >>>= 0;
|
|
7130
7708
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7131
7709
|
var r = h.isDate() ? 1 : 0;
|
|
7132
7710
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7145,6 +7723,7 @@ function createNapiModule(options) {
|
|
|
7145
7723
|
if (!result)
|
|
7146
7724
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7147
7725
|
var val = emnapiCtx.handleStore.get(value).value;
|
|
7726
|
+
result >>>= 0;
|
|
7148
7727
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7149
7728
|
var r = (val instanceof Error) ? 1 : 0;
|
|
7150
7729
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7163,6 +7742,7 @@ function createNapiModule(options) {
|
|
|
7163
7742
|
if (!result)
|
|
7164
7743
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7165
7744
|
var h = emnapiCtx.handleStore.get(value);
|
|
7745
|
+
result >>>= 0;
|
|
7166
7746
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7167
7747
|
var r = h.isTypedArray() ? 1 : 0;
|
|
7168
7748
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7181,6 +7761,7 @@ function createNapiModule(options) {
|
|
|
7181
7761
|
if (!result)
|
|
7182
7762
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7183
7763
|
var h = emnapiCtx.handleStore.get(value);
|
|
7764
|
+
result >>>= 0;
|
|
7184
7765
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7185
7766
|
var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
|
|
7186
7767
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7199,6 +7780,7 @@ function createNapiModule(options) {
|
|
|
7199
7780
|
if (!result)
|
|
7200
7781
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7201
7782
|
var h = emnapiCtx.handleStore.get(value);
|
|
7783
|
+
result >>>= 0;
|
|
7202
7784
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7203
7785
|
var r = h.isDataView() ? 1 : 0;
|
|
7204
7786
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -7228,6 +7810,7 @@ function createNapiModule(options) {
|
|
|
7228
7810
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7229
7811
|
var lv = emnapiCtx.handleStore.get(lhs).value;
|
|
7230
7812
|
var rv = emnapiCtx.handleStore.get(rhs).value;
|
|
7813
|
+
result >>>= 0;
|
|
7231
7814
|
r = (lv === rv) ? 1 : 0;
|
|
7232
7815
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7233
7816
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -7282,6 +7865,7 @@ function createNapiModule(options) {
|
|
|
7282
7865
|
if (!result)
|
|
7283
7866
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
7284
7867
|
var h = emnapiCtx.handleStore.get(arraybuffer);
|
|
7868
|
+
result >>>= 0;
|
|
7285
7869
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
7286
7870
|
if (h.isArrayBuffer() && h.value.byteLength === 0) {
|
|
7287
7871
|
try {
|
|
@@ -7613,12 +8197,7 @@ var MessageHandler = /*#__PURE__*/ (function (_super) {
|
|
|
7613
8197
|
try {
|
|
7614
8198
|
if (type === 'async-worker-init') {
|
|
7615
8199
|
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);
|
|
8200
|
+
_this.napiModule.initWorker(payload_1.arg, payload_1.func);
|
|
7622
8201
|
});
|
|
7623
8202
|
}
|
|
7624
8203
|
}
|
|
@@ -7644,6 +8223,6 @@ var MessageHandler = /*#__PURE__*/ (function (_super) {
|
|
|
7644
8223
|
// }
|
|
7645
8224
|
// }
|
|
7646
8225
|
|
|
7647
|
-
var version = "1.
|
|
8226
|
+
var version = "1.10.0";
|
|
7648
8227
|
|
|
7649
8228
|
export { MessageHandler, createNapiModule, instantiateNapiModule, instantiateNapiModuleSync, loadNapiModule, loadNapiModuleSync, version };
|