@tailwindcss/oxide-wasm32-wasi 0.0.0-insiders.fbc358c → 0.0.0-insiders.fc17df0
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 +904 -308
- 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 +946 -314
- package/node_modules/@emnapi/core/dist/emnapi-core.js +958 -329
- 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 +904 -308
- 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 +11 -3
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.d.mts +11 -3
- package/node_modules/@emnapi/runtime/dist/emnapi.d.ts +11 -3
- 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 +11 -3
- 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 +11 -4
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm-bundler.js +164 -2
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm.js +164 -2
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm.min.js +1 -1
- package/node_modules/@tybys/wasm-util/dist/wasm-util.js +164 -2
- package/node_modules/@tybys/wasm-util/dist/wasm-util.min.js +1 -1
- package/node_modules/@tybys/wasm-util/lib/cjs/wasi/path.js +142 -0
- package/node_modules/@tybys/wasm-util/lib/cjs/wasi/preview1.js +22 -2
- package/node_modules/@tybys/wasm-util/lib/mjs/wasi/path.mjs +142 -0
- package/node_modules/@tybys/wasm-util/lib/mjs/wasi/preview1.mjs +22 -2
- package/node_modules/@tybys/wasm-util/package.json +1 -1
- package/package.json +7 -7
- 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
|
-
try {
|
|
1701
|
-
emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
|
|
1702
|
-
emnapiAWMT.workerReady.ready = true;
|
|
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;
|
|
1709
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();
|
|
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,14 +2711,50 @@ 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();
|
|
2370
2723
|
}
|
|
2724
|
+
function node_api_set_prototype(env, object, value) {
|
|
2725
|
+
if (!env)
|
|
2726
|
+
return 1;
|
|
2727
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2728
|
+
envObject.checkGCAccess();
|
|
2729
|
+
if (!envObject.tryCatch.isEmpty())
|
|
2730
|
+
return envObject.setLastError(10);
|
|
2731
|
+
if (!envObject.canCallIntoJs())
|
|
2732
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
|
|
2733
|
+
envObject.clearLastError();
|
|
2734
|
+
try {
|
|
2735
|
+
if (!value)
|
|
2736
|
+
return envObject.setLastError(1);
|
|
2737
|
+
var obj = emnapiCtx.handleStore.get(object).value;
|
|
2738
|
+
if (obj == null) {
|
|
2739
|
+
throw new TypeError('Cannot convert undefined or null to object');
|
|
2740
|
+
}
|
|
2741
|
+
var type = typeof obj;
|
|
2742
|
+
var v = void 0;
|
|
2743
|
+
try {
|
|
2744
|
+
v = (type === 'object' && obj !== null) || type === 'function' ? obj : Object(obj);
|
|
2745
|
+
}
|
|
2746
|
+
catch (_) {
|
|
2747
|
+
return envObject.setLastError(2);
|
|
2748
|
+
}
|
|
2749
|
+
var val = emnapiCtx.handleStore.get(value).value;
|
|
2750
|
+
Object.setPrototypeOf(v, val);
|
|
2751
|
+
return envObject.getReturnStatus();
|
|
2752
|
+
}
|
|
2753
|
+
catch (err) {
|
|
2754
|
+
envObject.tryCatch.setError(err);
|
|
2755
|
+
return envObject.setLastError(10);
|
|
2756
|
+
}
|
|
2757
|
+
}
|
|
2371
2758
|
function napi_get_prototype(env, value, result) {
|
|
2372
2759
|
if (!env)
|
|
2373
2760
|
return 1;
|
|
@@ -2394,6 +2781,7 @@ function createNapiModule(options) {
|
|
|
2394
2781
|
catch (_) {
|
|
2395
2782
|
return envObject.setLastError(2);
|
|
2396
2783
|
}
|
|
2784
|
+
result >>>= 0;
|
|
2397
2785
|
var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
|
|
2398
2786
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2399
2787
|
HEAP_DATA_VIEW.setUint32(result, p, true);
|
|
@@ -2418,6 +2806,7 @@ function createNapiModule(options) {
|
|
|
2418
2806
|
var v = handle.value;
|
|
2419
2807
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2420
2808
|
if (type) {
|
|
2809
|
+
type >>>= 0;
|
|
2421
2810
|
var t = void 0;
|
|
2422
2811
|
if (v instanceof Int8Array) {
|
|
2423
2812
|
t = 0;
|
|
@@ -2440,6 +2829,9 @@ function createNapiModule(options) {
|
|
|
2440
2829
|
else if (v instanceof Uint32Array) {
|
|
2441
2830
|
t = 6;
|
|
2442
2831
|
}
|
|
2832
|
+
else if (typeof Float16Array === 'function' && v instanceof Float16Array) {
|
|
2833
|
+
t = 11;
|
|
2834
|
+
}
|
|
2443
2835
|
else if (v instanceof Float32Array) {
|
|
2444
2836
|
t = 7;
|
|
2445
2837
|
}
|
|
@@ -2457,22 +2849,25 @@ function createNapiModule(options) {
|
|
|
2457
2849
|
}
|
|
2458
2850
|
HEAP_DATA_VIEW.setInt32(type, t, true);
|
|
2459
2851
|
}
|
|
2852
|
+
v = emnapiExternalMemory.getOrUpdateMemoryView(v);
|
|
2460
2853
|
if (length) {
|
|
2854
|
+
length >>>= 0;
|
|
2461
2855
|
HEAP_DATA_VIEW.setUint32(length, v.length, true);
|
|
2462
2856
|
}
|
|
2463
|
-
var buffer;
|
|
2464
2857
|
if (data || arraybuffer) {
|
|
2465
|
-
buffer = v.buffer;
|
|
2466
2858
|
if (data) {
|
|
2859
|
+
data >>>= 0;
|
|
2467
2860
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
2468
2861
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2469
2862
|
}
|
|
2470
2863
|
if (arraybuffer) {
|
|
2471
|
-
|
|
2864
|
+
arraybuffer >>>= 0;
|
|
2865
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
2472
2866
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
2473
2867
|
}
|
|
2474
2868
|
}
|
|
2475
2869
|
if (byte_offset) {
|
|
2870
|
+
byte_offset >>>= 0;
|
|
2476
2871
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
2477
2872
|
}
|
|
2478
2873
|
return envObject.clearLastError();
|
|
@@ -2503,24 +2898,26 @@ function createNapiModule(options) {
|
|
|
2503
2898
|
if (!handle.isDataView()) {
|
|
2504
2899
|
return envObject.setLastError(1);
|
|
2505
2900
|
}
|
|
2506
|
-
var v = handle.value;
|
|
2901
|
+
var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
|
|
2507
2902
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2508
2903
|
if (byte_length) {
|
|
2904
|
+
byte_length >>>= 0;
|
|
2509
2905
|
HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
|
|
2510
2906
|
}
|
|
2511
|
-
var buffer;
|
|
2512
2907
|
if (data || arraybuffer) {
|
|
2513
|
-
buffer = v.buffer;
|
|
2514
2908
|
if (data) {
|
|
2909
|
+
data >>>= 0;
|
|
2515
2910
|
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
2516
2911
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
2517
2912
|
}
|
|
2518
2913
|
if (arraybuffer) {
|
|
2519
|
-
|
|
2914
|
+
arraybuffer >>>= 0;
|
|
2915
|
+
var ab = envObject.ensureHandleId(v.buffer);
|
|
2520
2916
|
HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
|
|
2521
2917
|
}
|
|
2522
2918
|
}
|
|
2523
2919
|
if (byte_offset) {
|
|
2920
|
+
byte_offset >>>= 0;
|
|
2524
2921
|
HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
|
|
2525
2922
|
}
|
|
2526
2923
|
return envObject.clearLastError();
|
|
@@ -2545,6 +2942,7 @@ function createNapiModule(options) {
|
|
|
2545
2942
|
if (!handle.isDate()) {
|
|
2546
2943
|
return envObject.setLastError(1);
|
|
2547
2944
|
}
|
|
2945
|
+
result >>>= 0;
|
|
2548
2946
|
v = handle.value.valueOf();
|
|
2549
2947
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2550
2948
|
HEAP_DATA_VIEW.setFloat64(result, v, true);
|
|
@@ -2568,6 +2966,7 @@ function createNapiModule(options) {
|
|
|
2568
2966
|
if (typeof handle.value !== 'boolean') {
|
|
2569
2967
|
return envObject.setLastError(7);
|
|
2570
2968
|
}
|
|
2969
|
+
result >>>= 0;
|
|
2571
2970
|
var r = handle.value ? 1 : 0;
|
|
2572
2971
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2573
2972
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -2586,6 +2985,7 @@ function createNapiModule(options) {
|
|
|
2586
2985
|
if (typeof handle.value !== 'number') {
|
|
2587
2986
|
return envObject.setLastError(6);
|
|
2588
2987
|
}
|
|
2988
|
+
result >>>= 0;
|
|
2589
2989
|
var r = handle.value;
|
|
2590
2990
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2591
2991
|
HEAP_DATA_VIEW.setFloat64(result, r, true);
|
|
@@ -2610,6 +3010,8 @@ function createNapiModule(options) {
|
|
|
2610
3010
|
if (typeof numberValue !== 'bigint') {
|
|
2611
3011
|
return envObject.setLastError(6);
|
|
2612
3012
|
}
|
|
3013
|
+
lossless >>>= 0;
|
|
3014
|
+
result >>>= 0;
|
|
2613
3015
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2614
3016
|
if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
|
|
2615
3017
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -2646,6 +3048,8 @@ function createNapiModule(options) {
|
|
|
2646
3048
|
if (typeof numberValue !== 'bigint') {
|
|
2647
3049
|
return envObject.setLastError(6);
|
|
2648
3050
|
}
|
|
3051
|
+
lossless >>>= 0;
|
|
3052
|
+
result >>>= 0;
|
|
2649
3053
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2650
3054
|
if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
|
|
2651
3055
|
HEAP_DATA_VIEW.setInt8(lossless, 1, true);
|
|
@@ -2677,8 +3081,12 @@ function createNapiModule(options) {
|
|
|
2677
3081
|
return envObject.setLastError(17);
|
|
2678
3082
|
}
|
|
2679
3083
|
var isMinus = handle.value < BigInt(0);
|
|
3084
|
+
sign_bit >>>= 0;
|
|
3085
|
+
words >>>= 0;
|
|
3086
|
+
word_count >>>= 0;
|
|
2680
3087
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2681
3088
|
var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
|
|
3089
|
+
word_count_int >>>= 0;
|
|
2682
3090
|
var wordCount = 0;
|
|
2683
3091
|
var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
2684
3092
|
while (bigintValue !== BigInt(0)) {
|
|
@@ -2726,6 +3134,7 @@ function createNapiModule(options) {
|
|
|
2726
3134
|
if (!handle.isExternal()) {
|
|
2727
3135
|
return envObject.setLastError(1);
|
|
2728
3136
|
}
|
|
3137
|
+
result >>>= 0;
|
|
2729
3138
|
var p = handle.data();
|
|
2730
3139
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2731
3140
|
HEAP_DATA_VIEW.setUint32(result, p, true);
|
|
@@ -2744,6 +3153,7 @@ function createNapiModule(options) {
|
|
|
2744
3153
|
if (typeof handle.value !== 'number') {
|
|
2745
3154
|
return envObject.setLastError(6);
|
|
2746
3155
|
}
|
|
3156
|
+
result >>>= 0;
|
|
2747
3157
|
var v = new Int32Array([handle.value])[0];
|
|
2748
3158
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2749
3159
|
HEAP_DATA_VIEW.setInt32(result, v, true);
|
|
@@ -2763,6 +3173,7 @@ function createNapiModule(options) {
|
|
|
2763
3173
|
return envObject.setLastError(6);
|
|
2764
3174
|
}
|
|
2765
3175
|
var numberValue = handle.value;
|
|
3176
|
+
result >>>= 0;
|
|
2766
3177
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2767
3178
|
if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
|
|
2768
3179
|
HEAP_DATA_VIEW.setInt32(result, 0, true);
|
|
@@ -2788,6 +3199,9 @@ function createNapiModule(options) {
|
|
|
2788
3199
|
envObject.checkGCAccess();
|
|
2789
3200
|
if (!value)
|
|
2790
3201
|
return envObject.setLastError(1);
|
|
3202
|
+
result >>>= 0;
|
|
3203
|
+
buf >>>= 0;
|
|
3204
|
+
buf_size >>>= 0;
|
|
2791
3205
|
buf_size = buf_size >>> 0;
|
|
2792
3206
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2793
3207
|
if (typeof handle.value !== 'string') {
|
|
@@ -2824,6 +3238,9 @@ function createNapiModule(options) {
|
|
|
2824
3238
|
envObject.checkGCAccess();
|
|
2825
3239
|
if (!value)
|
|
2826
3240
|
return envObject.setLastError(1);
|
|
3241
|
+
result >>>= 0;
|
|
3242
|
+
buf >>>= 0;
|
|
3243
|
+
buf_size >>>= 0;
|
|
2827
3244
|
buf_size = buf_size >>> 0;
|
|
2828
3245
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2829
3246
|
if (typeof handle.value !== 'string') {
|
|
@@ -2854,6 +3271,9 @@ function createNapiModule(options) {
|
|
|
2854
3271
|
envObject.checkGCAccess();
|
|
2855
3272
|
if (!value)
|
|
2856
3273
|
return envObject.setLastError(1);
|
|
3274
|
+
result >>>= 0;
|
|
3275
|
+
buf >>>= 0;
|
|
3276
|
+
buf_size >>>= 0;
|
|
2857
3277
|
buf_size = buf_size >>> 0;
|
|
2858
3278
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2859
3279
|
if (typeof handle.value !== 'string') {
|
|
@@ -2889,6 +3309,7 @@ function createNapiModule(options) {
|
|
|
2889
3309
|
if (typeof handle.value !== 'number') {
|
|
2890
3310
|
return envObject.setLastError(6);
|
|
2891
3311
|
}
|
|
3312
|
+
result >>>= 0;
|
|
2892
3313
|
var v = new Uint32Array([handle.value])[0];
|
|
2893
3314
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2894
3315
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -2914,7 +3335,8 @@ function createNapiModule(options) {
|
|
|
2914
3335
|
napi_get_value_string_latin1: napi_get_value_string_latin1,
|
|
2915
3336
|
napi_get_value_string_utf16: napi_get_value_string_utf16,
|
|
2916
3337
|
napi_get_value_string_utf8: napi_get_value_string_utf8,
|
|
2917
|
-
napi_get_value_uint32: napi_get_value_uint32
|
|
3338
|
+
napi_get_value_uint32: napi_get_value_uint32,
|
|
3339
|
+
node_api_set_prototype: node_api_set_prototype
|
|
2918
3340
|
});
|
|
2919
3341
|
function napi_create_int32(env, value, result) {
|
|
2920
3342
|
if (!env)
|
|
@@ -2923,6 +3345,7 @@ function createNapiModule(options) {
|
|
|
2923
3345
|
envObject.checkGCAccess();
|
|
2924
3346
|
if (!result)
|
|
2925
3347
|
return envObject.setLastError(1);
|
|
3348
|
+
result >>>= 0;
|
|
2926
3349
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
2927
3350
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2928
3351
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -2935,6 +3358,7 @@ function createNapiModule(options) {
|
|
|
2935
3358
|
envObject.checkGCAccess();
|
|
2936
3359
|
if (!result)
|
|
2937
3360
|
return envObject.setLastError(1);
|
|
3361
|
+
result >>>= 0;
|
|
2938
3362
|
var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
|
|
2939
3363
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2940
3364
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -2950,6 +3374,7 @@ function createNapiModule(options) {
|
|
|
2950
3374
|
return envObject.setLastError(1);
|
|
2951
3375
|
value = Number(low);
|
|
2952
3376
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3377
|
+
high >>>= 0;
|
|
2953
3378
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2954
3379
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
2955
3380
|
return envObject.clearLastError();
|
|
@@ -2961,6 +3386,7 @@ function createNapiModule(options) {
|
|
|
2961
3386
|
envObject.checkGCAccess();
|
|
2962
3387
|
if (!result)
|
|
2963
3388
|
return envObject.setLastError(1);
|
|
3389
|
+
result >>>= 0;
|
|
2964
3390
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
2965
3391
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2966
3392
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -3031,6 +3457,7 @@ function createNapiModule(options) {
|
|
|
3031
3457
|
return envObject.setLastError(1);
|
|
3032
3458
|
value = low;
|
|
3033
3459
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3460
|
+
high >>>= 0;
|
|
3034
3461
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3035
3462
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3036
3463
|
return envObject.clearLastError();
|
|
@@ -3048,6 +3475,7 @@ function createNapiModule(options) {
|
|
|
3048
3475
|
return envObject.setLastError(1);
|
|
3049
3476
|
value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
3050
3477
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3478
|
+
high >>>= 0;
|
|
3051
3479
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3052
3480
|
HEAP_DATA_VIEW.setUint32(high, v1, true);
|
|
3053
3481
|
return envObject.clearLastError();
|
|
@@ -3069,6 +3497,8 @@ function createNapiModule(options) {
|
|
|
3069
3497
|
}
|
|
3070
3498
|
if (!result)
|
|
3071
3499
|
return envObject.setLastError(1);
|
|
3500
|
+
words >>>= 0;
|
|
3501
|
+
word_count >>>= 0;
|
|
3072
3502
|
word_count = word_count >>> 0;
|
|
3073
3503
|
if (word_count > 2147483647) {
|
|
3074
3504
|
return envObject.setLastError(1);
|
|
@@ -3085,6 +3515,7 @@ function createNapiModule(options) {
|
|
|
3085
3515
|
value += wordi << BigInt(64 * i);
|
|
3086
3516
|
}
|
|
3087
3517
|
value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
|
|
3518
|
+
result >>>= 0;
|
|
3088
3519
|
v = emnapiCtx.addToCurrentScope(value).id;
|
|
3089
3520
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
3090
3521
|
return envObject.getReturnStatus();
|
|
@@ -3113,6 +3544,7 @@ function createNapiModule(options) {
|
|
|
3113
3544
|
node_api_create_property_key_utf8: node_api_create_property_key_utf8
|
|
3114
3545
|
});
|
|
3115
3546
|
function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
|
|
3547
|
+
utf8name >>>= 0;
|
|
3116
3548
|
var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
|
|
3117
3549
|
var f;
|
|
3118
3550
|
var napiCallback = (wasmTable.get(cb));
|
|
@@ -3253,6 +3685,7 @@ function createNapiModule(options) {
|
|
|
3253
3685
|
if (!finalize_cb)
|
|
3254
3686
|
return envObject.setLastError(1);
|
|
3255
3687
|
reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1, finalize_cb, native_object, finalize_hint);
|
|
3688
|
+
result >>>= 0;
|
|
3256
3689
|
referenceId = reference.id;
|
|
3257
3690
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3258
3691
|
HEAP_DATA_VIEW.setUint32(result, referenceId, true);
|
|
@@ -3301,6 +3734,7 @@ function createNapiModule(options) {
|
|
|
3301
3734
|
if (!ref)
|
|
3302
3735
|
return envObject.setLastError(1);
|
|
3303
3736
|
if (result) {
|
|
3737
|
+
result >>>= 0;
|
|
3304
3738
|
data = ref.data();
|
|
3305
3739
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3306
3740
|
HEAP_DATA_VIEW.setUint32(result, data, true);
|
|
@@ -3337,12 +3771,15 @@ function createNapiModule(options) {
|
|
|
3337
3771
|
return envObject.setLastError(1);
|
|
3338
3772
|
if (!constructor)
|
|
3339
3773
|
return envObject.setLastError(1);
|
|
3774
|
+
length >>>= 0;
|
|
3775
|
+
properties >>>= 0;
|
|
3776
|
+
property_count >>>= 0;
|
|
3340
3777
|
property_count = property_count >>> 0;
|
|
3341
3778
|
if (property_count > 0) {
|
|
3342
3779
|
if (!properties)
|
|
3343
3780
|
return envObject.setLastError(1);
|
|
3344
3781
|
}
|
|
3345
|
-
if ((length
|
|
3782
|
+
if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
|
|
3346
3783
|
return envObject.setLastError(1);
|
|
3347
3784
|
}
|
|
3348
3785
|
var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
|
|
@@ -3360,6 +3797,7 @@ function createNapiModule(options) {
|
|
|
3360
3797
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
3361
3798
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
3362
3799
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
3800
|
+
attributes >>>= 0;
|
|
3363
3801
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
3364
3802
|
if (utf8Name) {
|
|
3365
3803
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -3381,6 +3819,7 @@ function createNapiModule(options) {
|
|
|
3381
3819
|
}
|
|
3382
3820
|
var valueHandle = emnapiCtx.addToCurrentScope(F);
|
|
3383
3821
|
valueHandleId = valueHandle.id;
|
|
3822
|
+
result >>>= 0;
|
|
3384
3823
|
HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
|
|
3385
3824
|
return envObject.getReturnStatus();
|
|
3386
3825
|
}
|
|
@@ -3416,6 +3855,7 @@ function createNapiModule(options) {
|
|
|
3416
3855
|
if (!(value.isObject() || value.isFunction())) {
|
|
3417
3856
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 2);
|
|
3418
3857
|
}
|
|
3858
|
+
type_tag >>>= 0;
|
|
3419
3859
|
if (!type_tag) {
|
|
3420
3860
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
|
|
3421
3861
|
}
|
|
@@ -3460,6 +3900,7 @@ function createNapiModule(options) {
|
|
|
3460
3900
|
}
|
|
3461
3901
|
var binding = envObject.getObjectBinding(value.value);
|
|
3462
3902
|
if (binding.tag !== null) {
|
|
3903
|
+
type_tag >>>= 0;
|
|
3463
3904
|
var tag = binding.tag;
|
|
3464
3905
|
var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
|
|
3465
3906
|
ret = (tag[0] === typeTag[0] &&
|
|
@@ -3470,6 +3911,7 @@ function createNapiModule(options) {
|
|
|
3470
3911
|
else {
|
|
3471
3912
|
ret = false;
|
|
3472
3913
|
}
|
|
3914
|
+
result >>>= 0;
|
|
3473
3915
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3474
3916
|
HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
|
|
3475
3917
|
return envObject.getReturnStatus();
|
|
@@ -3497,8 +3939,12 @@ function createNapiModule(options) {
|
|
|
3497
3939
|
}
|
|
3498
3940
|
var handle = handleResult.handle;
|
|
3499
3941
|
var ownership = !result ? 0 : 1;
|
|
3942
|
+
finalize_data >>>= 0;
|
|
3943
|
+
finalize_cb >>>= 0;
|
|
3944
|
+
finalize_hint >>>= 0;
|
|
3500
3945
|
var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
|
|
3501
3946
|
if (result) {
|
|
3947
|
+
result >>>= 0;
|
|
3502
3948
|
var referenceId = reference.id;
|
|
3503
3949
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3504
3950
|
HEAP_DATA_VIEW.setUint32(result, referenceId, true);
|
|
@@ -3537,6 +3983,9 @@ function createNapiModule(options) {
|
|
|
3537
3983
|
try {
|
|
3538
3984
|
if (!result)
|
|
3539
3985
|
return envObject.setLastError(1);
|
|
3986
|
+
byte_length >>>= 0;
|
|
3987
|
+
external_data >>>= 0;
|
|
3988
|
+
result >>>= 0;
|
|
3540
3989
|
byte_length = byte_length >>> 0;
|
|
3541
3990
|
if (!external_data) {
|
|
3542
3991
|
byte_length = 0;
|
|
@@ -3588,6 +4037,12 @@ function createNapiModule(options) {
|
|
|
3588
4037
|
case -1:
|
|
3589
4038
|
viewDescriptor = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
|
|
3590
4039
|
break;
|
|
4040
|
+
case 11:
|
|
4041
|
+
if (typeof Float16Array !== 'function') {
|
|
4042
|
+
return envObject.setLastError(1);
|
|
4043
|
+
}
|
|
4044
|
+
viewDescriptor = { Ctor: Float16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
|
|
4045
|
+
break;
|
|
3591
4046
|
case -2: {
|
|
3592
4047
|
if (!emnapiCtx.feature.Buffer) {
|
|
3593
4048
|
throw emnapiCtx.createNotSupportBufferError('emnapi_create_memory_view', '');
|
|
@@ -3641,7 +4096,7 @@ function createNapiModule(options) {
|
|
|
3641
4096
|
var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
|
|
3642
4097
|
if (!pointer)
|
|
3643
4098
|
throw new Error('Unknown ArrayBuffer address');
|
|
3644
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4099
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
3645
4100
|
len = arrayBufferOrView.byteLength - offset;
|
|
3646
4101
|
}
|
|
3647
4102
|
len = len >>> 0;
|
|
@@ -3663,7 +4118,7 @@ function createNapiModule(options) {
|
|
|
3663
4118
|
var pointer = viewPointerInfo.address;
|
|
3664
4119
|
if (!pointer)
|
|
3665
4120
|
throw new Error('Unknown ArrayBuffer address');
|
|
3666
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4121
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
3667
4122
|
len = latestView.byteLength - offset;
|
|
3668
4123
|
}
|
|
3669
4124
|
len = len >>> 0;
|
|
@@ -3695,6 +4150,9 @@ function createNapiModule(options) {
|
|
|
3695
4150
|
try {
|
|
3696
4151
|
if (!arraybuffer_or_view)
|
|
3697
4152
|
return envObject.setLastError(1);
|
|
4153
|
+
arraybuffer_or_view >>>= 0;
|
|
4154
|
+
offset >>>= 0;
|
|
4155
|
+
len >>>= 0;
|
|
3698
4156
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3699
4157
|
var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
|
|
3700
4158
|
var handle = envObject.ctx.handleStore.get(handleId);
|
|
@@ -3703,6 +4161,7 @@ function createNapiModule(options) {
|
|
|
3703
4161
|
}
|
|
3704
4162
|
var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
|
|
3705
4163
|
if (handle.value !== ret) {
|
|
4164
|
+
arraybuffer_or_view >>>= 0;
|
|
3706
4165
|
v = envObject.ensureHandleId(ret);
|
|
3707
4166
|
HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
|
|
3708
4167
|
}
|
|
@@ -3756,13 +4215,16 @@ function createNapiModule(options) {
|
|
|
3756
4215
|
p = info.address;
|
|
3757
4216
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3758
4217
|
if (address) {
|
|
4218
|
+
address >>>= 0;
|
|
3759
4219
|
HEAP_DATA_VIEW.setUint32(address, p, true);
|
|
3760
4220
|
}
|
|
3761
4221
|
if (ownership) {
|
|
4222
|
+
ownership >>>= 0;
|
|
3762
4223
|
ownershipOut = info.ownership;
|
|
3763
4224
|
HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
|
|
3764
4225
|
}
|
|
3765
4226
|
if (runtime_allocated) {
|
|
4227
|
+
runtime_allocated >>>= 0;
|
|
3766
4228
|
runtimeAllocated = info.runtimeAllocated;
|
|
3767
4229
|
HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
|
|
3768
4230
|
}
|
|
@@ -3788,6 +4250,7 @@ function createNapiModule(options) {
|
|
|
3788
4250
|
}
|
|
3789
4251
|
var versions = runtimeVersion.split('.')
|
|
3790
4252
|
.map(function (n) { return Number(n); });
|
|
4253
|
+
version >>>= 0;
|
|
3791
4254
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3792
4255
|
HEAP_DATA_VIEW.setUint32(version, versions[0], true);
|
|
3793
4256
|
HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
|
|
@@ -3813,6 +4276,7 @@ function createNapiModule(options) {
|
|
|
3813
4276
|
envObject.checkGCAccess();
|
|
3814
4277
|
if (!result)
|
|
3815
4278
|
return envObject.setLastError(1);
|
|
4279
|
+
result >>>= 0;
|
|
3816
4280
|
var value = emnapiCtx.addToCurrentScope([]).id;
|
|
3817
4281
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3818
4282
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -3825,6 +4289,8 @@ function createNapiModule(options) {
|
|
|
3825
4289
|
envObject.checkGCAccess();
|
|
3826
4290
|
if (!result)
|
|
3827
4291
|
return envObject.setLastError(1);
|
|
4292
|
+
length >>>= 0;
|
|
4293
|
+
result >>>= 0;
|
|
3828
4294
|
length = length >>> 0;
|
|
3829
4295
|
var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
|
|
3830
4296
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3832,9 +4298,11 @@ function createNapiModule(options) {
|
|
|
3832
4298
|
return envObject.clearLastError();
|
|
3833
4299
|
}
|
|
3834
4300
|
function emnapiCreateArrayBuffer(byte_length, data, shared) {
|
|
4301
|
+
byte_length >>>= 0;
|
|
3835
4302
|
byte_length = byte_length >>> 0;
|
|
3836
4303
|
var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
|
|
3837
4304
|
if (data) {
|
|
4305
|
+
data >>>= 0;
|
|
3838
4306
|
var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
|
|
3839
4307
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3840
4308
|
HEAP_DATA_VIEW.setUint32(data, p, true);
|
|
@@ -3855,6 +4323,7 @@ function createNapiModule(options) {
|
|
|
3855
4323
|
try {
|
|
3856
4324
|
if (!result)
|
|
3857
4325
|
return envObject.setLastError(1);
|
|
4326
|
+
result >>>= 0;
|
|
3858
4327
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
|
|
3859
4328
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
3860
4329
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3880,6 +4349,7 @@ function createNapiModule(options) {
|
|
|
3880
4349
|
try {
|
|
3881
4350
|
if (!result)
|
|
3882
4351
|
return envObject.setLastError(1);
|
|
4352
|
+
result >>>= 0;
|
|
3883
4353
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
|
|
3884
4354
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
3885
4355
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -3905,6 +4375,7 @@ function createNapiModule(options) {
|
|
|
3905
4375
|
try {
|
|
3906
4376
|
if (!result)
|
|
3907
4377
|
return envObject.setLastError(1);
|
|
4378
|
+
result >>>= 0;
|
|
3908
4379
|
value = emnapiCtx.addToCurrentScope(new Date(time)).id;
|
|
3909
4380
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3910
4381
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -3936,6 +4407,7 @@ function createNapiModule(options) {
|
|
|
3936
4407
|
if (finalize_cb) {
|
|
3937
4408
|
emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0, finalize_cb, data, finalize_hint);
|
|
3938
4409
|
}
|
|
4410
|
+
result >>>= 0;
|
|
3939
4411
|
value = externalHandle.id;
|
|
3940
4412
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3941
4413
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -3960,6 +4432,9 @@ function createNapiModule(options) {
|
|
|
3960
4432
|
try {
|
|
3961
4433
|
if (!result)
|
|
3962
4434
|
return envObject.setLastError(1);
|
|
4435
|
+
byte_length >>>= 0;
|
|
4436
|
+
external_data >>>= 0;
|
|
4437
|
+
result >>>= 0;
|
|
3963
4438
|
byte_length = byte_length >>> 0;
|
|
3964
4439
|
if (!external_data) {
|
|
3965
4440
|
byte_length = 0;
|
|
@@ -4017,18 +4492,20 @@ function createNapiModule(options) {
|
|
|
4017
4492
|
envObject.checkGCAccess();
|
|
4018
4493
|
if (!result)
|
|
4019
4494
|
return envObject.setLastError(1);
|
|
4495
|
+
result >>>= 0;
|
|
4020
4496
|
var value = emnapiCtx.addToCurrentScope({}).id;
|
|
4021
4497
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4022
4498
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4023
4499
|
return envObject.clearLastError();
|
|
4024
4500
|
}
|
|
4025
|
-
function
|
|
4501
|
+
function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
|
|
4026
4502
|
if (!env)
|
|
4027
4503
|
return 1;
|
|
4028
4504
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4029
4505
|
envObject.checkGCAccess();
|
|
4030
4506
|
if (!result)
|
|
4031
4507
|
return envObject.setLastError(1);
|
|
4508
|
+
property_count >>>= 0;
|
|
4032
4509
|
property_count = property_count >>> 0;
|
|
4033
4510
|
if (property_count > 0) {
|
|
4034
4511
|
if (!property_names)
|
|
@@ -4040,6 +4517,8 @@ function createNapiModule(options) {
|
|
|
4040
4517
|
? emnapiCtx.handleStore.get(prototype_or_null).value
|
|
4041
4518
|
: null;
|
|
4042
4519
|
var properties = {};
|
|
4520
|
+
property_names >>>= 0;
|
|
4521
|
+
property_values >>>= 0;
|
|
4043
4522
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4044
4523
|
for (var i = 0; i < property_count; i++) {
|
|
4045
4524
|
var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
|
|
@@ -4060,6 +4539,7 @@ function createNapiModule(options) {
|
|
|
4060
4539
|
return envObject.setLastError(9);
|
|
4061
4540
|
}
|
|
4062
4541
|
var value = emnapiCtx.addToCurrentScope(obj).id;
|
|
4542
|
+
result >>>= 0;
|
|
4063
4543
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4064
4544
|
return envObject.clearLastError();
|
|
4065
4545
|
}
|
|
@@ -4070,6 +4550,7 @@ function createNapiModule(options) {
|
|
|
4070
4550
|
envObject.checkGCAccess();
|
|
4071
4551
|
if (!result)
|
|
4072
4552
|
return envObject.setLastError(1);
|
|
4553
|
+
result >>>= 0;
|
|
4073
4554
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4074
4555
|
if (!description) {
|
|
4075
4556
|
var value = emnapiCtx.addToCurrentScope(Symbol()).id;
|
|
@@ -4107,6 +4588,8 @@ function createNapiModule(options) {
|
|
|
4107
4588
|
return envObject.setLastError(1);
|
|
4108
4589
|
}
|
|
4109
4590
|
var buffer = handle.value;
|
|
4591
|
+
byte_offset >>>= 0;
|
|
4592
|
+
length >>>= 0;
|
|
4110
4593
|
var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
|
|
4111
4594
|
var _a;
|
|
4112
4595
|
byte_offset = byte_offset >>> 0;
|
|
@@ -4137,6 +4620,7 @@ function createNapiModule(options) {
|
|
|
4137
4620
|
});
|
|
4138
4621
|
}
|
|
4139
4622
|
}
|
|
4623
|
+
result >>>= 0;
|
|
4140
4624
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4141
4625
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4142
4626
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4165,6 +4649,11 @@ function createNapiModule(options) {
|
|
|
4165
4649
|
return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
|
|
4166
4650
|
case 10:
|
|
4167
4651
|
return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
|
|
4652
|
+
case 11:
|
|
4653
|
+
if (typeof Float16Array !== 'function') {
|
|
4654
|
+
return envObject.setLastError(1);
|
|
4655
|
+
}
|
|
4656
|
+
return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
|
|
4168
4657
|
default:
|
|
4169
4658
|
return envObject.setLastError(1);
|
|
4170
4659
|
}
|
|
@@ -4193,7 +4682,9 @@ function createNapiModule(options) {
|
|
|
4193
4682
|
if (!Buffer) {
|
|
4194
4683
|
throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
|
|
4195
4684
|
}
|
|
4685
|
+
result >>>= 0;
|
|
4196
4686
|
var buffer = void 0;
|
|
4687
|
+
size >>>= 0;
|
|
4197
4688
|
size = size >>> 0;
|
|
4198
4689
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4199
4690
|
if (!data || (size === 0)) {
|
|
@@ -4205,6 +4696,7 @@ function createNapiModule(options) {
|
|
|
4205
4696
|
pointer = _malloc(size);
|
|
4206
4697
|
if (!pointer)
|
|
4207
4698
|
throw new Error('Out of memory');
|
|
4699
|
+
pointer >>>= 0;
|
|
4208
4700
|
new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
|
|
4209
4701
|
var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
|
|
4210
4702
|
var viewDescriptor = {
|
|
@@ -4218,6 +4710,7 @@ function createNapiModule(options) {
|
|
|
4218
4710
|
(_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
|
|
4219
4711
|
value = emnapiCtx.addToCurrentScope(buffer_1).id;
|
|
4220
4712
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4713
|
+
data >>>= 0;
|
|
4221
4714
|
HEAP_DATA_VIEW.setUint32(data, pointer, true);
|
|
4222
4715
|
}
|
|
4223
4716
|
return envObject.getReturnStatus();
|
|
@@ -4247,8 +4740,11 @@ function createNapiModule(options) {
|
|
|
4247
4740
|
}
|
|
4248
4741
|
var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
|
|
4249
4742
|
var buffer = Buffer.from(arrayBuffer);
|
|
4743
|
+
data >>>= 0;
|
|
4744
|
+
length >>>= 0;
|
|
4250
4745
|
buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
|
|
4251
4746
|
value = emnapiCtx.addToCurrentScope(buffer).id;
|
|
4747
|
+
result >>>= 0;
|
|
4252
4748
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4253
4749
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4254
4750
|
return envObject.getReturnStatus();
|
|
@@ -4277,6 +4773,8 @@ function createNapiModule(options) {
|
|
|
4277
4773
|
return envObject.setLastError(1);
|
|
4278
4774
|
if (!result)
|
|
4279
4775
|
return envObject.setLastError(1);
|
|
4776
|
+
byte_offset >>>= 0;
|
|
4777
|
+
byte_length >>>= 0;
|
|
4280
4778
|
byte_offset = byte_offset >>> 0;
|
|
4281
4779
|
byte_length = byte_length >>> 0;
|
|
4282
4780
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
@@ -4305,6 +4803,7 @@ function createNapiModule(options) {
|
|
|
4305
4803
|
});
|
|
4306
4804
|
}
|
|
4307
4805
|
}
|
|
4806
|
+
result >>>= 0;
|
|
4308
4807
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4309
4808
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4310
4809
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4330,6 +4829,8 @@ function createNapiModule(options) {
|
|
|
4330
4829
|
return envObject.setLastError(1);
|
|
4331
4830
|
if (!result)
|
|
4332
4831
|
return envObject.setLastError(1);
|
|
4832
|
+
byte_length >>>= 0;
|
|
4833
|
+
byte_offset >>>= 0;
|
|
4333
4834
|
byte_length = byte_length >>> 0;
|
|
4334
4835
|
byte_offset = byte_offset >>> 0;
|
|
4335
4836
|
var value = emnapiCtx.handleStore.get(arraybuffer).value;
|
|
@@ -4351,6 +4852,7 @@ function createNapiModule(options) {
|
|
|
4351
4852
|
});
|
|
4352
4853
|
}
|
|
4353
4854
|
}
|
|
4855
|
+
result >>>= 0;
|
|
4354
4856
|
var v = emnapiCtx.addToCurrentScope(dataview).id;
|
|
4355
4857
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4356
4858
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -4375,7 +4877,10 @@ function createNapiModule(options) {
|
|
|
4375
4877
|
envObject.checkGCAccess();
|
|
4376
4878
|
if (!result)
|
|
4377
4879
|
return envObject.setLastError(1);
|
|
4378
|
-
|
|
4880
|
+
length >>>= 0;
|
|
4881
|
+
utf8description >>>= 0;
|
|
4882
|
+
result >>>= 0;
|
|
4883
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
4379
4884
|
var sizelength = length >>> 0;
|
|
4380
4885
|
if (length !== 0) {
|
|
4381
4886
|
if (!utf8description)
|
|
@@ -4403,10 +4908,10 @@ function createNapiModule(options) {
|
|
|
4403
4908
|
napi_create_external_arraybuffer: napi_create_external_arraybuffer,
|
|
4404
4909
|
napi_create_external_buffer: napi_create_external_buffer,
|
|
4405
4910
|
napi_create_object: napi_create_object,
|
|
4406
|
-
napi_create_object_with_properties: napi_create_object_with_properties,
|
|
4407
4911
|
napi_create_symbol: napi_create_symbol,
|
|
4408
4912
|
napi_create_typedarray: napi_create_typedarray,
|
|
4409
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,
|
|
4410
4915
|
node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
|
|
4411
4916
|
node_api_symbol_for: node_api_symbol_for
|
|
4412
4917
|
});
|
|
@@ -4417,6 +4922,7 @@ function createNapiModule(options) {
|
|
|
4417
4922
|
envObject.checkGCAccess();
|
|
4418
4923
|
if (!result)
|
|
4419
4924
|
return envObject.setLastError(1);
|
|
4925
|
+
result >>>= 0;
|
|
4420
4926
|
var v = value === 0 ? 3 : 4;
|
|
4421
4927
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4422
4928
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -4429,6 +4935,7 @@ function createNapiModule(options) {
|
|
|
4429
4935
|
envObject.checkGCAccess();
|
|
4430
4936
|
if (!result)
|
|
4431
4937
|
return envObject.setLastError(1);
|
|
4938
|
+
result >>>= 0;
|
|
4432
4939
|
var value = 5;
|
|
4433
4940
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4434
4941
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4441,6 +4948,7 @@ function createNapiModule(options) {
|
|
|
4441
4948
|
envObject.checkGCAccess();
|
|
4442
4949
|
if (!result)
|
|
4443
4950
|
return envObject.setLastError(1);
|
|
4951
|
+
result >>>= 0;
|
|
4444
4952
|
var value = 2;
|
|
4445
4953
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4446
4954
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4453,6 +4961,7 @@ function createNapiModule(options) {
|
|
|
4453
4961
|
envObject.checkGCAccess();
|
|
4454
4962
|
if (!result)
|
|
4455
4963
|
return envObject.setLastError(1);
|
|
4964
|
+
result >>>= 0;
|
|
4456
4965
|
var value = 1;
|
|
4457
4966
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4458
4967
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4469,6 +4978,9 @@ function createNapiModule(options) {
|
|
|
4469
4978
|
if (!env)
|
|
4470
4979
|
return 1;
|
|
4471
4980
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4981
|
+
data >>>= 0;
|
|
4982
|
+
finalize_cb >>>= 0;
|
|
4983
|
+
finalize_hint >>>= 0;
|
|
4472
4984
|
envObject.setInstanceData(data, finalize_cb, finalize_hint);
|
|
4473
4985
|
return envObject.clearLastError();
|
|
4474
4986
|
}
|
|
@@ -4478,6 +4990,7 @@ function createNapiModule(options) {
|
|
|
4478
4990
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4479
4991
|
if (!data)
|
|
4480
4992
|
return envObject.setLastError(1);
|
|
4993
|
+
data >>>= 0;
|
|
4481
4994
|
var value = envObject.getInstanceData();
|
|
4482
4995
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4483
4996
|
HEAP_DATA_VIEW.setUint32(data, value, true);
|
|
@@ -4489,11 +5002,15 @@ function createNapiModule(options) {
|
|
|
4489
5002
|
napi_set_instance_data: napi_set_instance_data
|
|
4490
5003
|
});
|
|
4491
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;
|
|
4492
5008
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4493
5009
|
var lastError = envObject.lastError;
|
|
4494
5010
|
var errorCode = lastError.errorCode;
|
|
4495
5011
|
var engineErrorCode = lastError.engineErrorCode >>> 0;
|
|
4496
5012
|
var engineReserved = lastError.engineReserved;
|
|
5013
|
+
engineReserved >>>= 0;
|
|
4497
5014
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4498
5015
|
HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
|
|
4499
5016
|
HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
|
|
@@ -4533,6 +5050,8 @@ function createNapiModule(options) {
|
|
|
4533
5050
|
try {
|
|
4534
5051
|
if (!msg)
|
|
4535
5052
|
return envObject.setLastError(1);
|
|
5053
|
+
code >>>= 0;
|
|
5054
|
+
msg >>>= 0;
|
|
4536
5055
|
var error = new Error(emnapiString.UTF8ToString(msg, -1));
|
|
4537
5056
|
if (code)
|
|
4538
5057
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4557,6 +5076,8 @@ function createNapiModule(options) {
|
|
|
4557
5076
|
try {
|
|
4558
5077
|
if (!msg)
|
|
4559
5078
|
return envObject.setLastError(1);
|
|
5079
|
+
code >>>= 0;
|
|
5080
|
+
msg >>>= 0;
|
|
4560
5081
|
var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
|
|
4561
5082
|
if (code)
|
|
4562
5083
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4581,6 +5102,8 @@ function createNapiModule(options) {
|
|
|
4581
5102
|
try {
|
|
4582
5103
|
if (!msg)
|
|
4583
5104
|
return envObject.setLastError(1);
|
|
5105
|
+
code >>>= 0;
|
|
5106
|
+
msg >>>= 0;
|
|
4584
5107
|
var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
|
|
4585
5108
|
if (code)
|
|
4586
5109
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4605,6 +5128,8 @@ function createNapiModule(options) {
|
|
|
4605
5128
|
try {
|
|
4606
5129
|
if (!msg)
|
|
4607
5130
|
return envObject.setLastError(1);
|
|
5131
|
+
code >>>= 0;
|
|
5132
|
+
msg >>>= 0;
|
|
4608
5133
|
var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
|
|
4609
5134
|
if (code)
|
|
4610
5135
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4624,6 +5149,7 @@ function createNapiModule(options) {
|
|
|
4624
5149
|
if (!result)
|
|
4625
5150
|
return envObject.setLastError(1);
|
|
4626
5151
|
var r = envObject.tryCatch.hasCaught();
|
|
5152
|
+
result >>>= 0;
|
|
4627
5153
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4628
5154
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
4629
5155
|
return envObject.clearLastError();
|
|
@@ -4649,6 +5175,7 @@ function createNapiModule(options) {
|
|
|
4649
5175
|
}
|
|
4650
5176
|
error.code = codeValue;
|
|
4651
5177
|
}
|
|
5178
|
+
result >>>= 0;
|
|
4652
5179
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4653
5180
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4654
5181
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4675,6 +5202,7 @@ function createNapiModule(options) {
|
|
|
4675
5202
|
}
|
|
4676
5203
|
error.code = codeValue;
|
|
4677
5204
|
}
|
|
5205
|
+
result >>>= 0;
|
|
4678
5206
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4679
5207
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4680
5208
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4701,6 +5229,7 @@ function createNapiModule(options) {
|
|
|
4701
5229
|
}
|
|
4702
5230
|
error.code = codeValue;
|
|
4703
5231
|
}
|
|
5232
|
+
result >>>= 0;
|
|
4704
5233
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4705
5234
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4706
5235
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4727,6 +5256,7 @@ function createNapiModule(options) {
|
|
|
4727
5256
|
}
|
|
4728
5257
|
error.code = codeValue;
|
|
4729
5258
|
}
|
|
5259
|
+
result >>>= 0;
|
|
4730
5260
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4731
5261
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4732
5262
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -4739,6 +5269,7 @@ function createNapiModule(options) {
|
|
|
4739
5269
|
envObject.checkGCAccess();
|
|
4740
5270
|
if (!result)
|
|
4741
5271
|
return envObject.setLastError(1);
|
|
5272
|
+
result >>>= 0;
|
|
4742
5273
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4743
5274
|
if (!envObject.tryCatch.hasCaught()) {
|
|
4744
5275
|
HEAP_DATA_VIEW.setUint32(result, 1, true);
|
|
@@ -4753,6 +5284,10 @@ function createNapiModule(options) {
|
|
|
4753
5284
|
return envObject.clearLastError();
|
|
4754
5285
|
}
|
|
4755
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;
|
|
4756
5291
|
var locationStr = emnapiString.UTF8ToString(location, location_len);
|
|
4757
5292
|
var messageStr = emnapiString.UTF8ToString(message, message_len);
|
|
4758
5293
|
if (emnapiNodeBinding) {
|
|
@@ -4806,8 +5341,21 @@ function createNapiModule(options) {
|
|
|
4806
5341
|
node_api_create_syntax_error: node_api_create_syntax_error,
|
|
4807
5342
|
node_api_throw_syntax_error: node_api_throw_syntax_error
|
|
4808
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
|
+
}
|
|
4809
5358
|
function napi_create_function(env, utf8name, length, cb, data, result) {
|
|
4810
|
-
var value;
|
|
4811
5359
|
if (!env)
|
|
4812
5360
|
return 1;
|
|
4813
5361
|
var envObject = emnapiCtx.envStore.get(env);
|
|
@@ -4822,15 +5370,7 @@ function createNapiModule(options) {
|
|
|
4822
5370
|
return envObject.setLastError(1);
|
|
4823
5371
|
if (!cb)
|
|
4824
5372
|
return envObject.setLastError(1);
|
|
4825
|
-
|
|
4826
|
-
if (fresult.status !== 0)
|
|
4827
|
-
return envObject.setLastError(fresult.status);
|
|
4828
|
-
var f = fresult.f;
|
|
4829
|
-
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
4830
|
-
value = valueHandle.id;
|
|
4831
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4832
|
-
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4833
|
-
return envObject.getReturnStatus();
|
|
5373
|
+
return _emnapi_create_function(env, utf8name, length, cb, data, result);
|
|
4834
5374
|
}
|
|
4835
5375
|
catch (err) {
|
|
4836
5376
|
envObject.tryCatch.setError(err);
|
|
@@ -4844,11 +5384,14 @@ function createNapiModule(options) {
|
|
|
4844
5384
|
if (!cbinfo)
|
|
4845
5385
|
return envObject.setLastError(1);
|
|
4846
5386
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
5387
|
+
argc >>>= 0;
|
|
5388
|
+
argv >>>= 0;
|
|
4847
5389
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4848
5390
|
if (argv) {
|
|
4849
5391
|
if (!argc)
|
|
4850
5392
|
return envObject.setLastError(1);
|
|
4851
5393
|
var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
|
|
5394
|
+
argcValue >>>= 0;
|
|
4852
5395
|
var len = cbinfoValue.args.length;
|
|
4853
5396
|
var arrlen = argcValue < len ? argcValue : len;
|
|
4854
5397
|
var i = 0;
|
|
@@ -4866,10 +5409,12 @@ function createNapiModule(options) {
|
|
|
4866
5409
|
HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
|
|
4867
5410
|
}
|
|
4868
5411
|
if (this_arg) {
|
|
5412
|
+
this_arg >>>= 0;
|
|
4869
5413
|
var v = envObject.ensureHandleId(cbinfoValue.thiz);
|
|
4870
5414
|
HEAP_DATA_VIEW.setUint32(this_arg, v, true);
|
|
4871
5415
|
}
|
|
4872
5416
|
if (data) {
|
|
5417
|
+
data >>>= 0;
|
|
4873
5418
|
HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
|
|
4874
5419
|
}
|
|
4875
5420
|
return envObject.clearLastError();
|
|
@@ -4889,6 +5434,9 @@ function createNapiModule(options) {
|
|
|
4889
5434
|
try {
|
|
4890
5435
|
if (!recv)
|
|
4891
5436
|
return envObject.setLastError(1);
|
|
5437
|
+
argc >>>= 0;
|
|
5438
|
+
argv >>>= 0;
|
|
5439
|
+
result >>>= 0;
|
|
4892
5440
|
argc = argc >>> 0;
|
|
4893
5441
|
if (argc > 0) {
|
|
4894
5442
|
if (!argv)
|
|
@@ -4933,6 +5481,9 @@ function createNapiModule(options) {
|
|
|
4933
5481
|
try {
|
|
4934
5482
|
if (!constructor)
|
|
4935
5483
|
return envObject.setLastError(1);
|
|
5484
|
+
argc >>>= 0;
|
|
5485
|
+
argv >>>= 0;
|
|
5486
|
+
result >>>= 0;
|
|
4936
5487
|
argc = argc >>> 0;
|
|
4937
5488
|
if (argc > 0) {
|
|
4938
5489
|
if (!argv)
|
|
@@ -4983,6 +5534,7 @@ function createNapiModule(options) {
|
|
|
4983
5534
|
return envObject.setLastError(1);
|
|
4984
5535
|
if (!result)
|
|
4985
5536
|
return envObject.setLastError(1);
|
|
5537
|
+
result >>>= 0;
|
|
4986
5538
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
4987
5539
|
var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
|
|
4988
5540
|
var value = thiz == null || thiz.constructor == null
|
|
@@ -4996,6 +5548,7 @@ function createNapiModule(options) {
|
|
|
4996
5548
|
}
|
|
4997
5549
|
var functionMod = Object.freeze({
|
|
4998
5550
|
__proto__: null,
|
|
5551
|
+
_emnapi_create_function: _emnapi_create_function,
|
|
4999
5552
|
napi_call_function: napi_call_function,
|
|
5000
5553
|
napi_create_function: napi_create_function,
|
|
5001
5554
|
napi_get_cb_info: napi_get_cb_info,
|
|
@@ -5010,6 +5563,7 @@ function createNapiModule(options) {
|
|
|
5010
5563
|
if (!result)
|
|
5011
5564
|
return envObject.setLastError(1);
|
|
5012
5565
|
var scope = emnapiCtx.openScope(envObject);
|
|
5566
|
+
result >>>= 0;
|
|
5013
5567
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5014
5568
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
5015
5569
|
return envObject.clearLastError();
|
|
@@ -5035,6 +5589,7 @@ function createNapiModule(options) {
|
|
|
5035
5589
|
if (!result)
|
|
5036
5590
|
return envObject.setLastError(1);
|
|
5037
5591
|
var scope = emnapiCtx.openScope(envObject);
|
|
5592
|
+
result >>>= 0;
|
|
5038
5593
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5039
5594
|
HEAP_DATA_VIEW.setUint32(result, scope.id, true);
|
|
5040
5595
|
return envObject.clearLastError();
|
|
@@ -5065,6 +5620,8 @@ function createNapiModule(options) {
|
|
|
5065
5620
|
return envObject.setLastError(1);
|
|
5066
5621
|
var scopeObject = emnapiCtx.scopeStore.get(scope);
|
|
5067
5622
|
if (!scopeObject.escapeCalled()) {
|
|
5623
|
+
escapee >>>= 0;
|
|
5624
|
+
result >>>= 0;
|
|
5068
5625
|
var newHandle = scopeObject.escape(escapee);
|
|
5069
5626
|
var value = newHandle ? newHandle.id : 0;
|
|
5070
5627
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
@@ -5089,6 +5646,7 @@ function createNapiModule(options) {
|
|
|
5089
5646
|
}
|
|
5090
5647
|
}
|
|
5091
5648
|
var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1);
|
|
5649
|
+
result >>>= 0;
|
|
5092
5650
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5093
5651
|
HEAP_DATA_VIEW.setUint32(result, ref.id, true);
|
|
5094
5652
|
return envObject.clearLastError();
|
|
@@ -5111,6 +5669,7 @@ function createNapiModule(options) {
|
|
|
5111
5669
|
return envObject.setLastError(1);
|
|
5112
5670
|
var count = emnapiCtx.refStore.get(ref).ref();
|
|
5113
5671
|
if (result) {
|
|
5672
|
+
result >>>= 0;
|
|
5114
5673
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5115
5674
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
5116
5675
|
}
|
|
@@ -5130,6 +5689,7 @@ function createNapiModule(options) {
|
|
|
5130
5689
|
}
|
|
5131
5690
|
var count = reference.unref();
|
|
5132
5691
|
if (result) {
|
|
5692
|
+
result >>>= 0;
|
|
5133
5693
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5134
5694
|
HEAP_DATA_VIEW.setUint32(result, count, true);
|
|
5135
5695
|
}
|
|
@@ -5146,6 +5706,7 @@ function createNapiModule(options) {
|
|
|
5146
5706
|
return envObject.setLastError(1);
|
|
5147
5707
|
var reference = emnapiCtx.refStore.get(ref);
|
|
5148
5708
|
var handleId = reference.get(envObject);
|
|
5709
|
+
result >>>= 0;
|
|
5149
5710
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5150
5711
|
HEAP_DATA_VIEW.setUint32(result, handleId, true);
|
|
5151
5712
|
return envObject.clearLastError();
|
|
@@ -5156,6 +5717,8 @@ function createNapiModule(options) {
|
|
|
5156
5717
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5157
5718
|
if (!fun)
|
|
5158
5719
|
return envObject.setLastError(1);
|
|
5720
|
+
fun >>>= 0;
|
|
5721
|
+
arg >>>= 0;
|
|
5159
5722
|
emnapiCtx.addCleanupHook(envObject, fun, arg);
|
|
5160
5723
|
return 0;
|
|
5161
5724
|
}
|
|
@@ -5165,6 +5728,8 @@ function createNapiModule(options) {
|
|
|
5165
5728
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5166
5729
|
if (!fun)
|
|
5167
5730
|
return envObject.setLastError(1);
|
|
5731
|
+
fun >>>= 0;
|
|
5732
|
+
arg >>>= 0;
|
|
5168
5733
|
emnapiCtx.removeCleanupHook(envObject, fun, arg);
|
|
5169
5734
|
return 0;
|
|
5170
5735
|
}
|
|
@@ -5225,8 +5790,10 @@ function createNapiModule(options) {
|
|
|
5225
5790
|
var p = new Promise(function (resolve, reject) {
|
|
5226
5791
|
var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
|
|
5227
5792
|
deferredObjectId = deferredObject.id;
|
|
5793
|
+
deferred >>>= 0;
|
|
5228
5794
|
HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
|
|
5229
5795
|
});
|
|
5796
|
+
promise >>>= 0;
|
|
5230
5797
|
value = emnapiCtx.addToCurrentScope(p).id;
|
|
5231
5798
|
HEAP_DATA_VIEW.setUint32(promise, value, true);
|
|
5232
5799
|
return envObject.getReturnStatus();
|
|
@@ -5294,6 +5861,7 @@ function createNapiModule(options) {
|
|
|
5294
5861
|
if (!is_promise)
|
|
5295
5862
|
return envObject.setLastError(1);
|
|
5296
5863
|
var h = emnapiCtx.handleStore.get(value);
|
|
5864
|
+
is_promise >>>= 0;
|
|
5297
5865
|
var r = h.isPromise() ? 1 : 0;
|
|
5298
5866
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5299
5867
|
HEAP_DATA_VIEW.setInt8(is_promise, r, true);
|
|
@@ -5437,6 +6005,7 @@ function createNapiModule(options) {
|
|
|
5437
6005
|
}
|
|
5438
6006
|
}
|
|
5439
6007
|
}
|
|
6008
|
+
result >>>= 0;
|
|
5440
6009
|
value = emnapiCtx.addToCurrentScope(ret).id;
|
|
5441
6010
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5442
6011
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5508,6 +6077,7 @@ function createNapiModule(options) {
|
|
|
5508
6077
|
catch (_) {
|
|
5509
6078
|
return envObject.setLastError(2);
|
|
5510
6079
|
}
|
|
6080
|
+
result >>>= 0;
|
|
5511
6081
|
r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
|
|
5512
6082
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5513
6083
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -5547,6 +6117,7 @@ function createNapiModule(options) {
|
|
|
5547
6117
|
catch (_) {
|
|
5548
6118
|
return envObject.setLastError(2);
|
|
5549
6119
|
}
|
|
6120
|
+
result >>>= 0;
|
|
5550
6121
|
value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
|
|
5551
6122
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5552
6123
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5590,6 +6161,7 @@ function createNapiModule(options) {
|
|
|
5590
6161
|
}
|
|
5591
6162
|
}
|
|
5592
6163
|
if (result) {
|
|
6164
|
+
result >>>= 0;
|
|
5593
6165
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5594
6166
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
5595
6167
|
}
|
|
@@ -5634,6 +6206,7 @@ function createNapiModule(options) {
|
|
|
5634
6206
|
return envObject.setLastError(4);
|
|
5635
6207
|
}
|
|
5636
6208
|
r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
|
|
6209
|
+
result >>>= 0;
|
|
5637
6210
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5638
6211
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
5639
6212
|
return envObject.getReturnStatus();
|
|
@@ -5665,6 +6238,7 @@ function createNapiModule(options) {
|
|
|
5665
6238
|
if (!cname) {
|
|
5666
6239
|
return envObject.setLastError(1);
|
|
5667
6240
|
}
|
|
6241
|
+
cname >>>= 0;
|
|
5668
6242
|
emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
|
|
5669
6243
|
return envObject.getReturnStatus();
|
|
5670
6244
|
}
|
|
@@ -5703,6 +6277,8 @@ function createNapiModule(options) {
|
|
|
5703
6277
|
catch (_) {
|
|
5704
6278
|
return envObject.setLastError(2);
|
|
5705
6279
|
}
|
|
6280
|
+
utf8name >>>= 0;
|
|
6281
|
+
result >>>= 0;
|
|
5706
6282
|
r = emnapiString.UTF8ToString(utf8name, -1) in v;
|
|
5707
6283
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5708
6284
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
@@ -5743,6 +6319,8 @@ function createNapiModule(options) {
|
|
|
5743
6319
|
catch (_) {
|
|
5744
6320
|
return envObject.setLastError(2);
|
|
5745
6321
|
}
|
|
6322
|
+
utf8name >>>= 0;
|
|
6323
|
+
result >>>= 0;
|
|
5746
6324
|
value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
|
|
5747
6325
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5748
6326
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5807,6 +6385,7 @@ function createNapiModule(options) {
|
|
|
5807
6385
|
catch (_) {
|
|
5808
6386
|
return envObject.setLastError(2);
|
|
5809
6387
|
}
|
|
6388
|
+
result >>>= 0;
|
|
5810
6389
|
r = ((index >>> 0) in v) ? 1 : 0;
|
|
5811
6390
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5812
6391
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -5844,6 +6423,7 @@ function createNapiModule(options) {
|
|
|
5844
6423
|
catch (_) {
|
|
5845
6424
|
return envObject.setLastError(2);
|
|
5846
6425
|
}
|
|
6426
|
+
result >>>= 0;
|
|
5847
6427
|
value = envObject.ensureHandleId(v[index >>> 0]);
|
|
5848
6428
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5849
6429
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -5884,6 +6464,7 @@ function createNapiModule(options) {
|
|
|
5884
6464
|
}
|
|
5885
6465
|
}
|
|
5886
6466
|
if (result) {
|
|
6467
|
+
result >>>= 0;
|
|
5887
6468
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5888
6469
|
HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
|
|
5889
6470
|
}
|
|
@@ -5906,6 +6487,8 @@ function createNapiModule(options) {
|
|
|
5906
6487
|
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
|
|
5907
6488
|
envObject.clearLastError();
|
|
5908
6489
|
try {
|
|
6490
|
+
properties >>>= 0;
|
|
6491
|
+
property_count >>>= 0;
|
|
5909
6492
|
property_count = property_count >>> 0;
|
|
5910
6493
|
if (property_count > 0) {
|
|
5911
6494
|
if (!properties)
|
|
@@ -5929,6 +6512,7 @@ function createNapiModule(options) {
|
|
|
5929
6512
|
var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
|
|
5930
6513
|
var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
|
|
5931
6514
|
attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
|
|
6515
|
+
attributes >>>= 0;
|
|
5932
6516
|
var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
|
|
5933
6517
|
if (utf8Name) {
|
|
5934
6518
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
@@ -6046,6 +6630,7 @@ function createNapiModule(options) {
|
|
|
6046
6630
|
}
|
|
6047
6631
|
var g = emnapiCtx.handleStore.get(5).value;
|
|
6048
6632
|
var ret = g.eval(v8Script.value);
|
|
6633
|
+
result >>>= 0;
|
|
6049
6634
|
value = envObject.ensureHandleId(ret);
|
|
6050
6635
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6051
6636
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
@@ -6071,6 +6656,7 @@ function createNapiModule(options) {
|
|
|
6071
6656
|
if (!result)
|
|
6072
6657
|
return envObject.setLastError(1);
|
|
6073
6658
|
var v = emnapiCtx.handleStore.get(value);
|
|
6659
|
+
result >>>= 0;
|
|
6074
6660
|
var r;
|
|
6075
6661
|
if (v.isNumber()) {
|
|
6076
6662
|
r = 3;
|
|
@@ -6126,6 +6712,7 @@ function createNapiModule(options) {
|
|
|
6126
6712
|
if (!result)
|
|
6127
6713
|
return envObject.setLastError(1);
|
|
6128
6714
|
var handle = emnapiCtx.handleStore.get(value);
|
|
6715
|
+
result >>>= 0;
|
|
6129
6716
|
v = handle.value ? 4 : 3;
|
|
6130
6717
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6131
6718
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6156,6 +6743,7 @@ function createNapiModule(options) {
|
|
|
6156
6743
|
if (handle.isBigInt()) {
|
|
6157
6744
|
throw new TypeError('Cannot convert a BigInt value to a number');
|
|
6158
6745
|
}
|
|
6746
|
+
result >>>= 0;
|
|
6159
6747
|
v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
|
|
6160
6748
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6161
6749
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6186,6 +6774,7 @@ function createNapiModule(options) {
|
|
|
6186
6774
|
if (handle.value == null) {
|
|
6187
6775
|
throw new TypeError('Cannot convert undefined or null to object');
|
|
6188
6776
|
}
|
|
6777
|
+
result >>>= 0;
|
|
6189
6778
|
v = envObject.ensureHandleId(Object(handle.value));
|
|
6190
6779
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6191
6780
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6216,6 +6805,7 @@ function createNapiModule(options) {
|
|
|
6216
6805
|
if (handle.isSymbol()) {
|
|
6217
6806
|
throw new TypeError('Cannot convert a Symbol value to a string');
|
|
6218
6807
|
}
|
|
6808
|
+
result >>>= 0;
|
|
6219
6809
|
v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
|
|
6220
6810
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6221
6811
|
HEAP_DATA_VIEW.setUint32(result, v, true);
|
|
@@ -6244,6 +6834,7 @@ function createNapiModule(options) {
|
|
|
6244
6834
|
return envObject.setLastError(1);
|
|
6245
6835
|
if (!constructor)
|
|
6246
6836
|
return envObject.setLastError(1);
|
|
6837
|
+
result >>>= 0;
|
|
6247
6838
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6248
6839
|
HEAP_DATA_VIEW.setInt8(result, 0, true);
|
|
6249
6840
|
var ctor = emnapiCtx.handleStore.get(constructor);
|
|
@@ -6271,6 +6862,7 @@ function createNapiModule(options) {
|
|
|
6271
6862
|
if (!result)
|
|
6272
6863
|
return envObject.setLastError(1);
|
|
6273
6864
|
var h = emnapiCtx.handleStore.get(value);
|
|
6865
|
+
result >>>= 0;
|
|
6274
6866
|
var r = h.isArray() ? 1 : 0;
|
|
6275
6867
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6276
6868
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6286,6 +6878,7 @@ function createNapiModule(options) {
|
|
|
6286
6878
|
if (!result)
|
|
6287
6879
|
return envObject.setLastError(1);
|
|
6288
6880
|
var h = emnapiCtx.handleStore.get(value);
|
|
6881
|
+
result >>>= 0;
|
|
6289
6882
|
var r = h.isArrayBuffer() ? 1 : 0;
|
|
6290
6883
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6291
6884
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6301,6 +6894,7 @@ function createNapiModule(options) {
|
|
|
6301
6894
|
if (!result)
|
|
6302
6895
|
return envObject.setLastError(1);
|
|
6303
6896
|
var h = emnapiCtx.handleStore.get(value);
|
|
6897
|
+
result >>>= 0;
|
|
6304
6898
|
var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
|
|
6305
6899
|
(Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
|
|
6306
6900
|
? 1
|
|
@@ -6319,6 +6913,7 @@ function createNapiModule(options) {
|
|
|
6319
6913
|
if (!result)
|
|
6320
6914
|
return envObject.setLastError(1);
|
|
6321
6915
|
var h = emnapiCtx.handleStore.get(value);
|
|
6916
|
+
result >>>= 0;
|
|
6322
6917
|
var r = h.isDate() ? 1 : 0;
|
|
6323
6918
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6324
6919
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6334,6 +6929,7 @@ function createNapiModule(options) {
|
|
|
6334
6929
|
if (!result)
|
|
6335
6930
|
return envObject.setLastError(1);
|
|
6336
6931
|
var val = emnapiCtx.handleStore.get(value).value;
|
|
6932
|
+
result >>>= 0;
|
|
6337
6933
|
var r = (val instanceof Error) ? 1 : 0;
|
|
6338
6934
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6339
6935
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6349,6 +6945,7 @@ function createNapiModule(options) {
|
|
|
6349
6945
|
if (!result)
|
|
6350
6946
|
return envObject.setLastError(1);
|
|
6351
6947
|
var h = emnapiCtx.handleStore.get(value);
|
|
6948
|
+
result >>>= 0;
|
|
6352
6949
|
var r = h.isTypedArray() ? 1 : 0;
|
|
6353
6950
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6354
6951
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6364,6 +6961,7 @@ function createNapiModule(options) {
|
|
|
6364
6961
|
if (!result)
|
|
6365
6962
|
return envObject.setLastError(1);
|
|
6366
6963
|
var h = emnapiCtx.handleStore.get(value);
|
|
6964
|
+
result >>>= 0;
|
|
6367
6965
|
var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
|
|
6368
6966
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6369
6967
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6379,6 +6977,7 @@ function createNapiModule(options) {
|
|
|
6379
6977
|
if (!result)
|
|
6380
6978
|
return envObject.setLastError(1);
|
|
6381
6979
|
var h = emnapiCtx.handleStore.get(value);
|
|
6980
|
+
result >>>= 0;
|
|
6382
6981
|
var r = h.isDataView() ? 1 : 0;
|
|
6383
6982
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6384
6983
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6404,6 +7003,7 @@ function createNapiModule(options) {
|
|
|
6404
7003
|
return envObject.setLastError(1);
|
|
6405
7004
|
var lv = emnapiCtx.handleStore.get(lhs).value;
|
|
6406
7005
|
var rv = emnapiCtx.handleStore.get(rhs).value;
|
|
7006
|
+
result >>>= 0;
|
|
6407
7007
|
r = (lv === rv) ? 1 : 0;
|
|
6408
7008
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6409
7009
|
HEAP_DATA_VIEW.setInt8(result, r, true);
|
|
@@ -6454,6 +7054,7 @@ function createNapiModule(options) {
|
|
|
6454
7054
|
if (!result)
|
|
6455
7055
|
return envObject.setLastError(1);
|
|
6456
7056
|
var h = emnapiCtx.handleStore.get(arraybuffer);
|
|
7057
|
+
result >>>= 0;
|
|
6457
7058
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6458
7059
|
if (h.isArrayBuffer() && h.value.byteLength === 0) {
|
|
6459
7060
|
try {
|
|
@@ -6768,12 +7369,7 @@ class MessageHandler extends wasiThreads.ThreadMessageHandler {
|
|
|
6768
7369
|
try {
|
|
6769
7370
|
if (type === 'async-worker-init') {
|
|
6770
7371
|
this.handleAfterLoad(e, () => {
|
|
6771
|
-
this.napiModule.initWorker(payload.arg);
|
|
6772
|
-
});
|
|
6773
|
-
}
|
|
6774
|
-
else if (type === 'async-work-execute') {
|
|
6775
|
-
this.handleAfterLoad(e, () => {
|
|
6776
|
-
this.napiModule.executeAsyncWork(payload.work);
|
|
7372
|
+
this.napiModule.initWorker(payload.arg, payload.func);
|
|
6777
7373
|
});
|
|
6778
7374
|
}
|
|
6779
7375
|
}
|
|
@@ -6784,7 +7380,7 @@ class MessageHandler extends wasiThreads.ThreadMessageHandler {
|
|
|
6784
7380
|
}
|
|
6785
7381
|
}
|
|
6786
7382
|
|
|
6787
|
-
const version = "1.
|
|
7383
|
+
const version = "1.10.0";
|
|
6788
7384
|
|
|
6789
7385
|
exports.MessageHandler = MessageHandler;
|
|
6790
7386
|
exports.createNapiModule = createNapiModule;
|