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