@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
|
@@ -108,7 +108,6 @@ function createNapiModule(options) {
|
|
|
108
108
|
filename: '',
|
|
109
109
|
childThread: ENVIRONMENT_IS_PTHREAD,
|
|
110
110
|
initWorker: undefined,
|
|
111
|
-
executeAsyncWork: undefined,
|
|
112
111
|
waitThreadStart: waitThreadStart,
|
|
113
112
|
PThread: undefined,
|
|
114
113
|
init: function (options) {
|
|
@@ -296,6 +295,9 @@ function createNapiModule(options) {
|
|
|
296
295
|
return envObject.clearLastError();
|
|
297
296
|
}
|
|
298
297
|
function _emnapi_get_node_version(major, minor, patch) {
|
|
298
|
+
major >>>= 0;
|
|
299
|
+
minor >>>= 0;
|
|
300
|
+
patch >>>= 0;
|
|
299
301
|
var versions = (typeof process === 'object' && process !== null &&
|
|
300
302
|
typeof process.versions === 'object' && process.versions !== null &&
|
|
301
303
|
typeof process.versions.node === 'string')
|
|
@@ -339,6 +341,7 @@ function createNapiModule(options) {
|
|
|
339
341
|
}
|
|
340
342
|
function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
|
|
341
343
|
var envObject = emnapiCtx.envStore.get(env);
|
|
344
|
+
callback >>>= 0;
|
|
342
345
|
envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
|
|
343
346
|
}
|
|
344
347
|
function _emnapi_ctx_increase_waiting_request_counter() {
|
|
@@ -403,9 +406,19 @@ function createNapiModule(options) {
|
|
|
403
406
|
var worker = PThread.pthreads[tid];
|
|
404
407
|
return worker;
|
|
405
408
|
}
|
|
409
|
+
function _emnapi_worker_ref(pthreadPtr) {
|
|
410
|
+
if (ENVIRONMENT_IS_PTHREAD)
|
|
411
|
+
return;
|
|
412
|
+
pthreadPtr >>>= 0;
|
|
413
|
+
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
414
|
+
if (worker && typeof worker.ref === 'function') {
|
|
415
|
+
worker.ref();
|
|
416
|
+
}
|
|
417
|
+
}
|
|
406
418
|
function _emnapi_worker_unref(pthreadPtr) {
|
|
407
419
|
if (ENVIRONMENT_IS_PTHREAD)
|
|
408
420
|
return;
|
|
421
|
+
pthreadPtr >>>= 0;
|
|
409
422
|
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
410
423
|
if (worker && typeof worker.unref === 'function') {
|
|
411
424
|
worker.unref();
|
|
@@ -506,6 +519,7 @@ function createNapiModule(options) {
|
|
|
506
519
|
_emnapi_async_send_js: _emnapi_async_send_js,
|
|
507
520
|
_emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
|
|
508
521
|
_emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
|
|
522
|
+
_emnapi_worker_ref: _emnapi_worker_ref,
|
|
509
523
|
_emnapi_worker_unref: _emnapi_worker_unref
|
|
510
524
|
});
|
|
511
525
|
function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
|
|
@@ -514,22 +528,14 @@ function createNapiModule(options) {
|
|
|
514
528
|
var envObject = emnapiCtx.envStore.get(env);
|
|
515
529
|
if (!adjusted_value)
|
|
516
530
|
return envObject.setLastError(1);
|
|
517
|
-
var
|
|
518
|
-
|
|
519
|
-
return envObject.setLastError(1);
|
|
520
|
-
}
|
|
521
|
-
var old_size = wasmMemory.buffer.byteLength;
|
|
522
|
-
var new_size = old_size + change_in_bytes_number;
|
|
523
|
-
new_size = new_size + ((65536 - new_size % 65536) % 65536);
|
|
524
|
-
if (wasmMemory.grow((new_size - old_size + 65535) >> 16) === -1) {
|
|
525
|
-
return envObject.setLastError(9);
|
|
526
|
-
}
|
|
531
|
+
var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
|
|
532
|
+
adjusted_value >>>= 0;
|
|
527
533
|
if (emnapiCtx.feature.supportBigInt) {
|
|
528
534
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
529
|
-
HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(
|
|
535
|
+
HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
|
|
530
536
|
}
|
|
531
537
|
else {
|
|
532
|
-
$emnapiSetValueI64(adjusted_value,
|
|
538
|
+
$emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
|
|
533
539
|
}
|
|
534
540
|
return envObject.clearLastError();
|
|
535
541
|
}
|
|
@@ -687,6 +693,7 @@ function createNapiModule(options) {
|
|
|
687
693
|
var asyncId = asyncContext.asyncId;
|
|
688
694
|
var triggerAsyncId = asyncContext.triggerAsyncId;
|
|
689
695
|
if (result) {
|
|
696
|
+
result >>>= 0;
|
|
690
697
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
691
698
|
HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
|
|
692
699
|
HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
|
|
@@ -707,6 +714,8 @@ function createNapiModule(options) {
|
|
|
707
714
|
return;
|
|
708
715
|
var resource = emnapiCtx.handleStore.get(async_resource).value;
|
|
709
716
|
var callback = emnapiCtx.handleStore.get(cb).value;
|
|
717
|
+
argv >>>= 0;
|
|
718
|
+
size >>>= 0;
|
|
710
719
|
size = size >>> 0;
|
|
711
720
|
var arr = Array(size);
|
|
712
721
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -719,6 +728,7 @@ function createNapiModule(options) {
|
|
|
719
728
|
triggerAsyncId: trigger_async_id
|
|
720
729
|
});
|
|
721
730
|
if (result) {
|
|
731
|
+
result >>>= 0;
|
|
722
732
|
var envObject = emnapiCtx.envStore.get(env);
|
|
723
733
|
v = envObject.ensureHandleId(ret);
|
|
724
734
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -745,6 +755,7 @@ function createNapiModule(options) {
|
|
|
745
755
|
}
|
|
746
756
|
var low = Number(numberValue & BigInt(0xffffffff));
|
|
747
757
|
var high = Number(numberValue >> BigInt(32));
|
|
758
|
+
result >>>= 0;
|
|
748
759
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
749
760
|
HEAP_DATA_VIEW.setInt32(result, low, true);
|
|
750
761
|
HEAP_DATA_VIEW.setInt32(result + 4, high, true);
|
|
@@ -754,6 +765,7 @@ function createNapiModule(options) {
|
|
|
754
765
|
if (!emnapiNodeBinding) {
|
|
755
766
|
return 9;
|
|
756
767
|
}
|
|
768
|
+
async_context >>>= 0;
|
|
757
769
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
758
770
|
var low = HEAP_DATA_VIEW.getInt32(async_context, true);
|
|
759
771
|
var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
|
|
@@ -796,10 +808,13 @@ function createNapiModule(options) {
|
|
|
796
808
|
if (typeof v8func !== 'function') {
|
|
797
809
|
return envObject.setLastError(1);
|
|
798
810
|
}
|
|
811
|
+
async_context >>>= 0;
|
|
799
812
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
800
813
|
var low = HEAP_DATA_VIEW.getInt32(async_context, true);
|
|
801
814
|
var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
|
|
802
815
|
var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
|
|
816
|
+
argv >>>= 0;
|
|
817
|
+
argc >>>= 0;
|
|
803
818
|
argc = argc >>> 0;
|
|
804
819
|
var arr = Array(argc);
|
|
805
820
|
for (; i < argc; i++) {
|
|
@@ -813,6 +828,7 @@ function createNapiModule(options) {
|
|
|
813
828
|
if (ret.status !== 0)
|
|
814
829
|
return envObject.setLastError(ret.status);
|
|
815
830
|
if (result) {
|
|
831
|
+
result >>>= 0;
|
|
816
832
|
v = envObject.ensureHandleId(ret.value);
|
|
817
833
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
818
834
|
}
|
|
@@ -840,29 +856,58 @@ function createNapiModule(options) {
|
|
|
840
856
|
napi_open_callback_scope: napi_open_callback_scope
|
|
841
857
|
});
|
|
842
858
|
var emnapiTSFN = {
|
|
859
|
+
_liveSet: {},
|
|
843
860
|
offset: {
|
|
861
|
+
__size__: 0,
|
|
844
862
|
resource: 0,
|
|
845
|
-
async_id:
|
|
846
|
-
trigger_async_id:
|
|
847
|
-
queue_size:
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
863
|
+
async_id: 0,
|
|
864
|
+
trigger_async_id: 0,
|
|
865
|
+
queue_size: 0,
|
|
866
|
+
is_some: 0,
|
|
867
|
+
queue: 0,
|
|
868
|
+
async_pending: 0,
|
|
869
|
+
async_u_fd: 0,
|
|
870
|
+
thread_count: 0,
|
|
871
|
+
state: 0,
|
|
872
|
+
dispatch_state: 0,
|
|
873
|
+
context: 0,
|
|
874
|
+
max_queue_size: 0,
|
|
875
|
+
ref: 0,
|
|
876
|
+
env: 0,
|
|
877
|
+
finalize_data: 0,
|
|
878
|
+
finalize_cb: 0,
|
|
879
|
+
call_js_cb: 0,
|
|
880
|
+
handles_closing: 0,
|
|
881
|
+
async_ref: 0,
|
|
882
|
+
mutex: 0,
|
|
883
|
+
cond: 0
|
|
864
884
|
},
|
|
865
885
|
init: function () {
|
|
886
|
+
emnapiTSFN._liveSet = new Set();
|
|
887
|
+
emnapiTSFN.offset.__size__ = 184;
|
|
888
|
+
emnapiTSFN.offset.resource = 0;
|
|
889
|
+
emnapiTSFN.offset.async_id = 8;
|
|
890
|
+
emnapiTSFN.offset.trigger_async_id = 16;
|
|
891
|
+
emnapiTSFN.offset.queue_size = 60;
|
|
892
|
+
emnapiTSFN.offset.is_some = 24;
|
|
893
|
+
emnapiTSFN.offset.queue = 64;
|
|
894
|
+
emnapiTSFN.offset.async_pending = 132;
|
|
895
|
+
emnapiTSFN.offset.async_u_fd = 96;
|
|
896
|
+
emnapiTSFN.offset.thread_count = 136;
|
|
897
|
+
emnapiTSFN.offset.state = 140;
|
|
898
|
+
emnapiTSFN.offset.dispatch_state = 144;
|
|
899
|
+
emnapiTSFN.offset.context = 148;
|
|
900
|
+
emnapiTSFN.offset.max_queue_size = 152;
|
|
901
|
+
emnapiTSFN.offset.ref = 156;
|
|
902
|
+
emnapiTSFN.offset.env = 160;
|
|
903
|
+
emnapiTSFN.offset.finalize_data = 164;
|
|
904
|
+
emnapiTSFN.offset.finalize_cb = 168;
|
|
905
|
+
emnapiTSFN.offset.call_js_cb = 172;
|
|
906
|
+
emnapiTSFN.offset.handles_closing = 176;
|
|
907
|
+
emnapiTSFN.offset.async_ref = 180;
|
|
908
|
+
emnapiTSFN.offset.mutex = 32;
|
|
909
|
+
emnapiTSFN.offset.cond = 56;
|
|
910
|
+
emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
|
|
866
911
|
if (typeof PThread !== 'undefined') {
|
|
867
912
|
PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
|
|
868
913
|
PThread.runningWorkers.forEach(emnapiTSFN.addListener);
|
|
@@ -886,7 +931,10 @@ function createNapiModule(options) {
|
|
|
886
931
|
var type = __emnapi__.type;
|
|
887
932
|
var payload = __emnapi__.payload;
|
|
888
933
|
if (type === 'tsfn-send') {
|
|
889
|
-
emnapiTSFN.
|
|
934
|
+
var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
|
|
935
|
+
if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
|
|
936
|
+
emnapiTSFN.enqueue(payload.tsfn);
|
|
937
|
+
}
|
|
890
938
|
}
|
|
891
939
|
}
|
|
892
940
|
};
|
|
@@ -913,6 +961,7 @@ function createNapiModule(options) {
|
|
|
913
961
|
var queue = _malloc(size);
|
|
914
962
|
if (!queue)
|
|
915
963
|
return false;
|
|
964
|
+
queue >>>= 0;
|
|
916
965
|
new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
|
|
917
966
|
emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
|
|
918
967
|
return true;
|
|
@@ -920,6 +969,12 @@ function createNapiModule(options) {
|
|
|
920
969
|
destroyQueue: function (func) {
|
|
921
970
|
var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
|
|
922
971
|
if (queue) {
|
|
972
|
+
var node = emnapiTSFN.loadSizeTypeValue(queue, false);
|
|
973
|
+
while (node !== 0) {
|
|
974
|
+
var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
|
|
975
|
+
_free(node);
|
|
976
|
+
node = next;
|
|
977
|
+
}
|
|
923
978
|
_free(queue);
|
|
924
979
|
}
|
|
925
980
|
},
|
|
@@ -931,6 +986,7 @@ function createNapiModule(options) {
|
|
|
931
986
|
var node = _malloc(size);
|
|
932
987
|
if (!node)
|
|
933
988
|
throw new Error('OOM');
|
|
989
|
+
node >>>= 0;
|
|
934
990
|
emnapiTSFN.storeSizeTypeValue(node, data, false);
|
|
935
991
|
emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
|
|
936
992
|
if (head === 0 && tail === 0) {
|
|
@@ -966,11 +1022,11 @@ function createNapiModule(options) {
|
|
|
966
1022
|
var waitCondition = function () {
|
|
967
1023
|
var queueSize = emnapiTSFN.getQueueSize(func);
|
|
968
1024
|
var maxSize = emnapiTSFN.getMaxQueueSize(func);
|
|
969
|
-
|
|
970
|
-
return queueSize >= maxSize && maxSize > 0 && !isClosing;
|
|
1025
|
+
return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0;
|
|
971
1026
|
};
|
|
972
1027
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
973
|
-
|
|
1028
|
+
var shouldDelete = false;
|
|
1029
|
+
var ret = mutex.execute(function () {
|
|
974
1030
|
while (waitCondition()) {
|
|
975
1031
|
if (mode === 0) {
|
|
976
1032
|
return 15;
|
|
@@ -980,21 +1036,25 @@ function createNapiModule(options) {
|
|
|
980
1036
|
}
|
|
981
1037
|
cond.wait();
|
|
982
1038
|
}
|
|
983
|
-
if (emnapiTSFN.
|
|
984
|
-
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
985
|
-
return 1;
|
|
986
|
-
}
|
|
987
|
-
else {
|
|
988
|
-
emnapiTSFN.subThreadCount(func);
|
|
989
|
-
return 16;
|
|
990
|
-
}
|
|
991
|
-
}
|
|
992
|
-
else {
|
|
1039
|
+
if (emnapiTSFN.getState(func) === 0) {
|
|
993
1040
|
emnapiTSFN.pushQueue(func, data);
|
|
994
1041
|
emnapiTSFN.send(func);
|
|
995
1042
|
return 0;
|
|
996
1043
|
}
|
|
1044
|
+
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1045
|
+
return 1;
|
|
1046
|
+
}
|
|
1047
|
+
emnapiTSFN.subThreadCount(func);
|
|
1048
|
+
if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
1049
|
+
return 16;
|
|
1050
|
+
}
|
|
1051
|
+
shouldDelete = true;
|
|
1052
|
+
return 16;
|
|
997
1053
|
});
|
|
1054
|
+
if (shouldDelete) {
|
|
1055
|
+
emnapiTSFN.destroy(func);
|
|
1056
|
+
}
|
|
1057
|
+
return ret;
|
|
998
1058
|
},
|
|
999
1059
|
getMutex: function (func) {
|
|
1000
1060
|
var index = func + emnapiTSFN.offset.mutex;
|
|
@@ -1004,7 +1064,7 @@ function createNapiModule(options) {
|
|
|
1004
1064
|
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
1005
1065
|
if (isBrowserMain) {
|
|
1006
1066
|
while (true) {
|
|
1007
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1067
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1008
1068
|
if (oldValue === 0) {
|
|
1009
1069
|
return;
|
|
1010
1070
|
}
|
|
@@ -1012,18 +1072,18 @@ function createNapiModule(options) {
|
|
|
1012
1072
|
}
|
|
1013
1073
|
else {
|
|
1014
1074
|
while (true) {
|
|
1015
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1075
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1016
1076
|
if (oldValue === 0) {
|
|
1017
1077
|
return;
|
|
1018
1078
|
}
|
|
1019
|
-
Atomics.wait(i32a, 0,
|
|
1079
|
+
Atomics.wait(i32a, 0, 10);
|
|
1020
1080
|
}
|
|
1021
1081
|
}
|
|
1022
1082
|
},
|
|
1023
1083
|
unlock: function () {
|
|
1024
1084
|
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
1025
|
-
var oldValue = Atomics.compareExchange(i32a, 0,
|
|
1026
|
-
if (oldValue !==
|
|
1085
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
1086
|
+
if (oldValue !== 10) {
|
|
1027
1087
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
1028
1088
|
}
|
|
1029
1089
|
Atomics.notify(i32a, 0, 1);
|
|
@@ -1066,14 +1126,14 @@ function createNapiModule(options) {
|
|
|
1066
1126
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1067
1127
|
var arr, index;
|
|
1068
1128
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1069
|
-
index = (func + offset)
|
|
1129
|
+
index = (func + offset) >>> 2;
|
|
1070
1130
|
Atomics.add(arr, index, 1);
|
|
1071
1131
|
},
|
|
1072
1132
|
subQueueSize: function (func) {
|
|
1073
1133
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1074
1134
|
var arr, index;
|
|
1075
1135
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1076
|
-
index = (func + offset)
|
|
1136
|
+
index = (func + offset) >>> 2;
|
|
1077
1137
|
Atomics.sub(arr, index, 1);
|
|
1078
1138
|
},
|
|
1079
1139
|
getThreadCount: function (func) {
|
|
@@ -1083,30 +1143,30 @@ function createNapiModule(options) {
|
|
|
1083
1143
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1084
1144
|
var arr, index;
|
|
1085
1145
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1086
|
-
index = (func + offset)
|
|
1146
|
+
index = (func + offset) >>> 2;
|
|
1087
1147
|
Atomics.add(arr, index, 1);
|
|
1088
1148
|
},
|
|
1089
1149
|
subThreadCount: function (func) {
|
|
1090
1150
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1091
1151
|
var arr, index;
|
|
1092
1152
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1093
|
-
index = (func + offset)
|
|
1153
|
+
index = (func + offset) >>> 2;
|
|
1094
1154
|
Atomics.sub(arr, index, 1);
|
|
1095
1155
|
},
|
|
1096
|
-
|
|
1097
|
-
return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.
|
|
1156
|
+
getState: function (func) {
|
|
1157
|
+
return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
|
|
1098
1158
|
},
|
|
1099
|
-
|
|
1100
|
-
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.
|
|
1159
|
+
setState: function (func, value) {
|
|
1160
|
+
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
|
|
1101
1161
|
},
|
|
1102
1162
|
getHandlesClosing: function (func) {
|
|
1103
|
-
return Atomics.load(new
|
|
1163
|
+
return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
|
|
1104
1164
|
},
|
|
1105
1165
|
setHandlesClosing: function (func, value) {
|
|
1106
|
-
Atomics.store(new
|
|
1166
|
+
Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
|
|
1107
1167
|
},
|
|
1108
1168
|
getDispatchState: function (func) {
|
|
1109
|
-
return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state)
|
|
1169
|
+
return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
|
|
1110
1170
|
},
|
|
1111
1171
|
getContext: function (func) {
|
|
1112
1172
|
return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
|
|
@@ -1137,12 +1197,12 @@ function createNapiModule(options) {
|
|
|
1137
1197
|
var arr;
|
|
1138
1198
|
if (unsigned) {
|
|
1139
1199
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1140
|
-
ret = Atomics.load(arr, offset
|
|
1200
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
1141
1201
|
return ret;
|
|
1142
1202
|
}
|
|
1143
1203
|
else {
|
|
1144
1204
|
arr = new Int32Array(wasmMemory.buffer);
|
|
1145
|
-
ret = Atomics.load(arr, offset
|
|
1205
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
1146
1206
|
return ret;
|
|
1147
1207
|
}
|
|
1148
1208
|
},
|
|
@@ -1150,52 +1210,80 @@ function createNapiModule(options) {
|
|
|
1150
1210
|
var arr;
|
|
1151
1211
|
if (unsigned) {
|
|
1152
1212
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
1153
|
-
Atomics.store(arr, offset
|
|
1213
|
+
Atomics.store(arr, offset >>> 2, value);
|
|
1154
1214
|
return undefined;
|
|
1155
1215
|
}
|
|
1156
1216
|
else {
|
|
1157
1217
|
arr = new Int32Array(wasmMemory.buffer);
|
|
1158
|
-
Atomics.store(arr, offset
|
|
1218
|
+
Atomics.store(arr, offset >>> 2, value >>> 0);
|
|
1159
1219
|
return undefined;
|
|
1160
1220
|
}
|
|
1161
1221
|
},
|
|
1222
|
+
releaseResources: function (func) {
|
|
1223
|
+
if (emnapiTSFN.getState(func) !== 2) {
|
|
1224
|
+
emnapiTSFN.setState(func, 2);
|
|
1225
|
+
var env = emnapiTSFN.getEnv(func);
|
|
1226
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1227
|
+
var ref = emnapiTSFN.getRef(func);
|
|
1228
|
+
if (ref) {
|
|
1229
|
+
emnapiCtx.refStore.get(ref).dispose();
|
|
1230
|
+
}
|
|
1231
|
+
var resource = emnapiTSFN.getResource(func);
|
|
1232
|
+
emnapiCtx.refStore.get(resource).dispose();
|
|
1233
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1234
|
+
HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
|
|
1235
|
+
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
1236
|
+
envObject.unref();
|
|
1237
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
1238
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
1239
|
+
if (Atomics.load(arr, asyncRefOffset) > 0) {
|
|
1240
|
+
Atomics.store(arr, asyncRefOffset, 0);
|
|
1241
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1242
|
+
}
|
|
1243
|
+
if (emnapiNodeBinding) {
|
|
1244
|
+
var view = new DataView(wasmMemory.buffer);
|
|
1245
|
+
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1246
|
+
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1247
|
+
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
1248
|
+
}
|
|
1249
|
+
}
|
|
1250
|
+
},
|
|
1162
1251
|
destroy: function (func) {
|
|
1252
|
+
emnapiTSFN._liveSet.delete(func);
|
|
1163
1253
|
emnapiTSFN.destroyQueue(func);
|
|
1164
|
-
|
|
1165
|
-
var envObject = emnapiCtx.envStore.get(env);
|
|
1166
|
-
var ref = emnapiTSFN.getRef(func);
|
|
1167
|
-
if (ref) {
|
|
1168
|
-
emnapiCtx.refStore.get(ref).dispose();
|
|
1169
|
-
}
|
|
1170
|
-
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
1171
|
-
envObject.unref();
|
|
1172
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
1173
|
-
var arr = new Int32Array(wasmMemory.buffer);
|
|
1174
|
-
if (Atomics.load(arr, asyncRefOffset)) {
|
|
1175
|
-
Atomics.store(arr, asyncRefOffset, 0);
|
|
1176
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1177
|
-
}
|
|
1178
|
-
var resource = emnapiTSFN.getResource(func);
|
|
1179
|
-
emnapiCtx.refStore.get(resource).dispose();
|
|
1180
|
-
if (emnapiNodeBinding) {
|
|
1181
|
-
var view = new DataView(wasmMemory.buffer);
|
|
1182
|
-
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1183
|
-
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1184
|
-
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
1185
|
-
}
|
|
1254
|
+
emnapiTSFN.releaseResources(func);
|
|
1186
1255
|
_free(func);
|
|
1187
1256
|
},
|
|
1188
|
-
|
|
1257
|
+
emptyQueue: function (func) {
|
|
1258
|
+
var drainQueue = [];
|
|
1259
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
1260
|
+
while (emnapiTSFN.getQueueSize(func) > 0) {
|
|
1261
|
+
drainQueue.push(emnapiTSFN.shiftQueue(func));
|
|
1262
|
+
}
|
|
1263
|
+
});
|
|
1189
1264
|
var callJsCb = emnapiTSFN.getCallJSCb(func);
|
|
1190
1265
|
var context = emnapiTSFN.getContext(func);
|
|
1191
1266
|
var data;
|
|
1192
|
-
|
|
1193
|
-
data =
|
|
1267
|
+
for (var i = 0; i < drainQueue.length; i++) {
|
|
1268
|
+
data = drainQueue[i];
|
|
1194
1269
|
if (callJsCb) {
|
|
1195
1270
|
(wasmTable.get(callJsCb))(0, 0, context, data);
|
|
1196
1271
|
}
|
|
1197
1272
|
}
|
|
1198
|
-
|
|
1273
|
+
},
|
|
1274
|
+
maybeDelete: function (func) {
|
|
1275
|
+
var shouldDelete = false;
|
|
1276
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
1277
|
+
if (emnapiTSFN.getThreadCount(func) > 0) {
|
|
1278
|
+
emnapiTSFN.releaseResources(func);
|
|
1279
|
+
}
|
|
1280
|
+
else {
|
|
1281
|
+
shouldDelete = true;
|
|
1282
|
+
}
|
|
1283
|
+
});
|
|
1284
|
+
if (shouldDelete) {
|
|
1285
|
+
emnapiTSFN.destroy(func);
|
|
1286
|
+
}
|
|
1199
1287
|
},
|
|
1200
1288
|
finalize: function (func) {
|
|
1201
1289
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -1208,6 +1296,7 @@ function createNapiModule(options) {
|
|
|
1208
1296
|
envObject.callFinalizerInternal(0, finalize, data, context);
|
|
1209
1297
|
};
|
|
1210
1298
|
try {
|
|
1299
|
+
emnapiTSFN.emptyQueue(func);
|
|
1211
1300
|
if (finalize) {
|
|
1212
1301
|
if (emnapiNodeBinding) {
|
|
1213
1302
|
var resource = emnapiTSFN.getResource(func);
|
|
@@ -1225,7 +1314,7 @@ function createNapiModule(options) {
|
|
|
1225
1314
|
f();
|
|
1226
1315
|
}
|
|
1227
1316
|
}
|
|
1228
|
-
emnapiTSFN.
|
|
1317
|
+
emnapiTSFN.maybeDelete(func);
|
|
1229
1318
|
}
|
|
1230
1319
|
finally {
|
|
1231
1320
|
emnapiCtx.closeScope(envObject);
|
|
@@ -1241,7 +1330,7 @@ function createNapiModule(options) {
|
|
|
1241
1330
|
try {
|
|
1242
1331
|
if (set_closing) {
|
|
1243
1332
|
emnapiTSFN.getMutex(func).execute(function () {
|
|
1244
|
-
emnapiTSFN.
|
|
1333
|
+
emnapiTSFN.setState(func, 1);
|
|
1245
1334
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1246
1335
|
emnapiTSFN.getCond(func).signal();
|
|
1247
1336
|
}
|
|
@@ -1251,6 +1340,7 @@ function createNapiModule(options) {
|
|
|
1251
1340
|
return;
|
|
1252
1341
|
}
|
|
1253
1342
|
emnapiTSFN.setHandlesClosing(func, 1);
|
|
1343
|
+
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
|
|
1254
1344
|
emnapiCtx.feature.setImmediate(function () {
|
|
1255
1345
|
emnapiTSFN.finalize(func);
|
|
1256
1346
|
});
|
|
@@ -1266,10 +1356,7 @@ function createNapiModule(options) {
|
|
|
1266
1356
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1267
1357
|
var cond = emnapiTSFN.getCond(func);
|
|
1268
1358
|
mutex.execute(function () {
|
|
1269
|
-
if (emnapiTSFN.
|
|
1270
|
-
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
1271
|
-
}
|
|
1272
|
-
else {
|
|
1359
|
+
if (emnapiTSFN.getState(func) === 0) {
|
|
1273
1360
|
var size = emnapiTSFN.getQueueSize(func);
|
|
1274
1361
|
if (size > 0) {
|
|
1275
1362
|
data = emnapiTSFN.shiftQueue(func);
|
|
@@ -1282,7 +1369,7 @@ function createNapiModule(options) {
|
|
|
1282
1369
|
}
|
|
1283
1370
|
if (size === 0) {
|
|
1284
1371
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1285
|
-
emnapiTSFN.
|
|
1372
|
+
emnapiTSFN.setState(func, 1);
|
|
1286
1373
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1287
1374
|
cond.signal();
|
|
1288
1375
|
}
|
|
@@ -1293,6 +1380,9 @@ function createNapiModule(options) {
|
|
|
1293
1380
|
has_more = true;
|
|
1294
1381
|
}
|
|
1295
1382
|
}
|
|
1383
|
+
else {
|
|
1384
|
+
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
1385
|
+
}
|
|
1296
1386
|
});
|
|
1297
1387
|
if (popped_value) {
|
|
1298
1388
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -1340,7 +1430,7 @@ function createNapiModule(options) {
|
|
|
1340
1430
|
var has_more = true;
|
|
1341
1431
|
var iterations_left = 1000;
|
|
1342
1432
|
var ui32a = new Uint32Array(wasmMemory.buffer);
|
|
1343
|
-
var index = (func + emnapiTSFN.offset.dispatch_state)
|
|
1433
|
+
var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
|
|
1344
1434
|
while (has_more && --iterations_left !== 0) {
|
|
1345
1435
|
Atomics.store(ui32a, index, 1);
|
|
1346
1436
|
has_more = emnapiTSFN.dispatchOne(func);
|
|
@@ -1352,25 +1442,65 @@ function createNapiModule(options) {
|
|
|
1352
1442
|
emnapiTSFN.send(func);
|
|
1353
1443
|
}
|
|
1354
1444
|
},
|
|
1355
|
-
|
|
1356
|
-
var
|
|
1357
|
-
|
|
1445
|
+
enqueue: function (func) {
|
|
1446
|
+
var pending = func + emnapiTSFN.offset.async_pending;
|
|
1447
|
+
var scheduled = func + emnapiTSFN.offset.async_u_fd;
|
|
1448
|
+
var i32a = new Int32Array(wasmMemory.buffer);
|
|
1449
|
+
if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
|
|
1358
1450
|
return;
|
|
1359
1451
|
}
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1452
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1453
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
1454
|
+
return;
|
|
1455
|
+
}
|
|
1456
|
+
if (Atomics.load(i32a, pending >>> 2) === 0) {
|
|
1457
|
+
Atomics.store(i32a, scheduled >>> 2, 0);
|
|
1458
|
+
return;
|
|
1459
|
+
}
|
|
1460
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1461
|
+
try {
|
|
1462
|
+
if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
|
|
1463
|
+
return;
|
|
1464
|
+
}
|
|
1465
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
1466
|
+
return;
|
|
1467
|
+
}
|
|
1468
|
+
emnapiTSFN.dispatch(func);
|
|
1469
|
+
}
|
|
1470
|
+
finally {
|
|
1471
|
+
if (emnapiTSFN._liveSet.has(func)) {
|
|
1472
|
+
Atomics.store(i32a, scheduled >>> 2, 0);
|
|
1473
|
+
if (Atomics.load(i32a, pending >>> 2) !== 0) {
|
|
1474
|
+
emnapiTSFN.enqueue(func);
|
|
1475
|
+
}
|
|
1366
1476
|
}
|
|
1367
1477
|
}
|
|
1368
1478
|
});
|
|
1479
|
+
});
|
|
1480
|
+
},
|
|
1481
|
+
send: function (func) {
|
|
1482
|
+
var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
|
|
1483
|
+
if ((current_state & 1) === 1) {
|
|
1484
|
+
return;
|
|
1369
1485
|
}
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1486
|
+
var pendng = func + emnapiTSFN.offset.async_pending;
|
|
1487
|
+
if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
|
|
1488
|
+
return;
|
|
1489
|
+
}
|
|
1490
|
+
if (Atomics.exchange(new Int32Array(wasmMemory.buffer), pendng >>> 2, 1) === 0) {
|
|
1491
|
+
if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
|
|
1492
|
+
postMessage({
|
|
1493
|
+
__emnapi__: {
|
|
1494
|
+
type: 'tsfn-send',
|
|
1495
|
+
payload: {
|
|
1496
|
+
tsfn: func
|
|
1497
|
+
}
|
|
1498
|
+
}
|
|
1499
|
+
});
|
|
1500
|
+
}
|
|
1501
|
+
else {
|
|
1502
|
+
emnapiTSFN.enqueue(func);
|
|
1503
|
+
}
|
|
1374
1504
|
}
|
|
1375
1505
|
}
|
|
1376
1506
|
};
|
|
@@ -1381,6 +1511,13 @@ function createNapiModule(options) {
|
|
|
1381
1511
|
envObject.checkGCAccess();
|
|
1382
1512
|
if (!async_resource_name)
|
|
1383
1513
|
return envObject.setLastError(1);
|
|
1514
|
+
max_queue_size >>>= 0;
|
|
1515
|
+
initial_thread_count >>>= 0;
|
|
1516
|
+
env >>>= 0;
|
|
1517
|
+
thread_finalize_data >>>= 0;
|
|
1518
|
+
thread_finalize_cb >>>= 0;
|
|
1519
|
+
context >>>= 0;
|
|
1520
|
+
call_js_cb >>>= 0;
|
|
1384
1521
|
max_queue_size = max_queue_size >>> 0;
|
|
1385
1522
|
initial_thread_count = initial_thread_count >>> 0;
|
|
1386
1523
|
if (initial_thread_count === 0) {
|
|
@@ -1389,6 +1526,7 @@ function createNapiModule(options) {
|
|
|
1389
1526
|
if (!result)
|
|
1390
1527
|
return envObject.setLastError(1);
|
|
1391
1528
|
var ref = 0;
|
|
1529
|
+
func >>>= 0;
|
|
1392
1530
|
if (!func) {
|
|
1393
1531
|
if (!call_js_cb)
|
|
1394
1532
|
return envObject.setLastError(1);
|
|
@@ -1418,21 +1556,23 @@ function createNapiModule(options) {
|
|
|
1418
1556
|
}
|
|
1419
1557
|
asyncResourceName = String(asyncResourceName);
|
|
1420
1558
|
var resource_name = envObject.ensureHandleId(asyncResourceName);
|
|
1421
|
-
var sizeofTSFN = emnapiTSFN.offset.
|
|
1559
|
+
var sizeofTSFN = emnapiTSFN.offset.__size__;
|
|
1422
1560
|
var tsfn = _malloc(sizeofTSFN);
|
|
1423
1561
|
if (!tsfn)
|
|
1424
1562
|
return envObject.setLastError(9);
|
|
1563
|
+
tsfn >>>= 0;
|
|
1425
1564
|
new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
|
|
1426
1565
|
var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1);
|
|
1427
1566
|
var resource_ = resourceRef.id;
|
|
1428
1567
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1429
|
-
HEAP_DATA_VIEW.setUint32(tsfn, resource_, true);
|
|
1568
|
+
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
|
|
1430
1569
|
if (!emnapiTSFN.initQueue(tsfn)) {
|
|
1431
1570
|
_free(tsfn);
|
|
1432
1571
|
resourceRef.dispose();
|
|
1433
1572
|
return envObject.setLastError(9);
|
|
1434
1573
|
}
|
|
1435
1574
|
_emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
|
|
1575
|
+
HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
|
|
1436
1576
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
|
|
1437
1577
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
|
|
1438
1578
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
|
|
@@ -1442,9 +1582,11 @@ function createNapiModule(options) {
|
|
|
1442
1582
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
|
|
1443
1583
|
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
|
|
1444
1584
|
emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
|
|
1585
|
+
emnapiTSFN._liveSet.add(tsfn);
|
|
1445
1586
|
envObject.ref();
|
|
1446
1587
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1447
|
-
HEAP_DATA_VIEW.
|
|
1588
|
+
HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
|
|
1589
|
+
result >>>= 0;
|
|
1448
1590
|
HEAP_DATA_VIEW.setUint32(result, tsfn, true);
|
|
1449
1591
|
return envObject.clearLastError();
|
|
1450
1592
|
}
|
|
@@ -1453,6 +1595,8 @@ function createNapiModule(options) {
|
|
|
1453
1595
|
abort();
|
|
1454
1596
|
return 1;
|
|
1455
1597
|
}
|
|
1598
|
+
func >>>= 0;
|
|
1599
|
+
result >>>= 0;
|
|
1456
1600
|
var context = emnapiTSFN.getContext(func);
|
|
1457
1601
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1458
1602
|
HEAP_DATA_VIEW.setUint32(result, context, true);
|
|
@@ -1463,6 +1607,8 @@ function createNapiModule(options) {
|
|
|
1463
1607
|
abort();
|
|
1464
1608
|
return 1;
|
|
1465
1609
|
}
|
|
1610
|
+
func >>>= 0;
|
|
1611
|
+
data >>>= 0;
|
|
1466
1612
|
return emnapiTSFN.push(func, data, mode);
|
|
1467
1613
|
}
|
|
1468
1614
|
function napi_acquire_threadsafe_function(func) {
|
|
@@ -1470,13 +1616,14 @@ function createNapiModule(options) {
|
|
|
1470
1616
|
abort();
|
|
1471
1617
|
return 1;
|
|
1472
1618
|
}
|
|
1619
|
+
func >>>= 0;
|
|
1473
1620
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1474
1621
|
return mutex.execute(function () {
|
|
1475
|
-
if (emnapiTSFN.
|
|
1476
|
-
|
|
1622
|
+
if (emnapiTSFN.getState(func) === 0) {
|
|
1623
|
+
emnapiTSFN.addThreadCount(func);
|
|
1624
|
+
return 0;
|
|
1477
1625
|
}
|
|
1478
|
-
|
|
1479
|
-
return 0;
|
|
1626
|
+
return 16;
|
|
1480
1627
|
});
|
|
1481
1628
|
}
|
|
1482
1629
|
function napi_release_threadsafe_function(func, mode) {
|
|
@@ -1484,37 +1631,51 @@ function createNapiModule(options) {
|
|
|
1484
1631
|
abort();
|
|
1485
1632
|
return 1;
|
|
1486
1633
|
}
|
|
1634
|
+
func >>>= 0;
|
|
1487
1635
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1488
1636
|
var cond = emnapiTSFN.getCond(func);
|
|
1489
|
-
|
|
1637
|
+
var shouldDelete = false;
|
|
1638
|
+
var ret = mutex.execute(function () {
|
|
1490
1639
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1491
1640
|
return 1;
|
|
1492
1641
|
}
|
|
1493
1642
|
emnapiTSFN.subThreadCount(func);
|
|
1494
1643
|
if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1) {
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
if (
|
|
1644
|
+
if (emnapiTSFN.getState(func) === 0) {
|
|
1645
|
+
if (mode === 1) {
|
|
1646
|
+
emnapiTSFN.setState(func, 1);
|
|
1647
|
+
}
|
|
1648
|
+
if (emnapiTSFN.getState(func) === 1 && emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1500
1649
|
cond.signal();
|
|
1501
1650
|
}
|
|
1502
1651
|
emnapiTSFN.send(func);
|
|
1503
1652
|
}
|
|
1504
1653
|
}
|
|
1654
|
+
if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
1655
|
+
return 0;
|
|
1656
|
+
}
|
|
1657
|
+
shouldDelete = true;
|
|
1505
1658
|
return 0;
|
|
1506
1659
|
});
|
|
1660
|
+
if (shouldDelete) {
|
|
1661
|
+
emnapiTSFN.destroy(func);
|
|
1662
|
+
}
|
|
1663
|
+
return ret;
|
|
1507
1664
|
}
|
|
1508
1665
|
function napi_unref_threadsafe_function(env, func) {
|
|
1509
1666
|
if (!func) {
|
|
1510
1667
|
abort();
|
|
1511
1668
|
return 1;
|
|
1512
1669
|
}
|
|
1513
|
-
|
|
1514
|
-
var
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1670
|
+
func >>>= 0;
|
|
1671
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
1672
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
1673
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1674
|
+
if (currentValue > 0) {
|
|
1675
|
+
Atomics.store(arr, asyncRefOffset, currentValue - 1);
|
|
1676
|
+
if (currentValue === 1) {
|
|
1677
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1678
|
+
}
|
|
1518
1679
|
}
|
|
1519
1680
|
return 0;
|
|
1520
1681
|
}
|
|
@@ -1523,34 +1684,57 @@ function createNapiModule(options) {
|
|
|
1523
1684
|
abort();
|
|
1524
1685
|
return 1;
|
|
1525
1686
|
}
|
|
1526
|
-
|
|
1527
|
-
var
|
|
1528
|
-
|
|
1529
|
-
|
|
1687
|
+
func >>>= 0;
|
|
1688
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
1689
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
1690
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1691
|
+
if (!currentValue) {
|
|
1530
1692
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1531
1693
|
}
|
|
1694
|
+
Atomics.store(arr, asyncRefOffset, currentValue + 1);
|
|
1532
1695
|
return 0;
|
|
1533
1696
|
}
|
|
1534
1697
|
var emnapiAWMT = {
|
|
1535
|
-
|
|
1536
|
-
runningWorkers: [],
|
|
1537
|
-
workQueue: [],
|
|
1698
|
+
pool: [],
|
|
1538
1699
|
workerReady: null,
|
|
1700
|
+
globalAddress: 0,
|
|
1701
|
+
globalOffset: {
|
|
1702
|
+
idle_threads: 0,
|
|
1703
|
+
q: 1 * 4,
|
|
1704
|
+
next: 1 * 4,
|
|
1705
|
+
prev: 2 * 4,
|
|
1706
|
+
mutex: 3 * 4,
|
|
1707
|
+
cond: 4 * 4,
|
|
1708
|
+
exit_message: 5 * 4,
|
|
1709
|
+
end: 7 * 4
|
|
1710
|
+
},
|
|
1539
1711
|
offset: {
|
|
1540
1712
|
resource: 0,
|
|
1541
1713
|
async_id: 8,
|
|
1542
1714
|
trigger_async_id: 16,
|
|
1543
1715
|
env: 24,
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1716
|
+
status: 1 * 4 + 24,
|
|
1717
|
+
queue: 2 * 4 + 24,
|
|
1718
|
+
queue_next: 2 * 4 + 24,
|
|
1719
|
+
queue_prev: 3 * 4 + 24,
|
|
1720
|
+
data: 4 * 4 + 24,
|
|
1721
|
+
execute: 5 * 4 + 24,
|
|
1722
|
+
complete: 6 * 4 + 24,
|
|
1723
|
+
end: 7 * 4 + 24
|
|
1548
1724
|
},
|
|
1549
1725
|
init: function () {
|
|
1550
|
-
emnapiAWMT.
|
|
1551
|
-
emnapiAWMT.runningWorkers = [];
|
|
1552
|
-
emnapiAWMT.workQueue = [];
|
|
1726
|
+
emnapiAWMT.pool = [];
|
|
1553
1727
|
emnapiAWMT.workerReady = null;
|
|
1728
|
+
if (typeof PThread !== 'undefined') {
|
|
1729
|
+
PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
|
|
1730
|
+
PThread.runningWorkers.forEach(emnapiAWMT.addListener);
|
|
1731
|
+
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
1732
|
+
PThread.getNewWorker = function () {
|
|
1733
|
+
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
1734
|
+
emnapiAWMT.addListener(r);
|
|
1735
|
+
return r;
|
|
1736
|
+
};
|
|
1737
|
+
}
|
|
1554
1738
|
},
|
|
1555
1739
|
addListener: function (worker) {
|
|
1556
1740
|
if (!worker)
|
|
@@ -1564,18 +1748,8 @@ function createNapiModule(options) {
|
|
|
1564
1748
|
var type = __emnapi__.type;
|
|
1565
1749
|
var payload = __emnapi__.payload;
|
|
1566
1750
|
if (type === 'async-work-complete') {
|
|
1567
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1568
|
-
emnapiAWMT.runningWorkers.splice(emnapiAWMT.runningWorkers.indexOf(worker), 1);
|
|
1569
|
-
emnapiAWMT.unusedWorkers.push(worker);
|
|
1570
|
-
emnapiAWMT.checkIdleWorker();
|
|
1571
1751
|
emnapiAWMT.callComplete(payload.work, 0);
|
|
1572
1752
|
}
|
|
1573
|
-
else if (type === 'async-work-queue') {
|
|
1574
|
-
emnapiAWMT.scheduleWork(payload.work);
|
|
1575
|
-
}
|
|
1576
|
-
else if (type === 'async-work-cancel') {
|
|
1577
|
-
emnapiAWMT.cancelWork(payload.work);
|
|
1578
|
-
}
|
|
1579
1753
|
}
|
|
1580
1754
|
};
|
|
1581
1755
|
var dispose = function () {
|
|
@@ -1596,142 +1770,221 @@ function createNapiModule(options) {
|
|
|
1596
1770
|
}
|
|
1597
1771
|
return true;
|
|
1598
1772
|
},
|
|
1773
|
+
initGlobal: function () {
|
|
1774
|
+
if (!emnapiAWMT.globalAddress) {
|
|
1775
|
+
emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
|
|
1776
|
+
emnapiAWMT.globalAddress >>>= 0;
|
|
1777
|
+
var size = emnapiAWMT.globalOffset.end;
|
|
1778
|
+
var addr = emnapiAWMT.globalAddress;
|
|
1779
|
+
new Uint8Array(wasmMemory.buffer, addr, size).fill(0);
|
|
1780
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
|
|
1781
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
|
|
1782
|
+
}
|
|
1783
|
+
},
|
|
1784
|
+
terminateWorkers: function () {
|
|
1785
|
+
emnapiAWMT.pool.forEach(function (w) {
|
|
1786
|
+
var _a, _b;
|
|
1787
|
+
(_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
1788
|
+
(_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
1789
|
+
w.terminate();
|
|
1790
|
+
});
|
|
1791
|
+
emnapiAWMT.pool.length = 0;
|
|
1792
|
+
},
|
|
1599
1793
|
initWorkers: function (n) {
|
|
1600
1794
|
if (ENVIRONMENT_IS_PTHREAD) {
|
|
1601
1795
|
return emnapiAWMT.workerReady || (emnapiAWMT.workerReady = Promise.resolve());
|
|
1602
1796
|
}
|
|
1603
1797
|
if (emnapiAWMT.workerReady)
|
|
1604
1798
|
return emnapiAWMT.workerReady;
|
|
1605
|
-
if (typeof onCreateWorker !== 'function') {
|
|
1606
|
-
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
1607
|
-
}
|
|
1608
|
-
var promises = [];
|
|
1609
|
-
var args = [];
|
|
1610
1799
|
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
1611
1800
|
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
1612
1801
|
}
|
|
1802
|
+
var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
|
|
1803
|
+
var args = [];
|
|
1804
|
+
emnapiAWMT.initGlobal();
|
|
1613
1805
|
for (var i = 0; i < n; ++i) {
|
|
1614
|
-
args.push(
|
|
1806
|
+
args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
|
|
1615
1807
|
}
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
var p = PThread.loadWasmModuleToWorker(worker);
|
|
1620
|
-
emnapiAWMT.addListener(worker);
|
|
1621
|
-
promises.push(p.then(function () {
|
|
1622
|
-
if (typeof worker.unref === 'function') {
|
|
1623
|
-
worker.unref();
|
|
1624
|
-
}
|
|
1625
|
-
}));
|
|
1626
|
-
emnapiAWMT.unusedWorkers.push(worker);
|
|
1627
|
-
var arg = args[i];
|
|
1628
|
-
worker.threadBlockBase = arg;
|
|
1629
|
-
worker.postMessage({
|
|
1630
|
-
__emnapi__: {
|
|
1631
|
-
type: 'async-worker-init',
|
|
1632
|
-
payload: { arg: arg }
|
|
1633
|
-
}
|
|
1634
|
-
});
|
|
1635
|
-
};
|
|
1636
|
-
for (var i = 0; i < n; ++i) {
|
|
1637
|
-
_loop_1(i);
|
|
1808
|
+
var promises = args.map(function (index) {
|
|
1809
|
+
if (index === 0) {
|
|
1810
|
+
return Promise.reject(new Error('Failed to create async worker'));
|
|
1638
1811
|
}
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1812
|
+
var worker;
|
|
1813
|
+
if (index < 0) {
|
|
1814
|
+
worker = emnapiAWMT.pool[-index - 1];
|
|
1815
|
+
if (worker)
|
|
1816
|
+
return worker.whenLoaded;
|
|
1644
1817
|
}
|
|
1645
|
-
|
|
1646
|
-
|
|
1818
|
+
index >>>= 0;
|
|
1819
|
+
var view = new DataView(wasmMemory.buffer);
|
|
1820
|
+
var tidOffset = 20;
|
|
1821
|
+
var tid = view.getInt32(index + tidOffset, true);
|
|
1822
|
+
worker = PThread.pthreads[tid];
|
|
1823
|
+
return worker.whenLoaded;
|
|
1824
|
+
});
|
|
1647
1825
|
emnapiAWMT.workerReady = Promise.all(promises);
|
|
1648
1826
|
return emnapiAWMT.workerReady;
|
|
1649
1827
|
},
|
|
1650
|
-
checkIdleWorker: function () {
|
|
1651
|
-
if (emnapiAWMT.unusedWorkers.length > 0 && emnapiAWMT.workQueue.length > 0) {
|
|
1652
|
-
var worker = emnapiAWMT.unusedWorkers.shift();
|
|
1653
|
-
var work = emnapiAWMT.workQueue.shift();
|
|
1654
|
-
emnapiAWMT.runningWorkers.push(worker);
|
|
1655
|
-
worker.postMessage({
|
|
1656
|
-
__emnapi__: {
|
|
1657
|
-
type: 'async-work-execute',
|
|
1658
|
-
payload: { work: work }
|
|
1659
|
-
}
|
|
1660
|
-
});
|
|
1661
|
-
}
|
|
1662
|
-
},
|
|
1663
1828
|
getResource: function (work) {
|
|
1664
|
-
|
|
1829
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1830
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
|
|
1665
1831
|
},
|
|
1666
1832
|
getExecute: function (work) {
|
|
1667
|
-
|
|
1833
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1834
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
|
|
1668
1835
|
},
|
|
1669
1836
|
getComplete: function (work) {
|
|
1670
|
-
|
|
1837
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1838
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
|
|
1671
1839
|
},
|
|
1672
1840
|
getEnv: function (work) {
|
|
1673
|
-
|
|
1841
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1842
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
|
|
1674
1843
|
},
|
|
1675
1844
|
getData: function (work) {
|
|
1676
|
-
|
|
1845
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1846
|
+
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
|
|
1847
|
+
},
|
|
1848
|
+
getMutex: function () {
|
|
1849
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
|
|
1850
|
+
var mutex = {
|
|
1851
|
+
lock: function () {
|
|
1852
|
+
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
1853
|
+
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
1854
|
+
if (isBrowserMain) {
|
|
1855
|
+
while (true) {
|
|
1856
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1857
|
+
if (oldValue === 0) {
|
|
1858
|
+
return;
|
|
1859
|
+
}
|
|
1860
|
+
}
|
|
1861
|
+
}
|
|
1862
|
+
else {
|
|
1863
|
+
while (true) {
|
|
1864
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1865
|
+
if (oldValue === 0) {
|
|
1866
|
+
return;
|
|
1867
|
+
}
|
|
1868
|
+
Atomics.wait(i32a, 0, 10);
|
|
1869
|
+
}
|
|
1870
|
+
}
|
|
1871
|
+
},
|
|
1872
|
+
unlock: function () {
|
|
1873
|
+
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
1874
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
1875
|
+
if (oldValue !== 10) {
|
|
1876
|
+
throw new Error('Tried to unlock while not holding the mutex');
|
|
1877
|
+
}
|
|
1878
|
+
Atomics.notify(i32a, 0, 1);
|
|
1879
|
+
},
|
|
1880
|
+
execute: function (fn) {
|
|
1881
|
+
mutex.lock();
|
|
1882
|
+
try {
|
|
1883
|
+
return fn();
|
|
1884
|
+
}
|
|
1885
|
+
finally {
|
|
1886
|
+
mutex.unlock();
|
|
1887
|
+
}
|
|
1888
|
+
}
|
|
1889
|
+
};
|
|
1890
|
+
return mutex;
|
|
1891
|
+
},
|
|
1892
|
+
getCond: function () {
|
|
1893
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
|
|
1894
|
+
var mutex = emnapiAWMT.getMutex();
|
|
1895
|
+
var cond = {
|
|
1896
|
+
wait: function () {
|
|
1897
|
+
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
1898
|
+
var value = Atomics.load(i32a, 0);
|
|
1899
|
+
mutex.unlock();
|
|
1900
|
+
Atomics.wait(i32a, 0, value);
|
|
1901
|
+
mutex.lock();
|
|
1902
|
+
},
|
|
1903
|
+
signal: function () {
|
|
1904
|
+
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
1905
|
+
Atomics.add(i32a, 0, 1);
|
|
1906
|
+
Atomics.notify(i32a, 0, 1);
|
|
1907
|
+
}
|
|
1908
|
+
};
|
|
1909
|
+
return cond;
|
|
1910
|
+
},
|
|
1911
|
+
queueInit: function (q) {
|
|
1912
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1913
|
+
HEAP_DATA_VIEW.setUint32(q, q, true);
|
|
1914
|
+
HEAP_DATA_VIEW.setUint32(q + 4, q, true);
|
|
1915
|
+
},
|
|
1916
|
+
queueInsertTail: function (h, q) {
|
|
1917
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1918
|
+
HEAP_DATA_VIEW.setUint32(q, h, true);
|
|
1919
|
+
var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
|
|
1920
|
+
HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
|
|
1921
|
+
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
1922
|
+
HEAP_DATA_VIEW.setUint32(qprev, q, true);
|
|
1923
|
+
HEAP_DATA_VIEW.setUint32(h + 4, q, true);
|
|
1924
|
+
},
|
|
1925
|
+
queueRemove: function (q) {
|
|
1926
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1927
|
+
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
1928
|
+
var qnext = HEAP_DATA_VIEW.getUint32(q, true);
|
|
1929
|
+
HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
|
|
1930
|
+
HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
|
|
1931
|
+
},
|
|
1932
|
+
queueEmpty: function (q) {
|
|
1933
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1934
|
+
return q == HEAP_DATA_VIEW.getUint32(q, true);
|
|
1677
1935
|
},
|
|
1678
1936
|
scheduleWork: function (work) {
|
|
1679
1937
|
var _a;
|
|
1680
|
-
if (
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
}
|
|
1938
|
+
if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
|
|
1939
|
+
emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
|
|
1940
|
+
emnapiAWMT.workerReady.ready = true;
|
|
1941
|
+
}).catch(function (err) {
|
|
1942
|
+
emnapiAWMT.workerReady = null;
|
|
1943
|
+
throw err;
|
|
1687
1944
|
});
|
|
1688
|
-
return;
|
|
1689
1945
|
}
|
|
1690
1946
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1691
|
-
emnapiAWMT.
|
|
1692
|
-
|
|
1693
|
-
|
|
1947
|
+
var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
|
|
1948
|
+
Atomics.store(statusBuffer, 0, 0);
|
|
1949
|
+
var mutex = emnapiAWMT.getMutex();
|
|
1950
|
+
var cond = emnapiAWMT.getCond();
|
|
1951
|
+
mutex.lock();
|
|
1952
|
+
try {
|
|
1953
|
+
emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
|
|
1694
1954
|
}
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
emnapiAWMT.checkIdleWorker();
|
|
1704
|
-
}, fail);
|
|
1705
|
-
}
|
|
1706
|
-
catch (err) {
|
|
1707
|
-
fail(err);
|
|
1708
|
-
}
|
|
1955
|
+
catch (err) {
|
|
1956
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1957
|
+
mutex.unlock();
|
|
1958
|
+
throw err;
|
|
1959
|
+
}
|
|
1960
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1961
|
+
if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
|
|
1962
|
+
cond.signal();
|
|
1709
1963
|
}
|
|
1964
|
+
mutex.unlock();
|
|
1710
1965
|
},
|
|
1711
1966
|
cancelWork: function (work) {
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1967
|
+
var cancelled = false;
|
|
1968
|
+
emnapiAWMT.getMutex().execute(function () {
|
|
1969
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1970
|
+
cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2;
|
|
1971
|
+
if (cancelled) {
|
|
1972
|
+
emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
|
|
1973
|
+
}
|
|
1974
|
+
});
|
|
1975
|
+
if (!cancelled) {
|
|
1976
|
+
return 9;
|
|
1721
1977
|
}
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
emnapiAWMT.workQueue.splice(index, 1);
|
|
1725
|
-
emnapiCtx.feature.setImmediate(function () {
|
|
1726
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1727
|
-
emnapiAWMT.checkIdleWorker();
|
|
1728
|
-
emnapiAWMT.callComplete(work, 11);
|
|
1729
|
-
});
|
|
1730
|
-
return 0;
|
|
1978
|
+
if (Atomics.compareExchange(new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1), 0, 0, 1) !== 0) {
|
|
1979
|
+
return 9;
|
|
1731
1980
|
}
|
|
1732
|
-
|
|
1981
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1982
|
+
emnapiAWMT.callComplete(work, 11);
|
|
1983
|
+
});
|
|
1984
|
+
return 0;
|
|
1733
1985
|
},
|
|
1734
1986
|
callComplete: function (work, status) {
|
|
1987
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1735
1988
|
var complete = emnapiAWMT.getComplete(work);
|
|
1736
1989
|
var env = emnapiAWMT.getEnv(work);
|
|
1737
1990
|
var data = emnapiAWMT.getData(work);
|
|
@@ -1766,6 +2019,7 @@ function createNapiModule(options) {
|
|
|
1766
2019
|
}
|
|
1767
2020
|
}
|
|
1768
2021
|
};
|
|
2022
|
+
emnapiAWMT.init();
|
|
1769
2023
|
var napi_create_async_work = singleThreadAsyncWork
|
|
1770
2024
|
? function (env, resource, resource_name, execute, complete, data, result) {
|
|
1771
2025
|
if (!env)
|
|
@@ -1787,6 +2041,7 @@ function createNapiModule(options) {
|
|
|
1787
2041
|
return envObject.setLastError(1);
|
|
1788
2042
|
var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
|
|
1789
2043
|
var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
|
|
2044
|
+
result >>>= 0;
|
|
1790
2045
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1791
2046
|
HEAP_DATA_VIEW.setUint32(result, id, true);
|
|
1792
2047
|
return envObject.clearLastError();
|
|
@@ -1813,6 +2068,7 @@ function createNapiModule(options) {
|
|
|
1813
2068
|
var aw = _malloc(sizeofAW);
|
|
1814
2069
|
if (!aw)
|
|
1815
2070
|
return envObject.setLastError(9);
|
|
2071
|
+
aw >>>= 0;
|
|
1816
2072
|
new Uint8Array(wasmMemory.buffer).subarray(aw, aw + sizeofAW).fill(0);
|
|
1817
2073
|
var s = envObject.ensureHandleId(resourceObject);
|
|
1818
2074
|
var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1);
|
|
@@ -1824,6 +2080,8 @@ function createNapiModule(options) {
|
|
|
1824
2080
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
|
|
1825
2081
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
|
|
1826
2082
|
HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
|
|
2083
|
+
emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
|
|
2084
|
+
result >>>= 0;
|
|
1827
2085
|
HEAP_DATA_VIEW.setUint32(result, aw, true);
|
|
1828
2086
|
return envObject.clearLastError();
|
|
1829
2087
|
};
|
|
@@ -1835,6 +2093,7 @@ function createNapiModule(options) {
|
|
|
1835
2093
|
envObject.checkGCAccess();
|
|
1836
2094
|
if (!work)
|
|
1837
2095
|
return envObject.setLastError(1);
|
|
2096
|
+
work >>>= 0;
|
|
1838
2097
|
emnapiAWST.remove(work);
|
|
1839
2098
|
return envObject.clearLastError();
|
|
1840
2099
|
}
|
|
@@ -1845,6 +2104,7 @@ function createNapiModule(options) {
|
|
|
1845
2104
|
envObject.checkGCAccess();
|
|
1846
2105
|
if (!work)
|
|
1847
2106
|
return envObject.setLastError(1);
|
|
2107
|
+
work >>>= 0;
|
|
1848
2108
|
var resource = emnapiAWMT.getResource(work);
|
|
1849
2109
|
emnapiCtx.refStore.get(resource).dispose();
|
|
1850
2110
|
if (emnapiNodeBinding) {
|
|
@@ -1863,6 +2123,7 @@ function createNapiModule(options) {
|
|
|
1863
2123
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1864
2124
|
if (!work)
|
|
1865
2125
|
return envObject.setLastError(1);
|
|
2126
|
+
work >>>= 0;
|
|
1866
2127
|
emnapiAWST.queue(work);
|
|
1867
2128
|
return envObject.clearLastError();
|
|
1868
2129
|
}
|
|
@@ -1872,6 +2133,7 @@ function createNapiModule(options) {
|
|
|
1872
2133
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1873
2134
|
if (!work)
|
|
1874
2135
|
return envObject.setLastError(1);
|
|
2136
|
+
work >>>= 0;
|
|
1875
2137
|
emnapiAWMT.scheduleWork(work);
|
|
1876
2138
|
return envObject.clearLastError();
|
|
1877
2139
|
};
|
|
@@ -1882,6 +2144,7 @@ function createNapiModule(options) {
|
|
|
1882
2144
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1883
2145
|
if (!work)
|
|
1884
2146
|
return envObject.setLastError(1);
|
|
2147
|
+
work >>>= 0;
|
|
1885
2148
|
var status = emnapiAWST.cancel(work);
|
|
1886
2149
|
if (status === 0)
|
|
1887
2150
|
return envObject.clearLastError();
|
|
@@ -1893,41 +2156,124 @@ function createNapiModule(options) {
|
|
|
1893
2156
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1894
2157
|
if (!work)
|
|
1895
2158
|
return envObject.setLastError(1);
|
|
2159
|
+
work >>>= 0;
|
|
1896
2160
|
var status = emnapiAWMT.cancelWork(work);
|
|
1897
2161
|
if (status === 0)
|
|
1898
2162
|
return envObject.clearLastError();
|
|
1899
2163
|
return envObject.setLastError(status);
|
|
1900
2164
|
};
|
|
1901
|
-
function
|
|
2165
|
+
function _emnapi_async_worker(globalAddress) {
|
|
2166
|
+
globalAddress >>>= 0;
|
|
2167
|
+
emnapiAWMT.globalAddress = globalAddress;
|
|
2168
|
+
var mutex = emnapiAWMT.getMutex();
|
|
2169
|
+
var cond = emnapiAWMT.getCond();
|
|
2170
|
+
mutex.lock();
|
|
2171
|
+
var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
|
|
2172
|
+
var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
|
|
2173
|
+
var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
|
|
2174
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2175
|
+
for (;;) {
|
|
2176
|
+
while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
|
|
2177
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
|
|
2178
|
+
cond.wait();
|
|
2179
|
+
Atomics.sub(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
|
|
2180
|
+
}
|
|
2181
|
+
var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
|
|
2182
|
+
if (q === exitMessageAddr) {
|
|
2183
|
+
cond.signal();
|
|
2184
|
+
mutex.unlock();
|
|
2185
|
+
break;
|
|
2186
|
+
}
|
|
2187
|
+
var work = q - emnapiAWMT.offset.queue;
|
|
2188
|
+
emnapiAWMT.queueRemove(q);
|
|
2189
|
+
emnapiAWMT.queueInit(q);
|
|
2190
|
+
mutex.unlock();
|
|
2191
|
+
var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
|
|
2192
|
+
if (Atomics.load(statusBuffer, 0) === 1) {
|
|
2193
|
+
abort('unreachable');
|
|
2194
|
+
}
|
|
2195
|
+
var execute = emnapiAWMT.getExecute(work);
|
|
2196
|
+
var env = emnapiAWMT.getEnv(work);
|
|
2197
|
+
var data = emnapiAWMT.getData(work);
|
|
2198
|
+
(wasmTable.get(execute))(env, data);
|
|
2199
|
+
Atomics.store(statusBuffer, 0, 2);
|
|
2200
|
+
var postMessage_1 = napiModule.postMessage;
|
|
2201
|
+
postMessage_1({
|
|
2202
|
+
__emnapi__: {
|
|
2203
|
+
type: 'async-work-complete',
|
|
2204
|
+
payload: { work: work }
|
|
2205
|
+
}
|
|
2206
|
+
});
|
|
2207
|
+
mutex.lock();
|
|
2208
|
+
}
|
|
2209
|
+
return 0;
|
|
2210
|
+
}
|
|
2211
|
+
function _emnapi_spawn_worker(f, globalAddress) {
|
|
2212
|
+
if (typeof onCreateWorker !== 'function') {
|
|
2213
|
+
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
2214
|
+
}
|
|
2215
|
+
var promises = [];
|
|
2216
|
+
var args = [];
|
|
2217
|
+
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
2218
|
+
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
2219
|
+
}
|
|
2220
|
+
args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
|
|
2221
|
+
var handleError = function (e) {
|
|
2222
|
+
if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
|
|
2223
|
+
emnapiAWMT.terminateWorkers();
|
|
2224
|
+
}
|
|
2225
|
+
};
|
|
2226
|
+
var ret;
|
|
2227
|
+
try {
|
|
2228
|
+
var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
|
|
2229
|
+
var p = PThread.loadWasmModuleToWorker(worker_1);
|
|
2230
|
+
if (ENVIRONMENT_IS_NODE) {
|
|
2231
|
+
worker_1.on('error', handleError);
|
|
2232
|
+
}
|
|
2233
|
+
else {
|
|
2234
|
+
worker_1.addEventListener('error', handleError, false);
|
|
2235
|
+
}
|
|
2236
|
+
emnapiAWMT.addListener(worker_1);
|
|
2237
|
+
emnapiTSFN.addListener(worker_1);
|
|
2238
|
+
promises.push(p.then(function () {
|
|
2239
|
+
if (typeof worker_1.unref === 'function') {
|
|
2240
|
+
worker_1.unref();
|
|
2241
|
+
}
|
|
2242
|
+
}));
|
|
2243
|
+
ret = emnapiAWMT.pool.push(worker_1) - 1;
|
|
2244
|
+
var arg = args[0];
|
|
2245
|
+
worker_1.threadBlockBase = arg;
|
|
2246
|
+
worker_1.postMessage({
|
|
2247
|
+
__emnapi__: {
|
|
2248
|
+
type: 'async-worker-init',
|
|
2249
|
+
payload: { arg: arg, func: [f, globalAddress] }
|
|
2250
|
+
}
|
|
2251
|
+
});
|
|
2252
|
+
}
|
|
2253
|
+
catch (err) {
|
|
2254
|
+
var arg = args[0];
|
|
2255
|
+
_free(arg);
|
|
2256
|
+
throw err;
|
|
2257
|
+
}
|
|
2258
|
+
return ret;
|
|
2259
|
+
}
|
|
2260
|
+
function initWorker(startArg, func) {
|
|
1902
2261
|
if (napiModule.childThread) {
|
|
1903
2262
|
if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
|
|
1904
2263
|
throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
|
|
1905
2264
|
}
|
|
1906
2265
|
wasmInstance.exports.emnapi_async_worker_init(startArg);
|
|
2266
|
+
(wasmTable.get(func[0]))(func[1]);
|
|
1907
2267
|
}
|
|
1908
2268
|
else {
|
|
1909
2269
|
throw new Error('startThread is only available in child threads');
|
|
1910
2270
|
}
|
|
1911
2271
|
}
|
|
1912
|
-
function executeAsyncWork(work) {
|
|
1913
|
-
if (!ENVIRONMENT_IS_PTHREAD)
|
|
1914
|
-
return;
|
|
1915
|
-
var execute = emnapiAWMT.getExecute(work);
|
|
1916
|
-
var env = emnapiAWMT.getEnv(work);
|
|
1917
|
-
var data = emnapiAWMT.getData(work);
|
|
1918
|
-
(wasmTable.get(execute))(env, data);
|
|
1919
|
-
var postMessage = napiModule.postMessage;
|
|
1920
|
-
postMessage({
|
|
1921
|
-
__emnapi__: {
|
|
1922
|
-
type: 'async-work-complete',
|
|
1923
|
-
payload: { work: work }
|
|
1924
|
-
}
|
|
1925
|
-
});
|
|
1926
|
-
}
|
|
1927
2272
|
napiModule.initWorker = initWorker;
|
|
1928
|
-
napiModule.executeAsyncWork = executeAsyncWork;
|
|
1929
2273
|
var asyncWorkMod = Object.freeze({
|
|
1930
2274
|
__proto__: null,
|
|
2275
|
+
_emnapi_async_worker: _emnapi_async_worker,
|
|
2276
|
+
_emnapi_spawn_worker: _emnapi_spawn_worker,
|
|
1931
2277
|
napi_cancel_async_work: napi_cancel_async_work,
|
|
1932
2278
|
napi_create_async_work: napi_create_async_work,
|
|
1933
2279
|
napi_delete_async_work: napi_delete_async_work,
|
|
@@ -1988,6 +2334,7 @@ function createNapiModule(options) {
|
|
|
1988
2334
|
var pointer = _malloc(arrayBuffer.byteLength);
|
|
1989
2335
|
if (!pointer)
|
|
1990
2336
|
throw new Error('Out of memory');
|
|
2337
|
+
pointer >>>= 0;
|
|
1991
2338
|
new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
|
|
1992
2339
|
info.address = pointer;
|
|
1993
2340
|
info.ownership = emnapiExternalMemory.registry ? 0 : 1;
|
|
@@ -2009,8 +2356,7 @@ function createNapiModule(options) {
|
|
|
2009
2356
|
}
|
|
2010
2357
|
return view;
|
|
2011
2358
|
}
|
|
2012
|
-
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) ||
|
|
2013
|
-
((typeof SharedArrayBuffer === 'function') && (view.buffer instanceof SharedArrayBuffer));
|
|
2359
|
+
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
|
|
2014
2360
|
if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
2015
2361
|
var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
|
|
2016
2362
|
var Ctor = info.Ctor;
|
|
@@ -2143,7 +2489,7 @@ function createNapiModule(options) {
|
|
|
2143
2489
|
ptr >>>= 0;
|
|
2144
2490
|
var HEAPU8 = new Uint8Array(wasmMemory.buffer);
|
|
2145
2491
|
var end = ptr;
|
|
2146
|
-
if (length === -1) {
|
|
2492
|
+
if (length === -1 || length === 4294967295) {
|
|
2147
2493
|
for (; HEAPU8[end];)
|
|
2148
2494
|
++end;
|
|
2149
2495
|
}
|
|
@@ -2234,12 +2580,12 @@ function createNapiModule(options) {
|
|
|
2234
2580
|
return '';
|
|
2235
2581
|
ptr >>>= 0;
|
|
2236
2582
|
var end = ptr;
|
|
2237
|
-
if (length === -1) {
|
|
2238
|
-
var idx = end
|
|
2583
|
+
if (length === -1 || length === 4294967295) {
|
|
2584
|
+
var idx = end >>> 1;
|
|
2239
2585
|
var HEAPU16 = new Uint16Array(wasmMemory.buffer);
|
|
2240
2586
|
while (HEAPU16[idx])
|
|
2241
2587
|
++idx;
|
|
2242
|
-
end = idx << 1;
|
|
2588
|
+
end = (idx << 1) >>> 0;
|
|
2243
2589
|
}
|
|
2244
2590
|
else {
|
|
2245
2591
|
end = ptr + (length >>> 0) * 2;
|
|
@@ -2270,11 +2616,12 @@ function createNapiModule(options) {
|
|
|
2270
2616
|
return outPtr - startPtr;
|
|
2271
2617
|
},
|
|
2272
2618
|
newString: function (env, str, length, result, stringMaker) {
|
|
2619
|
+
length >>>= 0;
|
|
2273
2620
|
if (!env)
|
|
2274
2621
|
return 1;
|
|
2275
2622
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2276
2623
|
envObject.checkGCAccess();
|
|
2277
|
-
var autoLength = length === -1;
|
|
2624
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
2278
2625
|
var sizelength = length >>> 0;
|
|
2279
2626
|
if (length !== 0) {
|
|
2280
2627
|
if (!str)
|
|
@@ -2284,18 +2631,21 @@ function createNapiModule(options) {
|
|
|
2284
2631
|
return envObject.setLastError(1);
|
|
2285
2632
|
if (!(autoLength || (sizelength <= 2147483647)))
|
|
2286
2633
|
return envObject.setLastError(1);
|
|
2634
|
+
str >>>= 0;
|
|
2287
2635
|
var strValue = stringMaker(str, autoLength, sizelength);
|
|
2636
|
+
result >>>= 0;
|
|
2288
2637
|
var value = emnapiCtx.addToCurrentScope(strValue).id;
|
|
2289
2638
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2290
2639
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
2291
2640
|
return envObject.clearLastError();
|
|
2292
2641
|
},
|
|
2293
2642
|
newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
|
|
2643
|
+
length >>>= 0;
|
|
2294
2644
|
if (!env)
|
|
2295
2645
|
return 1;
|
|
2296
2646
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2297
2647
|
envObject.checkGCAccess();
|
|
2298
|
-
var autoLength = length === -1;
|
|
2648
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
2299
2649
|
var sizelength = length >>> 0;
|
|
2300
2650
|
if (length !== 0) {
|
|
2301
2651
|
if (!str)
|
|
@@ -2337,6 +2687,7 @@ function createNapiModule(options) {
|
|
|
2337
2687
|
if (!handle.isArray()) {
|
|
2338
2688
|
return envObject.setLastError(8);
|
|
2339
2689
|
}
|
|
2690
|
+
result >>>= 0;
|
|
2340
2691
|
var v = handle.value.length >>> 0;
|
|
2341
2692
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2342
2693
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -2360,10 +2711,12 @@ function createNapiModule(options) {
|
|
|
2360
2711
|
}
|
|
2361
2712
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2362
2713
|
if (data) {
|
|
2714
|
+
data >>>= 0;
|
|
2363
2715
|
var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
|
|
2364
2716
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2365
2717
|
}
|
|
2366
2718
|
if (byte_length) {
|
|
2719
|
+
byte_length >>>= 0;
|
|
2367
2720
|
HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
|
|
2368
2721
|
}
|
|
2369
2722
|
return envObject.clearLastError();
|
|
@@ -2428,6 +2781,7 @@ function createNapiModule(options) {
|
|
|
2428
2781
|
catch (_) {
|
|
2429
2782
|
return envObject.setLastError(2);
|
|
2430
2783
|
}
|
|
2784
|
+
result >>>= 0;
|
|
2431
2785
|
var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
|
|
2432
2786
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2433
2787
|
HEAP_DATA_VIEW.setUint32(result, p, true);
|
|
@@ -2452,6 +2806,7 @@ function createNapiModule(options) {
|
|
|
2452
2806
|
var v = handle.value;
|
|
2453
2807
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2454
2808
|
if (type) {
|
|
2809
|
+
type >>>= 0;
|
|
2455
2810
|
var t = void 0;
|
|
2456
2811
|
if (v instanceof Int8Array) {
|
|
2457
2812
|
t = 0;
|
|
@@ -2494,22 +2849,25 @@ function createNapiModule(options) {
|
|
|
2494
2849
|
}
|
|
2495
2850
|
HEAP_DATA_VIEW.setInt32(type, t, true);
|
|
2496
2851
|
}
|
|
2852
|
+
v = emnapiExternalMemory.getOrUpdateMemoryView(v);
|
|
2497
2853
|
if (length) {
|
|
2854
|
+
length >>>= 0;
|
|
2498
2855
|
HEAP_DATA_VIEW.setUint32(length, v.length, true);
|
|
2499
2856
|
}
|
|
2500
|
-
var buffer;
|
|
2501
2857
|
if (data || arraybuffer) {
|
|
2502
|
-
buffer = v.buffer;
|
|
2503
2858
|
if (data) {
|
|
2859
|
+
data >>>= 0;
|
|
2504
2860
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
2505
2861
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2506
2862
|
}
|
|
2507
2863
|
if (arraybuffer) {
|
|
2508
|
-
|
|
2864
|
+
arraybuffer >>>= 0;
|
|
2865
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
2509
2866
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
2510
2867
|
}
|
|
2511
2868
|
}
|
|
2512
2869
|
if (byte_offset) {
|
|
2870
|
+
byte_offset >>>= 0;
|
|
2513
2871
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
2514
2872
|
}
|
|
2515
2873
|
return envObject.clearLastError();
|
|
@@ -2540,24 +2898,26 @@ function createNapiModule(options) {
|
|
|
2540
2898
|
if (!handle.isDataView()) {
|
|
2541
2899
|
return envObject.setLastError(1);
|
|
2542
2900
|
}
|
|
2543
|
-
var v = handle.value;
|
|
2901
|
+
var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
|
|
2544
2902
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2545
2903
|
if (byte_length) {
|
|
2904
|
+
byte_length >>>= 0;
|
|
2546
2905
|
HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
|
|
2547
2906
|
}
|
|
2548
|
-
var buffer;
|
|
2549
2907
|
if (data || arraybuffer) {
|
|
2550
|
-
buffer = v.buffer;
|
|
2551
2908
|
if (data) {
|
|
2909
|
+
data >>>= 0;
|
|
2552
2910
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
2553
2911
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2554
2912
|
}
|
|
2555
2913
|
if (arraybuffer) {
|
|
2556
|
-
|
|
2914
|
+
arraybuffer >>>= 0;
|
|
2915
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
2557
2916
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
2558
2917
|
}
|
|
2559
2918
|
}
|
|
2560
2919
|
if (byte_offset) {
|
|
2920
|
+
byte_offset >>>= 0;
|
|
2561
2921
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
2562
2922
|
}
|
|
2563
2923
|
return envObject.clearLastError();
|
|
@@ -2582,6 +2942,7 @@ function createNapiModule(options) {
|
|
|
2582
2942
|
if (!handle.isDate()) {
|
|
2583
2943
|
return envObject.setLastError(1);
|
|
2584
2944
|
}
|
|
2945
|
+
result >>>= 0;
|
|
2585
2946
|
v = handle.value.valueOf();
|
|
2586
2947
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2587
2948
|
HEAP_DATA_VIEW.setFloat64(result, v, true);
|
|
@@ -2605,6 +2966,7 @@ function createNapiModule(options) {
|
|
|
2605
2966
|
if (typeof handle.value !== 'boolean') {
|
|
2606
2967
|
return envObject.setLastError(7);
|
|
2607
2968
|
}
|
|
2969
|
+
result >>>= 0;
|
|
2608
2970
|
var r = handle.value ? 1 : 0;
|
|
2609
2971
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2610
2972
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -2623,6 +2985,7 @@ function createNapiModule(options) {
|
|
|
2623
2985
|
if (typeof handle.value !== 'number') {
|
|
2624
2986
|
return envObject.setLastError(6);
|
|
2625
2987
|
}
|
|
2988
|
+
result >>>= 0;
|
|
2626
2989
|
var r = handle.value;
|
|
2627
2990
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2628
2991
|
HEAP_DATA_VIEW.setFloat64(result, r, true);
|
|
@@ -2647,6 +3010,8 @@ function createNapiModule(options) {
|
|
|
2647
3010
|
if (typeof numberValue !== 'bigint') {
|
|
2648
3011
|
return envObject.setLastError(6);
|
|
2649
3012
|
}
|
|
3013
|
+
lossless >>>= 0;
|
|
3014
|
+
result >>>= 0;
|
|
2650
3015
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2651
3016
|
if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
|
|
2652
3017
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -2683,6 +3048,8 @@ function createNapiModule(options) {
|
|
|
2683
3048
|
if (typeof numberValue !== 'bigint') {
|
|
2684
3049
|
return envObject.setLastError(6);
|
|
2685
3050
|
}
|
|
3051
|
+
lossless >>>= 0;
|
|
3052
|
+
result >>>= 0;
|
|
2686
3053
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2687
3054
|
if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
|
|
2688
3055
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -2714,8 +3081,12 @@ function createNapiModule(options) {
|
|
|
2714
3081
|
return envObject.setLastError(17);
|
|
2715
3082
|
}
|
|
2716
3083
|
var isMinus = handle.value < BigInt(0);
|
|
3084
|
+
sign_bit >>>= 0;
|
|
3085
|
+
words >>>= 0;
|
|
3086
|
+
word_count >>>= 0;
|
|
2717
3087
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2718
3088
|
var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
|
|
3089
|
+
word_count_int >>>= 0;
|
|
2719
3090
|
var wordCount = 0;
|
|
2720
3091
|
var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
2721
3092
|
while (bigintValue !== BigInt(0)) {
|
|
@@ -2763,6 +3134,7 @@ function createNapiModule(options) {
|
|
|
2763
3134
|
if (!handle.isExternal()) {
|
|
2764
3135
|
return envObject.setLastError(1);
|
|
2765
3136
|
}
|
|
3137
|
+
result >>>= 0;
|
|
2766
3138
|
var p = handle.data();
|
|
2767
3139
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2768
3140
|
HEAP_DATA_VIEW.setUint32(result, p, true);
|
|
@@ -2781,6 +3153,7 @@ function createNapiModule(options) {
|
|
|
2781
3153
|
if (typeof handle.value !== 'number') {
|
|
2782
3154
|
return envObject.setLastError(6);
|
|
2783
3155
|
}
|
|
3156
|
+
result >>>= 0;
|
|
2784
3157
|
var v = new Int32Array([handle.value])[0];
|
|
2785
3158
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2786
3159
|
HEAP_DATA_VIEW.setInt32(result, v, true);
|
|
@@ -2800,6 +3173,7 @@ function createNapiModule(options) {
|
|
|
2800
3173
|
return envObject.setLastError(6);
|
|
2801
3174
|
}
|
|
2802
3175
|
var numberValue = handle.value;
|
|
3176
|
+
result >>>= 0;
|
|
2803
3177
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2804
3178
|
if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
|
|
2805
3179
|
HEAP_DATA_VIEW.setInt32(result, 0, true);
|
|
@@ -2825,6 +3199,9 @@ function createNapiModule(options) {
|
|
|
2825
3199
|
envObject.checkGCAccess();
|
|
2826
3200
|
if (!value)
|
|
2827
3201
|
return envObject.setLastError(1);
|
|
3202
|
+
result >>>= 0;
|
|
3203
|
+
buf >>>= 0;
|
|
3204
|
+
buf_size >>>= 0;
|
|
2828
3205
|
buf_size = buf_size >>> 0;
|
|
2829
3206
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2830
3207
|
if (typeof handle.value !== 'string') {
|
|
@@ -2861,6 +3238,9 @@ function createNapiModule(options) {
|
|
|
2861
3238
|
envObject.checkGCAccess();
|
|
2862
3239
|
if (!value)
|
|
2863
3240
|
return envObject.setLastError(1);
|
|
3241
|
+
result >>>= 0;
|
|
3242
|
+
buf >>>= 0;
|
|
3243
|
+
buf_size >>>= 0;
|
|
2864
3244
|
buf_size = buf_size >>> 0;
|
|
2865
3245
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2866
3246
|
if (typeof handle.value !== 'string') {
|
|
@@ -2891,6 +3271,9 @@ function createNapiModule(options) {
|
|
|
2891
3271
|
envObject.checkGCAccess();
|
|
2892
3272
|
if (!value)
|
|
2893
3273
|
return envObject.setLastError(1);
|
|
3274
|
+
result >>>= 0;
|
|
3275
|
+
buf >>>= 0;
|
|
3276
|
+
buf_size >>>= 0;
|
|
2894
3277
|
buf_size = buf_size >>> 0;
|
|
2895
3278
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2896
3279
|
if (typeof handle.value !== 'string') {
|
|
@@ -2926,6 +3309,7 @@ function createNapiModule(options) {
|
|
|
2926
3309
|
if (typeof handle.value !== 'number') {
|
|
2927
3310
|
return envObject.setLastError(6);
|
|
2928
3311
|
}
|
|
3312
|
+
result >>>= 0;
|
|
2929
3313
|
var v = new Uint32Array([handle.value])[0];
|
|
2930
3314
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2931
3315
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -2961,6 +3345,7 @@ function createNapiModule(options) {
|
|
|
2961
3345
|
envObject.checkGCAccess();
|
|
2962
3346
|
if (!result)
|
|
2963
3347
|
return envObject.setLastError(1);
|
|
3348
|
+
result >>>= 0;
|
|
2964
3349
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
2965
3350
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2966
3351
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -2973,6 +3358,7 @@ function createNapiModule(options) {
|
|
|
2973
3358
|
envObject.checkGCAccess();
|
|
2974
3359
|
if (!result)
|
|
2975
3360
|
return envObject.setLastError(1);
|
|
3361
|
+
result >>>= 0;
|
|
2976
3362
|
var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
|
|
2977
3363
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2978
3364
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -2988,6 +3374,7 @@ function createNapiModule(options) {
|
|
|
2988
3374
|
return envObject.setLastError(1);
|
|
2989
3375
|
value = Number(low);
|
|
2990
3376
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3377
|
+
high >>>= 0;
|
|
2991
3378
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2992
3379
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
2993
3380
|
return envObject.clearLastError();
|
|
@@ -2999,6 +3386,7 @@ function createNapiModule(options) {
|
|
|
2999
3386
|
envObject.checkGCAccess();
|
|
3000
3387
|
if (!result)
|
|
3001
3388
|
return envObject.setLastError(1);
|
|
3389
|
+
result >>>= 0;
|
|
3002
3390
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
3003
3391
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3004
3392
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -3069,6 +3457,7 @@ function createNapiModule(options) {
|
|
|
3069
3457
|
return envObject.setLastError(1);
|
|
3070
3458
|
value = low;
|
|
3071
3459
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3460
|
+
high >>>= 0;
|
|
3072
3461
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3073
3462
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3074
3463
|
return envObject.clearLastError();
|
|
@@ -3086,6 +3475,7 @@ function createNapiModule(options) {
|
|
|
3086
3475
|
return envObject.setLastError(1);
|
|
3087
3476
|
value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
3088
3477
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3478
|
+
high >>>= 0;
|
|
3089
3479
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3090
3480
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3091
3481
|
return envObject.clearLastError();
|
|
@@ -3107,6 +3497,8 @@ function createNapiModule(options) {
|
|
|
3107
3497
|
}
|
|
3108
3498
|
if (!result)
|
|
3109
3499
|
return envObject.setLastError(1);
|
|
3500
|
+
words >>>= 0;
|
|
3501
|
+
word_count >>>= 0;
|
|
3110
3502
|
word_count = word_count >>> 0;
|
|
3111
3503
|
if (word_count > 2147483647) {
|
|
3112
3504
|
return envObject.setLastError(1);
|
|
@@ -3123,6 +3515,7 @@ function createNapiModule(options) {
|
|
|
3123
3515
|
value += wordi << BigInt(64 * i);
|
|
3124
3516
|
}
|
|
3125
3517
|
value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
|
|
3518
|
+
result >>>= 0;
|
|
3126
3519
|
v = emnapiCtx.addToCurrentScope(value).id;
|
|
3127
3520
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
3128
3521
|
return envObject.getReturnStatus();
|
|
@@ -3151,6 +3544,7 @@ function createNapiModule(options) {
|
|
|
3151
3544
|
node_api_create_property_key_utf8: node_api_create_property_key_utf8
|
|
3152
3545
|
});
|
|
3153
3546
|
function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
|
|
3547
|
+
utf8name >>>= 0;
|
|
3154
3548
|
var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
|
|
3155
3549
|
var f;
|
|
3156
3550
|
var napiCallback = (wasmTable.get(cb));
|
|
@@ -3291,6 +3685,7 @@ function createNapiModule(options) {
|
|
|
3291
3685
|
if (!finalize_cb)
|
|
3292
3686
|
return envObject.setLastError(1);
|
|
3293
3687
|
reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1, finalize_cb, native_object, finalize_hint);
|
|
3688
|
+
result >>>= 0;
|
|
3294
3689
|
referenceId = reference.id;
|
|
3295
3690
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3296
3691
|
HEAP_DATA_VIEW.setUint32(result, referenceId, true);
|
|
@@ -3339,6 +3734,7 @@ function createNapiModule(options) {
|
|
|
3339
3734
|
if (!ref)
|
|
3340
3735
|
return envObject.setLastError(1);
|
|
3341
3736
|
if (result) {
|
|
3737
|
+
result >>>= 0;
|
|
3342
3738
|
data = ref.data();
|
|
3343
3739
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3344
3740
|
HEAP_DATA_VIEW.setUint32(result, data, true);
|
|
@@ -3375,12 +3771,15 @@ function createNapiModule(options) {
|
|
|
3375
3771
|
return envObject.setLastError(1);
|
|
3376
3772
|
if (!constructor)
|
|
3377
3773
|
return envObject.setLastError(1);
|
|
3774
|
+
length >>>= 0;
|
|
3775
|
+
properties >>>= 0;
|
|
3776
|
+
property_count >>>= 0;
|
|
3378
3777
|
property_count = property_count >>> 0;
|
|
3379
3778
|
if (property_count > 0) {
|
|
3380
3779
|
if (!properties)
|
|
3381
3780
|
return envObject.setLastError(1);
|
|
3382
3781
|
}
|
|
3383
|
-
if ((length
|
|
3782
|
+
if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
|
|
3384
3783
|
return envObject.setLastError(1);
|
|
3385
3784
|
}
|
|
3386
3785
|
var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
|
|
@@ -3398,6 +3797,7 @@ function createNapiModule(options) {
|
|
|
3398
3797
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
3399
3798
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
3400
3799
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
3800
|
+
attributes >>>= 0;
|
|
3401
3801
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
3402
3802
|
if (utf8Name) {
|
|
3403
3803
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -3419,6 +3819,7 @@ function createNapiModule(options) {
|
|
|
3419
3819
|
}
|
|
3420
3820
|
var valueHandle = emnapiCtx.addToCurrentScope(F);
|
|
3421
3821
|
valueHandleId = valueHandle.id;
|
|
3822
|
+
result >>>= 0;
|
|
3422
3823
|
HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
|
|
3423
3824
|
return envObject.getReturnStatus();
|
|
3424
3825
|
}
|
|
@@ -3454,6 +3855,7 @@ function createNapiModule(options) {
|
|
|
3454
3855
|
if (!(value.isObject() || value.isFunction())) {
|
|
3455
3856
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 2);
|
|
3456
3857
|
}
|
|
3858
|
+
type_tag >>>= 0;
|
|
3457
3859
|
if (!type_tag) {
|
|
3458
3860
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
|
|
3459
3861
|
}
|
|
@@ -3498,6 +3900,7 @@ function createNapiModule(options) {
|
|
|
3498
3900
|
}
|
|
3499
3901
|
var binding = envObject.getObjectBinding(value.value);
|
|
3500
3902
|
if (binding.tag !== null) {
|
|
3903
|
+
type_tag >>>= 0;
|
|
3501
3904
|
var tag = binding.tag;
|
|
3502
3905
|
var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
|
|
3503
3906
|
ret = (tag[0] === typeTag[0] &&
|
|
@@ -3508,6 +3911,7 @@ function createNapiModule(options) {
|
|
|
3508
3911
|
else {
|
|
3509
3912
|
ret = false;
|
|
3510
3913
|
}
|
|
3914
|
+
result >>>= 0;
|
|
3511
3915
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3512
3916
|
HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
|
|
3513
3917
|
return envObject.getReturnStatus();
|
|
@@ -3535,8 +3939,12 @@ function createNapiModule(options) {
|
|
|
3535
3939
|
}
|
|
3536
3940
|
var handle = handleResult.handle;
|
|
3537
3941
|
var ownership = !result ? 0 : 1;
|
|
3942
|
+
finalize_data >>>= 0;
|
|
3943
|
+
finalize_cb >>>= 0;
|
|
3944
|
+
finalize_hint >>>= 0;
|
|
3538
3945
|
var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
|
|
3539
3946
|
if (result) {
|
|
3947
|
+
result >>>= 0;
|
|
3540
3948
|
var referenceId = reference.id;
|
|
3541
3949
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3542
3950
|
HEAP_DATA_VIEW.setUint32(result, referenceId, true);
|
|
@@ -3575,6 +3983,9 @@ function createNapiModule(options) {
|
|
|
3575
3983
|
try {
|
|
3576
3984
|
if (!result)
|
|
3577
3985
|
return envObject.setLastError(1);
|
|
3986
|
+
byte_length >>>= 0;
|
|
3987
|
+
external_data >>>= 0;
|
|
3988
|
+
result >>>= 0;
|
|
3578
3989
|
byte_length = byte_length >>> 0;
|
|
3579
3990
|
if (!external_data) {
|
|
3580
3991
|
byte_length = 0;
|
|
@@ -3685,7 +4096,7 @@ function createNapiModule(options) {
|
|
|
3685
4096
|
var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
|
|
3686
4097
|
if (!pointer)
|
|
3687
4098
|
throw new Error('Unknown ArrayBuffer address');
|
|
3688
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4099
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
3689
4100
|
len = arrayBufferOrView.byteLength - offset;
|
|
3690
4101
|
}
|
|
3691
4102
|
len = len >>> 0;
|
|
@@ -3707,7 +4118,7 @@ function createNapiModule(options) {
|
|
|
3707
4118
|
var pointer = viewPointerInfo.address;
|
|
3708
4119
|
if (!pointer)
|
|
3709
4120
|
throw new Error('Unknown ArrayBuffer address');
|
|
3710
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4121
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
3711
4122
|
len = latestView.byteLength - offset;
|
|
3712
4123
|
}
|
|
3713
4124
|
len = len >>> 0;
|
|
@@ -3739,6 +4150,9 @@ function createNapiModule(options) {
|
|
|
3739
4150
|
try {
|
|
3740
4151
|
if (!arraybuffer_or_view)
|
|
3741
4152
|
return envObject.setLastError(1);
|
|
4153
|
+
arraybuffer_or_view >>>= 0;
|
|
4154
|
+
offset >>>= 0;
|
|
4155
|
+
len >>>= 0;
|
|
3742
4156
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3743
4157
|
var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
|
|
3744
4158
|
var handle = envObject.ctx.handleStore.get(handleId);
|
|
@@ -3747,6 +4161,7 @@ function createNapiModule(options) {
|
|
|
3747
4161
|
}
|
|
3748
4162
|
var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
|
|
3749
4163
|
if (handle.value !== ret) {
|
|
4164
|
+
arraybuffer_or_view >>>= 0;
|
|
3750
4165
|
v = envObject.ensureHandleId(ret);
|
|
3751
4166
|
HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
|
|
3752
4167
|
}
|
|
@@ -3800,13 +4215,16 @@ function createNapiModule(options) {
|
|
|
3800
4215
|
p = info.address;
|
|
3801
4216
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3802
4217
|
if (address) {
|
|
4218
|
+
address >>>= 0;
|
|
3803
4219
|
HEAP_DATA_VIEW.setUint32(address, p, true);
|
|
3804
4220
|
}
|
|
3805
4221
|
if (ownership) {
|
|
4222
|
+
ownership >>>= 0;
|
|
3806
4223
|
ownershipOut = info.ownership;
|
|
3807
4224
|
HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
|
|
3808
4225
|
}
|
|
3809
4226
|
if (runtime_allocated) {
|
|
4227
|
+
runtime_allocated >>>= 0;
|
|
3810
4228
|
runtimeAllocated = info.runtimeAllocated;
|
|
3811
4229
|
HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
|
|
3812
4230
|
}
|
|
@@ -3832,6 +4250,7 @@ function createNapiModule(options) {
|
|
|
3832
4250
|
}
|
|
3833
4251
|
var versions = runtimeVersion.split('.')
|
|
3834
4252
|
.map(function (n) { return Number(n); });
|
|
4253
|
+
version >>>= 0;
|
|
3835
4254
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3836
4255
|
HEAP_DATA_VIEW.setUint32(version, versions[0], true);
|
|
3837
4256
|
HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
|
|
@@ -3857,6 +4276,7 @@ function createNapiModule(options) {
|
|
|
3857
4276
|
envObject.checkGCAccess();
|
|
3858
4277
|
if (!result)
|
|
3859
4278
|
return envObject.setLastError(1);
|
|
4279
|
+
result >>>= 0;
|
|
3860
4280
|
var value = emnapiCtx.addToCurrentScope([]).id;
|
|
3861
4281
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3862
4282
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -3869,6 +4289,8 @@ function createNapiModule(options) {
|
|
|
3869
4289
|
envObject.checkGCAccess();
|
|
3870
4290
|
if (!result)
|
|
3871
4291
|
return envObject.setLastError(1);
|
|
4292
|
+
length >>>= 0;
|
|
4293
|
+
result >>>= 0;
|
|
3872
4294
|
length = length >>> 0;
|
|
3873
4295
|
var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
|
|
3874
4296
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3876,9 +4298,11 @@ function createNapiModule(options) {
|
|
|
3876
4298
|
return envObject.clearLastError();
|
|
3877
4299
|
}
|
|
3878
4300
|
function emnapiCreateArrayBuffer(byte_length, data, shared) {
|
|
4301
|
+
byte_length >>>= 0;
|
|
3879
4302
|
byte_length = byte_length >>> 0;
|
|
3880
4303
|
var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
|
|
3881
4304
|
if (data) {
|
|
4305
|
+
data >>>= 0;
|
|
3882
4306
|
var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
|
|
3883
4307
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3884
4308
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
@@ -3899,6 +4323,7 @@ function createNapiModule(options) {
|
|
|
3899
4323
|
try {
|
|
3900
4324
|
if (!result)
|
|
3901
4325
|
return envObject.setLastError(1);
|
|
4326
|
+
result >>>= 0;
|
|
3902
4327
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
|
|
3903
4328
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
3904
4329
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3924,6 +4349,7 @@ function createNapiModule(options) {
|
|
|
3924
4349
|
try {
|
|
3925
4350
|
if (!result)
|
|
3926
4351
|
return envObject.setLastError(1);
|
|
4352
|
+
result >>>= 0;
|
|
3927
4353
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
|
|
3928
4354
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
3929
4355
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3949,6 +4375,7 @@ function createNapiModule(options) {
|
|
|
3949
4375
|
try {
|
|
3950
4376
|
if (!result)
|
|
3951
4377
|
return envObject.setLastError(1);
|
|
4378
|
+
result >>>= 0;
|
|
3952
4379
|
value = emnapiCtx.addToCurrentScope(new Date(time)).id;
|
|
3953
4380
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3954
4381
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -3980,6 +4407,7 @@ function createNapiModule(options) {
|
|
|
3980
4407
|
if (finalize_cb) {
|
|
3981
4408
|
emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0, finalize_cb, data, finalize_hint);
|
|
3982
4409
|
}
|
|
4410
|
+
result >>>= 0;
|
|
3983
4411
|
value = externalHandle.id;
|
|
3984
4412
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3985
4413
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4004,6 +4432,9 @@ function createNapiModule(options) {
|
|
|
4004
4432
|
try {
|
|
4005
4433
|
if (!result)
|
|
4006
4434
|
return envObject.setLastError(1);
|
|
4435
|
+
byte_length >>>= 0;
|
|
4436
|
+
external_data >>>= 0;
|
|
4437
|
+
result >>>= 0;
|
|
4007
4438
|
byte_length = byte_length >>> 0;
|
|
4008
4439
|
if (!external_data) {
|
|
4009
4440
|
byte_length = 0;
|
|
@@ -4061,18 +4492,20 @@ function createNapiModule(options) {
|
|
|
4061
4492
|
envObject.checkGCAccess();
|
|
4062
4493
|
if (!result)
|
|
4063
4494
|
return envObject.setLastError(1);
|
|
4495
|
+
result >>>= 0;
|
|
4064
4496
|
var value = emnapiCtx.addToCurrentScope({}).id;
|
|
4065
4497
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4066
4498
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4067
4499
|
return envObject.clearLastError();
|
|
4068
4500
|
}
|
|
4069
|
-
function
|
|
4501
|
+
function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
|
|
4070
4502
|
if (!env)
|
|
4071
4503
|
return 1;
|
|
4072
4504
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4073
4505
|
envObject.checkGCAccess();
|
|
4074
4506
|
if (!result)
|
|
4075
4507
|
return envObject.setLastError(1);
|
|
4508
|
+
property_count >>>= 0;
|
|
4076
4509
|
property_count = property_count >>> 0;
|
|
4077
4510
|
if (property_count > 0) {
|
|
4078
4511
|
if (!property_names)
|
|
@@ -4084,6 +4517,8 @@ function createNapiModule(options) {
|
|
|
4084
4517
|
? emnapiCtx.handleStore.get(prototype_or_null).value
|
|
4085
4518
|
: null;
|
|
4086
4519
|
var properties = {};
|
|
4520
|
+
property_names >>>= 0;
|
|
4521
|
+
property_values >>>= 0;
|
|
4087
4522
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4088
4523
|
for (var i = 0; i < property_count; i++) {
|
|
4089
4524
|
var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
|
|
@@ -4104,6 +4539,7 @@ function createNapiModule(options) {
|
|
|
4104
4539
|
return envObject.setLastError(9);
|
|
4105
4540
|
}
|
|
4106
4541
|
var value = emnapiCtx.addToCurrentScope(obj).id;
|
|
4542
|
+
result >>>= 0;
|
|
4107
4543
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4108
4544
|
return envObject.clearLastError();
|
|
4109
4545
|
}
|
|
@@ -4114,6 +4550,7 @@ function createNapiModule(options) {
|
|
|
4114
4550
|
envObject.checkGCAccess();
|
|
4115
4551
|
if (!result)
|
|
4116
4552
|
return envObject.setLastError(1);
|
|
4553
|
+
result >>>= 0;
|
|
4117
4554
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4118
4555
|
if (!description) {
|
|
4119
4556
|
var value = emnapiCtx.addToCurrentScope(Symbol()).id;
|
|
@@ -4151,6 +4588,8 @@ function createNapiModule(options) {
|
|
|
4151
4588
|
return envObject.setLastError(1);
|
|
4152
4589
|
}
|
|
4153
4590
|
var buffer = handle.value;
|
|
4591
|
+
byte_offset >>>= 0;
|
|
4592
|
+
length >>>= 0;
|
|
4154
4593
|
var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
|
|
4155
4594
|
var _a;
|
|
4156
4595
|
byte_offset = byte_offset >>> 0;
|
|
@@ -4181,6 +4620,7 @@ function createNapiModule(options) {
|
|
|
4181
4620
|
});
|
|
4182
4621
|
}
|
|
4183
4622
|
}
|
|
4623
|
+
result >>>= 0;
|
|
4184
4624
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4185
4625
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4186
4626
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4242,7 +4682,9 @@ function createNapiModule(options) {
|
|
|
4242
4682
|
if (!Buffer) {
|
|
4243
4683
|
throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
|
|
4244
4684
|
}
|
|
4685
|
+
result >>>= 0;
|
|
4245
4686
|
var buffer = void 0;
|
|
4687
|
+
size >>>= 0;
|
|
4246
4688
|
size = size >>> 0;
|
|
4247
4689
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4248
4690
|
if (!data || (size === 0)) {
|
|
@@ -4254,6 +4696,7 @@ function createNapiModule(options) {
|
|
|
4254
4696
|
pointer = _malloc(size);
|
|
4255
4697
|
if (!pointer)
|
|
4256
4698
|
throw new Error('Out of memory');
|
|
4699
|
+
pointer >>>= 0;
|
|
4257
4700
|
new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
|
|
4258
4701
|
var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
|
|
4259
4702
|
var viewDescriptor = {
|
|
@@ -4267,6 +4710,7 @@ function createNapiModule(options) {
|
|
|
4267
4710
|
(_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
|
|
4268
4711
|
value = emnapiCtx.addToCurrentScope(buffer_1).id;
|
|
4269
4712
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4713
|
+
data >>>= 0;
|
|
4270
4714
|
HEAP_DATA_VIEW.setUint32(data, pointer, true);
|
|
4271
4715
|
}
|
|
4272
4716
|
return envObject.getReturnStatus();
|
|
@@ -4296,8 +4740,11 @@ function createNapiModule(options) {
|
|
|
4296
4740
|
}
|
|
4297
4741
|
var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
|
|
4298
4742
|
var buffer = Buffer.from(arrayBuffer);
|
|
4743
|
+
data >>>= 0;
|
|
4744
|
+
length >>>= 0;
|
|
4299
4745
|
buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
|
|
4300
4746
|
value = emnapiCtx.addToCurrentScope(buffer).id;
|
|
4747
|
+
result >>>= 0;
|
|
4301
4748
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4302
4749
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4303
4750
|
return envObject.getReturnStatus();
|
|
@@ -4326,6 +4773,8 @@ function createNapiModule(options) {
|
|
|
4326
4773
|
return envObject.setLastError(1);
|
|
4327
4774
|
if (!result)
|
|
4328
4775
|
return envObject.setLastError(1);
|
|
4776
|
+
byte_offset >>>= 0;
|
|
4777
|
+
byte_length >>>= 0;
|
|
4329
4778
|
byte_offset = byte_offset >>> 0;
|
|
4330
4779
|
byte_length = byte_length >>> 0;
|
|
4331
4780
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
@@ -4354,6 +4803,7 @@ function createNapiModule(options) {
|
|
|
4354
4803
|
});
|
|
4355
4804
|
}
|
|
4356
4805
|
}
|
|
4806
|
+
result >>>= 0;
|
|
4357
4807
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4358
4808
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4359
4809
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4379,6 +4829,8 @@ function createNapiModule(options) {
|
|
|
4379
4829
|
return envObject.setLastError(1);
|
|
4380
4830
|
if (!result)
|
|
4381
4831
|
return envObject.setLastError(1);
|
|
4832
|
+
byte_length >>>= 0;
|
|
4833
|
+
byte_offset >>>= 0;
|
|
4382
4834
|
byte_length = byte_length >>> 0;
|
|
4383
4835
|
byte_offset = byte_offset >>> 0;
|
|
4384
4836
|
var value = emnapiCtx.handleStore.get(arraybuffer).value;
|
|
@@ -4400,6 +4852,7 @@ function createNapiModule(options) {
|
|
|
4400
4852
|
});
|
|
4401
4853
|
}
|
|
4402
4854
|
}
|
|
4855
|
+
result >>>= 0;
|
|
4403
4856
|
var v = emnapiCtx.addToCurrentScope(dataview).id;
|
|
4404
4857
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4405
4858
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -4424,7 +4877,10 @@ function createNapiModule(options) {
|
|
|
4424
4877
|
envObject.checkGCAccess();
|
|
4425
4878
|
if (!result)
|
|
4426
4879
|
return envObject.setLastError(1);
|
|
4427
|
-
|
|
4880
|
+
length >>>= 0;
|
|
4881
|
+
utf8description >>>= 0;
|
|
4882
|
+
result >>>= 0;
|
|
4883
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
4428
4884
|
var sizelength = length >>> 0;
|
|
4429
4885
|
if (length !== 0) {
|
|
4430
4886
|
if (!utf8description)
|
|
@@ -4452,10 +4908,10 @@ function createNapiModule(options) {
|
|
|
4452
4908
|
napi_create_external_arraybuffer: napi_create_external_arraybuffer,
|
|
4453
4909
|
napi_create_external_buffer: napi_create_external_buffer,
|
|
4454
4910
|
napi_create_object: napi_create_object,
|
|
4455
|
-
napi_create_object_with_properties: napi_create_object_with_properties,
|
|
4456
4911
|
napi_create_symbol: napi_create_symbol,
|
|
4457
4912
|
napi_create_typedarray: napi_create_typedarray,
|
|
4458
4913
|
node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
|
|
4914
|
+
node_api_create_object_with_properties: node_api_create_object_with_properties,
|
|
4459
4915
|
node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
|
|
4460
4916
|
node_api_symbol_for: node_api_symbol_for
|
|
4461
4917
|
});
|
|
@@ -4466,6 +4922,7 @@ function createNapiModule(options) {
|
|
|
4466
4922
|
envObject.checkGCAccess();
|
|
4467
4923
|
if (!result)
|
|
4468
4924
|
return envObject.setLastError(1);
|
|
4925
|
+
result >>>= 0;
|
|
4469
4926
|
var v = value === 0 ? 3 : 4;
|
|
4470
4927
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4471
4928
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -4478,6 +4935,7 @@ function createNapiModule(options) {
|
|
|
4478
4935
|
envObject.checkGCAccess();
|
|
4479
4936
|
if (!result)
|
|
4480
4937
|
return envObject.setLastError(1);
|
|
4938
|
+
result >>>= 0;
|
|
4481
4939
|
var value = 5;
|
|
4482
4940
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4483
4941
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4490,6 +4948,7 @@ function createNapiModule(options) {
|
|
|
4490
4948
|
envObject.checkGCAccess();
|
|
4491
4949
|
if (!result)
|
|
4492
4950
|
return envObject.setLastError(1);
|
|
4951
|
+
result >>>= 0;
|
|
4493
4952
|
var value = 2;
|
|
4494
4953
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4495
4954
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4502,6 +4961,7 @@ function createNapiModule(options) {
|
|
|
4502
4961
|
envObject.checkGCAccess();
|
|
4503
4962
|
if (!result)
|
|
4504
4963
|
return envObject.setLastError(1);
|
|
4964
|
+
result >>>= 0;
|
|
4505
4965
|
var value = 1;
|
|
4506
4966
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4507
4967
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4518,6 +4978,9 @@ function createNapiModule(options) {
|
|
|
4518
4978
|
if (!env)
|
|
4519
4979
|
return 1;
|
|
4520
4980
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4981
|
+
data >>>= 0;
|
|
4982
|
+
finalize_cb >>>= 0;
|
|
4983
|
+
finalize_hint >>>= 0;
|
|
4521
4984
|
envObject.setInstanceData(data, finalize_cb, finalize_hint);
|
|
4522
4985
|
return envObject.clearLastError();
|
|
4523
4986
|
}
|
|
@@ -4527,6 +4990,7 @@ function createNapiModule(options) {
|
|
|
4527
4990
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4528
4991
|
if (!data)
|
|
4529
4992
|
return envObject.setLastError(1);
|
|
4993
|
+
data >>>= 0;
|
|
4530
4994
|
var value = envObject.getInstanceData();
|
|
4531
4995
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4532
4996
|
HEAP_DATA_VIEW.setUint32(data, value, true);
|
|
@@ -4538,11 +5002,15 @@ function createNapiModule(options) {
|
|
|
4538
5002
|
napi_set_instance_data: napi_set_instance_data
|
|
4539
5003
|
});
|
|
4540
5004
|
function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
|
|
5005
|
+
error_code >>>= 0;
|
|
5006
|
+
engine_error_code >>>= 0;
|
|
5007
|
+
engine_reserved >>>= 0;
|
|
4541
5008
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4542
5009
|
var lastError = envObject.lastError;
|
|
4543
5010
|
var errorCode = lastError.errorCode;
|
|
4544
5011
|
var engineErrorCode = lastError.engineErrorCode >>> 0;
|
|
4545
5012
|
var engineReserved = lastError.engineReserved;
|
|
5013
|
+
engineReserved >>>= 0;
|
|
4546
5014
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4547
5015
|
HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
|
|
4548
5016
|
HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
|
|
@@ -4582,6 +5050,8 @@ function createNapiModule(options) {
|
|
|
4582
5050
|
try {
|
|
4583
5051
|
if (!msg)
|
|
4584
5052
|
return envObject.setLastError(1);
|
|
5053
|
+
code >>>= 0;
|
|
5054
|
+
msg >>>= 0;
|
|
4585
5055
|
var error = new Error(emnapiString.UTF8ToString(msg, -1));
|
|
4586
5056
|
if (code)
|
|
4587
5057
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4606,6 +5076,8 @@ function createNapiModule(options) {
|
|
|
4606
5076
|
try {
|
|
4607
5077
|
if (!msg)
|
|
4608
5078
|
return envObject.setLastError(1);
|
|
5079
|
+
code >>>= 0;
|
|
5080
|
+
msg >>>= 0;
|
|
4609
5081
|
var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
|
|
4610
5082
|
if (code)
|
|
4611
5083
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4630,6 +5102,8 @@ function createNapiModule(options) {
|
|
|
4630
5102
|
try {
|
|
4631
5103
|
if (!msg)
|
|
4632
5104
|
return envObject.setLastError(1);
|
|
5105
|
+
code >>>= 0;
|
|
5106
|
+
msg >>>= 0;
|
|
4633
5107
|
var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
|
|
4634
5108
|
if (code)
|
|
4635
5109
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4654,6 +5128,8 @@ function createNapiModule(options) {
|
|
|
4654
5128
|
try {
|
|
4655
5129
|
if (!msg)
|
|
4656
5130
|
return envObject.setLastError(1);
|
|
5131
|
+
code >>>= 0;
|
|
5132
|
+
msg >>>= 0;
|
|
4657
5133
|
var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
|
|
4658
5134
|
if (code)
|
|
4659
5135
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4673,6 +5149,7 @@ function createNapiModule(options) {
|
|
|
4673
5149
|
if (!result)
|
|
4674
5150
|
return envObject.setLastError(1);
|
|
4675
5151
|
var r = envObject.tryCatch.hasCaught();
|
|
5152
|
+
result >>>= 0;
|
|
4676
5153
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4677
5154
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
4678
5155
|
return envObject.clearLastError();
|
|
@@ -4698,6 +5175,7 @@ function createNapiModule(options) {
|
|
|
4698
5175
|
}
|
|
4699
5176
|
error.code = codeValue;
|
|
4700
5177
|
}
|
|
5178
|
+
result >>>= 0;
|
|
4701
5179
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4702
5180
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4703
5181
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4724,6 +5202,7 @@ function createNapiModule(options) {
|
|
|
4724
5202
|
}
|
|
4725
5203
|
error.code = codeValue;
|
|
4726
5204
|
}
|
|
5205
|
+
result >>>= 0;
|
|
4727
5206
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4728
5207
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4729
5208
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4750,6 +5229,7 @@ function createNapiModule(options) {
|
|
|
4750
5229
|
}
|
|
4751
5230
|
error.code = codeValue;
|
|
4752
5231
|
}
|
|
5232
|
+
result >>>= 0;
|
|
4753
5233
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4754
5234
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4755
5235
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4776,6 +5256,7 @@ function createNapiModule(options) {
|
|
|
4776
5256
|
}
|
|
4777
5257
|
error.code = codeValue;
|
|
4778
5258
|
}
|
|
5259
|
+
result >>>= 0;
|
|
4779
5260
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4780
5261
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4781
5262
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4788,6 +5269,7 @@ function createNapiModule(options) {
|
|
|
4788
5269
|
envObject.checkGCAccess();
|
|
4789
5270
|
if (!result)
|
|
4790
5271
|
return envObject.setLastError(1);
|
|
5272
|
+
result >>>= 0;
|
|
4791
5273
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4792
5274
|
if (!envObject.tryCatch.hasCaught()) {
|
|
4793
5275
|
HEAP_DATA_VIEW.setUint32(result, 1, true);
|
|
@@ -4802,6 +5284,10 @@ function createNapiModule(options) {
|
|
|
4802
5284
|
return envObject.clearLastError();
|
|
4803
5285
|
}
|
|
4804
5286
|
function napi_fatal_error(location, location_len, message, message_len) {
|
|
5287
|
+
location >>>= 0;
|
|
5288
|
+
location_len >>>= 0;
|
|
5289
|
+
message >>>= 0;
|
|
5290
|
+
message_len >>>= 0;
|
|
4805
5291
|
var locationStr = emnapiString.UTF8ToString(location, location_len);
|
|
4806
5292
|
var messageStr = emnapiString.UTF8ToString(message, message_len);
|
|
4807
5293
|
if (emnapiNodeBinding) {
|
|
@@ -4855,8 +5341,21 @@ function createNapiModule(options) {
|
|
|
4855
5341
|
node_api_create_syntax_error: node_api_create_syntax_error,
|
|
4856
5342
|
node_api_throw_syntax_error: node_api_throw_syntax_error
|
|
4857
5343
|
});
|
|
5344
|
+
function _emnapi_create_function(env, utf8name, length, cb, data, result) {
|
|
5345
|
+
length >>>= 0;
|
|
5346
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
5347
|
+
var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
|
|
5348
|
+
if (fresult.status !== 0)
|
|
5349
|
+
return envObject.setLastError(fresult.status);
|
|
5350
|
+
var f = fresult.f;
|
|
5351
|
+
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
5352
|
+
result >>>= 0;
|
|
5353
|
+
var value = valueHandle.id;
|
|
5354
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5355
|
+
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5356
|
+
return envObject.getReturnStatus();
|
|
5357
|
+
}
|
|
4858
5358
|
function napi_create_function(env, utf8name, length, cb, data, result) {
|
|
4859
|
-
var value;
|
|
4860
5359
|
if (!env)
|
|
4861
5360
|
return 1;
|
|
4862
5361
|
var envObject = emnapiCtx.envStore.get(env);
|
|
@@ -4871,15 +5370,7 @@ function createNapiModule(options) {
|
|
|
4871
5370
|
return envObject.setLastError(1);
|
|
4872
5371
|
if (!cb)
|
|
4873
5372
|
return envObject.setLastError(1);
|
|
4874
|
-
|
|
4875
|
-
if (fresult.status !== 0)
|
|
4876
|
-
return envObject.setLastError(fresult.status);
|
|
4877
|
-
var f = fresult.f;
|
|
4878
|
-
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
4879
|
-
value = valueHandle.id;
|
|
4880
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4881
|
-
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4882
|
-
return envObject.getReturnStatus();
|
|
5373
|
+
return _emnapi_create_function(env, utf8name, length, cb, data, result);
|
|
4883
5374
|
}
|
|
4884
5375
|
catch (err) {
|
|
4885
5376
|
envObject.tryCatch.setError(err);
|
|
@@ -4893,11 +5384,14 @@ function createNapiModule(options) {
|
|
|
4893
5384
|
if (!cbinfo)
|
|
4894
5385
|
return envObject.setLastError(1);
|
|
4895
5386
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
5387
|
+
argc >>>= 0;
|
|
5388
|
+
argv >>>= 0;
|
|
4896
5389
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4897
5390
|
if (argv) {
|
|
4898
5391
|
if (!argc)
|
|
4899
5392
|
return envObject.setLastError(1);
|
|
4900
5393
|
var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
|
|
5394
|
+
argcValue >>>= 0;
|
|
4901
5395
|
var len = cbinfoValue.args.length;
|
|
4902
5396
|
var arrlen = argcValue < len ? argcValue : len;
|
|
4903
5397
|
var i = 0;
|
|
@@ -4915,10 +5409,12 @@ function createNapiModule(options) {
|
|
|
4915
5409
|
HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
|
|
4916
5410
|
}
|
|
4917
5411
|
if (this_arg) {
|
|
5412
|
+
this_arg >>>= 0;
|
|
4918
5413
|
var v = envObject.ensureHandleId(cbinfoValue.thiz);
|
|
4919
5414
|
HEAP_DATA_VIEW.setUint32(this_arg, v, true);
|
|
4920
5415
|
}
|
|
4921
5416
|
if (data) {
|
|
5417
|
+
data >>>= 0;
|
|
4922
5418
|
HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
|
|
4923
5419
|
}
|
|
4924
5420
|
return envObject.clearLastError();
|
|
@@ -4938,6 +5434,9 @@ function createNapiModule(options) {
|
|
|
4938
5434
|
try {
|
|
4939
5435
|
if (!recv)
|
|
4940
5436
|
return envObject.setLastError(1);
|
|
5437
|
+
argc >>>= 0;
|
|
5438
|
+
argv >>>= 0;
|
|
5439
|
+
result >>>= 0;
|
|
4941
5440
|
argc = argc >>> 0;
|
|
4942
5441
|
if (argc > 0) {
|
|
4943
5442
|
if (!argv)
|
|
@@ -4982,6 +5481,9 @@ function createNapiModule(options) {
|
|
|
4982
5481
|
try {
|
|
4983
5482
|
if (!constructor)
|
|
4984
5483
|
return envObject.setLastError(1);
|
|
5484
|
+
argc >>>= 0;
|
|
5485
|
+
argv >>>= 0;
|
|
5486
|
+
result >>>= 0;
|
|
4985
5487
|
argc = argc >>> 0;
|
|
4986
5488
|
if (argc > 0) {
|
|
4987
5489
|
if (!argv)
|
|
@@ -5032,6 +5534,7 @@ function createNapiModule(options) {
|
|
|
5032
5534
|
return envObject.setLastError(1);
|
|
5033
5535
|
if (!result)
|
|
5034
5536
|
return envObject.setLastError(1);
|
|
5537
|
+
result >>>= 0;
|
|
5035
5538
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
5036
5539
|
var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
|
|
5037
5540
|
var value = thiz == null || thiz.constructor == null
|
|
@@ -5045,6 +5548,7 @@ function createNapiModule(options) {
|
|
|
5045
5548
|
}
|
|
5046
5549
|
var functionMod = Object.freeze({
|
|
5047
5550
|
__proto__: null,
|
|
5551
|
+
_emnapi_create_function: _emnapi_create_function,
|
|
5048
5552
|
napi_call_function: napi_call_function,
|
|
5049
5553
|
napi_create_function: napi_create_function,
|
|
5050
5554
|
napi_get_cb_info: napi_get_cb_info,
|
|
@@ -5059,6 +5563,7 @@ function createNapiModule(options) {
|
|
|
5059
5563
|
if (!result)
|
|
5060
5564
|
return envObject.setLastError(1);
|
|
5061
5565
|
var scope = emnapiCtx.openScope(envObject);
|
|
5566
|
+
result >>>= 0;
|
|
5062
5567
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5063
5568
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
5064
5569
|
return envObject.clearLastError();
|
|
@@ -5084,6 +5589,7 @@ function createNapiModule(options) {
|
|
|
5084
5589
|
if (!result)
|
|
5085
5590
|
return envObject.setLastError(1);
|
|
5086
5591
|
var scope = emnapiCtx.openScope(envObject);
|
|
5592
|
+
result >>>= 0;
|
|
5087
5593
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5088
5594
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
5089
5595
|
return envObject.clearLastError();
|
|
@@ -5114,6 +5620,8 @@ function createNapiModule(options) {
|
|
|
5114
5620
|
return envObject.setLastError(1);
|
|
5115
5621
|
var scopeObject = emnapiCtx.scopeStore.get(scope);
|
|
5116
5622
|
if (!scopeObject.escapeCalled()) {
|
|
5623
|
+
escapee >>>= 0;
|
|
5624
|
+
result >>>= 0;
|
|
5117
5625
|
var newHandle = scopeObject.escape(escapee);
|
|
5118
5626
|
var value = newHandle ? newHandle.id : 0;
|
|
5119
5627
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5138,6 +5646,7 @@ function createNapiModule(options) {
|
|
|
5138
5646
|
}
|
|
5139
5647
|
}
|
|
5140
5648
|
var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1);
|
|
5649
|
+
result >>>= 0;
|
|
5141
5650
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5142
5651
|
HEAP_DATA_VIEW.setUint32(result, ref.id, true);
|
|
5143
5652
|
return envObject.clearLastError();
|
|
@@ -5160,6 +5669,7 @@ function createNapiModule(options) {
|
|
|
5160
5669
|
return envObject.setLastError(1);
|
|
5161
5670
|
var count = emnapiCtx.refStore.get(ref).ref();
|
|
5162
5671
|
if (result) {
|
|
5672
|
+
result >>>= 0;
|
|
5163
5673
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5164
5674
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
5165
5675
|
}
|
|
@@ -5179,6 +5689,7 @@ function createNapiModule(options) {
|
|
|
5179
5689
|
}
|
|
5180
5690
|
var count = reference.unref();
|
|
5181
5691
|
if (result) {
|
|
5692
|
+
result >>>= 0;
|
|
5182
5693
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5183
5694
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
5184
5695
|
}
|
|
@@ -5195,6 +5706,7 @@ function createNapiModule(options) {
|
|
|
5195
5706
|
return envObject.setLastError(1);
|
|
5196
5707
|
var reference = emnapiCtx.refStore.get(ref);
|
|
5197
5708
|
var handleId = reference.get(envObject);
|
|
5709
|
+
result >>>= 0;
|
|
5198
5710
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5199
5711
|
HEAP_DATA_VIEW.setUint32(result, handleId, true);
|
|
5200
5712
|
return envObject.clearLastError();
|
|
@@ -5205,6 +5717,8 @@ function createNapiModule(options) {
|
|
|
5205
5717
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5206
5718
|
if (!fun)
|
|
5207
5719
|
return envObject.setLastError(1);
|
|
5720
|
+
fun >>>= 0;
|
|
5721
|
+
arg >>>= 0;
|
|
5208
5722
|
emnapiCtx.addCleanupHook(envObject, fun, arg);
|
|
5209
5723
|
return 0;
|
|
5210
5724
|
}
|
|
@@ -5214,6 +5728,8 @@ function createNapiModule(options) {
|
|
|
5214
5728
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5215
5729
|
if (!fun)
|
|
5216
5730
|
return envObject.setLastError(1);
|
|
5731
|
+
fun >>>= 0;
|
|
5732
|
+
arg >>>= 0;
|
|
5217
5733
|
emnapiCtx.removeCleanupHook(envObject, fun, arg);
|
|
5218
5734
|
return 0;
|
|
5219
5735
|
}
|
|
@@ -5274,8 +5790,10 @@ function createNapiModule(options) {
|
|
|
5274
5790
|
var p = new Promise(function (resolve, reject) {
|
|
5275
5791
|
var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
|
|
5276
5792
|
deferredObjectId = deferredObject.id;
|
|
5793
|
+
deferred >>>= 0;
|
|
5277
5794
|
HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
|
|
5278
5795
|
});
|
|
5796
|
+
promise >>>= 0;
|
|
5279
5797
|
value = emnapiCtx.addToCurrentScope(p).id;
|
|
5280
5798
|
HEAP_DATA_VIEW.setUint32(promise, value, true);
|
|
5281
5799
|
return envObject.getReturnStatus();
|
|
@@ -5343,6 +5861,7 @@ function createNapiModule(options) {
|
|
|
5343
5861
|
if (!is_promise)
|
|
5344
5862
|
return envObject.setLastError(1);
|
|
5345
5863
|
var h = emnapiCtx.handleStore.get(value);
|
|
5864
|
+
is_promise >>>= 0;
|
|
5346
5865
|
var r = h.isPromise() ? 1 : 0;
|
|
5347
5866
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5348
5867
|
HEAP_DATA_VIEW.setInt8(is_promise, r, true);
|
|
@@ -5486,6 +6005,7 @@ function createNapiModule(options) {
|
|
|
5486
6005
|
}
|
|
5487
6006
|
}
|
|
5488
6007
|
}
|
|
6008
|
+
result >>>= 0;
|
|
5489
6009
|
value = emnapiCtx.addToCurrentScope(ret).id;
|
|
5490
6010
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5491
6011
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5557,6 +6077,7 @@ function createNapiModule(options) {
|
|
|
5557
6077
|
catch (_) {
|
|
5558
6078
|
return envObject.setLastError(2);
|
|
5559
6079
|
}
|
|
6080
|
+
result >>>= 0;
|
|
5560
6081
|
r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
|
|
5561
6082
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5562
6083
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -5596,6 +6117,7 @@ function createNapiModule(options) {
|
|
|
5596
6117
|
catch (_) {
|
|
5597
6118
|
return envObject.setLastError(2);
|
|
5598
6119
|
}
|
|
6120
|
+
result >>>= 0;
|
|
5599
6121
|
value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
|
|
5600
6122
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5601
6123
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5639,6 +6161,7 @@ function createNapiModule(options) {
|
|
|
5639
6161
|
}
|
|
5640
6162
|
}
|
|
5641
6163
|
if (result) {
|
|
6164
|
+
result >>>= 0;
|
|
5642
6165
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5643
6166
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
5644
6167
|
}
|
|
@@ -5683,6 +6206,7 @@ function createNapiModule(options) {
|
|
|
5683
6206
|
return envObject.setLastError(4);
|
|
5684
6207
|
}
|
|
5685
6208
|
r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
|
|
6209
|
+
result >>>= 0;
|
|
5686
6210
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5687
6211
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
5688
6212
|
return envObject.getReturnStatus();
|
|
@@ -5714,6 +6238,7 @@ function createNapiModule(options) {
|
|
|
5714
6238
|
if (!cname) {
|
|
5715
6239
|
return envObject.setLastError(1);
|
|
5716
6240
|
}
|
|
6241
|
+
cname >>>= 0;
|
|
5717
6242
|
emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
|
|
5718
6243
|
return envObject.getReturnStatus();
|
|
5719
6244
|
}
|
|
@@ -5752,6 +6277,8 @@ function createNapiModule(options) {
|
|
|
5752
6277
|
catch (_) {
|
|
5753
6278
|
return envObject.setLastError(2);
|
|
5754
6279
|
}
|
|
6280
|
+
utf8name >>>= 0;
|
|
6281
|
+
result >>>= 0;
|
|
5755
6282
|
r = emnapiString.UTF8ToString(utf8name, -1) in v;
|
|
5756
6283
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5757
6284
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
@@ -5792,6 +6319,8 @@ function createNapiModule(options) {
|
|
|
5792
6319
|
catch (_) {
|
|
5793
6320
|
return envObject.setLastError(2);
|
|
5794
6321
|
}
|
|
6322
|
+
utf8name >>>= 0;
|
|
6323
|
+
result >>>= 0;
|
|
5795
6324
|
value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
|
|
5796
6325
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5797
6326
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5856,6 +6385,7 @@ function createNapiModule(options) {
|
|
|
5856
6385
|
catch (_) {
|
|
5857
6386
|
return envObject.setLastError(2);
|
|
5858
6387
|
}
|
|
6388
|
+
result >>>= 0;
|
|
5859
6389
|
r = ((index >>> 0) in v) ? 1 : 0;
|
|
5860
6390
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5861
6391
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -5893,6 +6423,7 @@ function createNapiModule(options) {
|
|
|
5893
6423
|
catch (_) {
|
|
5894
6424
|
return envObject.setLastError(2);
|
|
5895
6425
|
}
|
|
6426
|
+
result >>>= 0;
|
|
5896
6427
|
value = envObject.ensureHandleId(v[index >>> 0]);
|
|
5897
6428
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5898
6429
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5933,6 +6464,7 @@ function createNapiModule(options) {
|
|
|
5933
6464
|
}
|
|
5934
6465
|
}
|
|
5935
6466
|
if (result) {
|
|
6467
|
+
result >>>= 0;
|
|
5936
6468
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5937
6469
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
5938
6470
|
}
|
|
@@ -5955,6 +6487,8 @@ function createNapiModule(options) {
|
|
|
5955
6487
|
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
|
|
5956
6488
|
envObject.clearLastError();
|
|
5957
6489
|
try {
|
|
6490
|
+
properties >>>= 0;
|
|
6491
|
+
property_count >>>= 0;
|
|
5958
6492
|
property_count = property_count >>> 0;
|
|
5959
6493
|
if (property_count > 0) {
|
|
5960
6494
|
if (!properties)
|
|
@@ -5978,6 +6512,7 @@ function createNapiModule(options) {
|
|
|
5978
6512
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
5979
6513
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
5980
6514
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
6515
|
+
attributes >>>= 0;
|
|
5981
6516
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
5982
6517
|
if (utf8Name) {
|
|
5983
6518
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -6095,6 +6630,7 @@ function createNapiModule(options) {
|
|
|
6095
6630
|
}
|
|
6096
6631
|
var g = emnapiCtx.handleStore.get(5).value;
|
|
6097
6632
|
var ret = g.eval(v8Script.value);
|
|
6633
|
+
result >>>= 0;
|
|
6098
6634
|
value = envObject.ensureHandleId(ret);
|
|
6099
6635
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6100
6636
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -6120,6 +6656,7 @@ function createNapiModule(options) {
|
|
|
6120
6656
|
if (!result)
|
|
6121
6657
|
return envObject.setLastError(1);
|
|
6122
6658
|
var v = emnapiCtx.handleStore.get(value);
|
|
6659
|
+
result >>>= 0;
|
|
6123
6660
|
var r;
|
|
6124
6661
|
if (v.isNumber()) {
|
|
6125
6662
|
r = 3;
|
|
@@ -6175,6 +6712,7 @@ function createNapiModule(options) {
|
|
|
6175
6712
|
if (!result)
|
|
6176
6713
|
return envObject.setLastError(1);
|
|
6177
6714
|
var handle = emnapiCtx.handleStore.get(value);
|
|
6715
|
+
result >>>= 0;
|
|
6178
6716
|
v = handle.value ? 4 : 3;
|
|
6179
6717
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6180
6718
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6205,6 +6743,7 @@ function createNapiModule(options) {
|
|
|
6205
6743
|
if (handle.isBigInt()) {
|
|
6206
6744
|
throw new TypeError('Cannot convert a BigInt value to a number');
|
|
6207
6745
|
}
|
|
6746
|
+
result >>>= 0;
|
|
6208
6747
|
v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
|
|
6209
6748
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6210
6749
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6235,6 +6774,7 @@ function createNapiModule(options) {
|
|
|
6235
6774
|
if (handle.value == null) {
|
|
6236
6775
|
throw new TypeError('Cannot convert undefined or null to object');
|
|
6237
6776
|
}
|
|
6777
|
+
result >>>= 0;
|
|
6238
6778
|
v = envObject.ensureHandleId(Object(handle.value));
|
|
6239
6779
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6240
6780
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6265,6 +6805,7 @@ function createNapiModule(options) {
|
|
|
6265
6805
|
if (handle.isSymbol()) {
|
|
6266
6806
|
throw new TypeError('Cannot convert a Symbol value to a string');
|
|
6267
6807
|
}
|
|
6808
|
+
result >>>= 0;
|
|
6268
6809
|
v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
|
|
6269
6810
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6270
6811
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6293,6 +6834,7 @@ function createNapiModule(options) {
|
|
|
6293
6834
|
return envObject.setLastError(1);
|
|
6294
6835
|
if (!constructor)
|
|
6295
6836
|
return envObject.setLastError(1);
|
|
6837
|
+
result >>>= 0;
|
|
6296
6838
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6297
6839
|
HEAP_DATA_VIEW.setInt8(result, 0, true);
|
|
6298
6840
|
var ctor = emnapiCtx.handleStore.get(constructor);
|
|
@@ -6320,6 +6862,7 @@ function createNapiModule(options) {
|
|
|
6320
6862
|
if (!result)
|
|
6321
6863
|
return envObject.setLastError(1);
|
|
6322
6864
|
var h = emnapiCtx.handleStore.get(value);
|
|
6865
|
+
result >>>= 0;
|
|
6323
6866
|
var r = h.isArray() ? 1 : 0;
|
|
6324
6867
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6325
6868
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6335,6 +6878,7 @@ function createNapiModule(options) {
|
|
|
6335
6878
|
if (!result)
|
|
6336
6879
|
return envObject.setLastError(1);
|
|
6337
6880
|
var h = emnapiCtx.handleStore.get(value);
|
|
6881
|
+
result >>>= 0;
|
|
6338
6882
|
var r = h.isArrayBuffer() ? 1 : 0;
|
|
6339
6883
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6340
6884
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6350,6 +6894,7 @@ function createNapiModule(options) {
|
|
|
6350
6894
|
if (!result)
|
|
6351
6895
|
return envObject.setLastError(1);
|
|
6352
6896
|
var h = emnapiCtx.handleStore.get(value);
|
|
6897
|
+
result >>>= 0;
|
|
6353
6898
|
var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
|
|
6354
6899
|
(Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
|
|
6355
6900
|
? 1
|
|
@@ -6368,6 +6913,7 @@ function createNapiModule(options) {
|
|
|
6368
6913
|
if (!result)
|
|
6369
6914
|
return envObject.setLastError(1);
|
|
6370
6915
|
var h = emnapiCtx.handleStore.get(value);
|
|
6916
|
+
result >>>= 0;
|
|
6371
6917
|
var r = h.isDate() ? 1 : 0;
|
|
6372
6918
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6373
6919
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6383,6 +6929,7 @@ function createNapiModule(options) {
|
|
|
6383
6929
|
if (!result)
|
|
6384
6930
|
return envObject.setLastError(1);
|
|
6385
6931
|
var val = emnapiCtx.handleStore.get(value).value;
|
|
6932
|
+
result >>>= 0;
|
|
6386
6933
|
var r = (val instanceof Error) ? 1 : 0;
|
|
6387
6934
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6388
6935
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6398,6 +6945,7 @@ function createNapiModule(options) {
|
|
|
6398
6945
|
if (!result)
|
|
6399
6946
|
return envObject.setLastError(1);
|
|
6400
6947
|
var h = emnapiCtx.handleStore.get(value);
|
|
6948
|
+
result >>>= 0;
|
|
6401
6949
|
var r = h.isTypedArray() ? 1 : 0;
|
|
6402
6950
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6403
6951
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6413,6 +6961,7 @@ function createNapiModule(options) {
|
|
|
6413
6961
|
if (!result)
|
|
6414
6962
|
return envObject.setLastError(1);
|
|
6415
6963
|
var h = emnapiCtx.handleStore.get(value);
|
|
6964
|
+
result >>>= 0;
|
|
6416
6965
|
var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
|
|
6417
6966
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6418
6967
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6428,6 +6977,7 @@ function createNapiModule(options) {
|
|
|
6428
6977
|
if (!result)
|
|
6429
6978
|
return envObject.setLastError(1);
|
|
6430
6979
|
var h = emnapiCtx.handleStore.get(value);
|
|
6980
|
+
result >>>= 0;
|
|
6431
6981
|
var r = h.isDataView() ? 1 : 0;
|
|
6432
6982
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6433
6983
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6453,6 +7003,7 @@ function createNapiModule(options) {
|
|
|
6453
7003
|
return envObject.setLastError(1);
|
|
6454
7004
|
var lv = emnapiCtx.handleStore.get(lhs).value;
|
|
6455
7005
|
var rv = emnapiCtx.handleStore.get(rhs).value;
|
|
7006
|
+
result >>>= 0;
|
|
6456
7007
|
r = (lv === rv) ? 1 : 0;
|
|
6457
7008
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6458
7009
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6503,6 +7054,7 @@ function createNapiModule(options) {
|
|
|
6503
7054
|
if (!result)
|
|
6504
7055
|
return envObject.setLastError(1);
|
|
6505
7056
|
var h = emnapiCtx.handleStore.get(arraybuffer);
|
|
7057
|
+
result >>>= 0;
|
|
6506
7058
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6507
7059
|
if (h.isArrayBuffer() && h.value.byteLength === 0) {
|
|
6508
7060
|
try {
|
|
@@ -6817,12 +7369,7 @@ class MessageHandler extends wasiThreads.ThreadMessageHandler {
|
|
|
6817
7369
|
try {
|
|
6818
7370
|
if (type === 'async-worker-init') {
|
|
6819
7371
|
this.handleAfterLoad(e, () => {
|
|
6820
|
-
this.napiModule.initWorker(payload.arg);
|
|
6821
|
-
});
|
|
6822
|
-
}
|
|
6823
|
-
else if (type === 'async-work-execute') {
|
|
6824
|
-
this.handleAfterLoad(e, () => {
|
|
6825
|
-
this.napiModule.executeAsyncWork(payload.work);
|
|
7372
|
+
this.napiModule.initWorker(payload.arg, payload.func);
|
|
6826
7373
|
});
|
|
6827
7374
|
}
|
|
6828
7375
|
}
|
|
@@ -6833,7 +7380,7 @@ class MessageHandler extends wasiThreads.ThreadMessageHandler {
|
|
|
6833
7380
|
}
|
|
6834
7381
|
}
|
|
6835
7382
|
|
|
6836
|
-
const version = "1.
|
|
7383
|
+
const version = "1.10.0";
|
|
6837
7384
|
|
|
6838
7385
|
exports.MessageHandler = MessageHandler;
|
|
6839
7386
|
exports.createNapiModule = createNapiModule;
|