@tailwindcss/oxide-wasm32-wasi 0.0.0-insiders.df96ea5 → 0.0.0-insiders.dfddfcd
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/README.md +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.js +1717 -772
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts +13 -4
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.d.mts +13 -4
- package/node_modules/@emnapi/core/dist/emnapi-core.d.ts +13 -4
- package/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js +1922 -777
- package/node_modules/@emnapi/core/dist/emnapi-core.js +2003 -828
- package/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts +13 -4
- 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 +1717 -772
- package/node_modules/@emnapi/core/package.json +2 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.js +53 -9
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.d.ts +11 -3
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.d.mts +11 -3
- package/node_modules/@emnapi/runtime/dist/emnapi.d.ts +11 -3
- package/node_modules/@emnapi/runtime/dist/emnapi.esm-bundler.js +56 -9
- package/node_modules/@emnapi/runtime/dist/emnapi.iife.d.ts +8 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.iife.js +56 -9
- package/node_modules/@emnapi/runtime/dist/emnapi.js +56 -9
- package/node_modules/@emnapi/runtime/dist/emnapi.min.d.mts +11 -3
- package/node_modules/@emnapi/runtime/dist/emnapi.min.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.min.mjs +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.mjs +53 -9
- package/node_modules/@emnapi/runtime/package.json +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.js +53 -35
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.d.ts +2 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.js +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.mts +2 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.ts +2 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js +65 -35
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.js +65 -35
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.d.mts +2 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.js +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.mjs +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.mjs +53 -35
- package/node_modules/@emnapi/wasi-threads/package.json +1 -1
- package/node_modules/@napi-rs/wasm-runtime/dist/emnapi-plugins.cjs +1826 -0
- package/node_modules/@napi-rs/wasm-runtime/dist/emnapi-plugins.js +1823 -0
- package/node_modules/@napi-rs/wasm-runtime/dist/fs-proxy.cjs +70 -13
- package/node_modules/@napi-rs/wasm-runtime/dist/fs.js +15937 -11396
- package/node_modules/@napi-rs/wasm-runtime/fs-proxy.js +70 -13
- package/node_modules/@napi-rs/wasm-runtime/package.json +16 -10
- package/node_modules/@napi-rs/wasm-runtime/runtime.cjs +26 -2
- package/node_modules/@napi-rs/wasm-runtime/runtime.js +32 -4
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm-bundler.js +224 -50
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm.js +224 -50
- package/node_modules/@tybys/wasm-util/dist/wasm-util.esm.min.js +1 -1
- package/node_modules/@tybys/wasm-util/dist/wasm-util.js +224 -50
- package/node_modules/@tybys/wasm-util/dist/wasm-util.min.js +1 -1
- package/node_modules/@tybys/wasm-util/lib/cjs/wasi/path.js +142 -0
- package/node_modules/@tybys/wasm-util/lib/cjs/wasi/preview1.js +84 -51
- package/node_modules/@tybys/wasm-util/lib/mjs/wasi/path.mjs +142 -0
- package/node_modules/@tybys/wasm-util/lib/mjs/wasi/preview1.mjs +82 -50
- package/node_modules/@tybys/wasm-util/package.json +1 -1
- package/package.json +8 -11
- package/tailwindcss-oxide.wasi-browser.js +1 -0
- package/tailwindcss-oxide.wasi.cjs +19 -7
- package/tailwindcss-oxide.wasm32-wasi.wasm +0 -0
- package/wasi-worker-browser.mjs +2 -0
- package/wasi-worker.mjs +16 -7
|
@@ -108,7 +108,6 @@ function createNapiModule(options) {
|
|
|
108
108
|
filename: '',
|
|
109
109
|
childThread: ENVIRONMENT_IS_PTHREAD,
|
|
110
110
|
initWorker: undefined,
|
|
111
|
-
executeAsyncWork: undefined,
|
|
112
111
|
waitThreadStart: waitThreadStart,
|
|
113
112
|
PThread: undefined,
|
|
114
113
|
init: function (options) {
|
|
@@ -120,10 +119,10 @@ function createNapiModule(options) {
|
|
|
120
119
|
if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
|
|
121
120
|
throw new TypeError('Invalid wasm instance');
|
|
122
121
|
wasmInstance = instance;
|
|
123
|
-
var exports
|
|
122
|
+
var exports = instance.exports;
|
|
124
123
|
var module = options.module;
|
|
125
|
-
var memory = options.memory || exports
|
|
126
|
-
var table = options.table || exports
|
|
124
|
+
var memory = options.memory || exports.memory;
|
|
125
|
+
var table = options.table || exports.__indirect_function_table;
|
|
127
126
|
if (!(module instanceof _WebAssembly.Module))
|
|
128
127
|
throw new TypeError('Invalid wasm module');
|
|
129
128
|
if (!(memory instanceof _WebAssembly.Memory))
|
|
@@ -132,12 +131,12 @@ function createNapiModule(options) {
|
|
|
132
131
|
throw new TypeError('Invalid wasm table');
|
|
133
132
|
wasmMemory = memory;
|
|
134
133
|
wasmTable = table;
|
|
135
|
-
if (typeof exports
|
|
134
|
+
if (typeof exports.malloc !== 'function')
|
|
136
135
|
throw new TypeError('malloc is not exported');
|
|
137
|
-
if (typeof exports
|
|
136
|
+
if (typeof exports.free !== 'function')
|
|
138
137
|
throw new TypeError('free is not exported');
|
|
139
|
-
_malloc = exports
|
|
140
|
-
_free = exports
|
|
138
|
+
_malloc = exports.malloc;
|
|
139
|
+
_free = exports.free;
|
|
141
140
|
if (!napiModule.childThread) {
|
|
142
141
|
var moduleApiVersion = 8;
|
|
143
142
|
var node_api_module_get_api_version_v1 = instance.exports.node_api_module_get_api_version_v1;
|
|
@@ -148,11 +147,11 @@ function createNapiModule(options) {
|
|
|
148
147
|
var scope_1 = emnapiCtx.openScope(envObject);
|
|
149
148
|
try {
|
|
150
149
|
envObject.callIntoModule(function (_envObject) {
|
|
151
|
-
var exports
|
|
152
|
-
var exportsHandle = scope_1.add(exports
|
|
150
|
+
var exports = napiModule.exports;
|
|
151
|
+
var exportsHandle = scope_1.add(exports);
|
|
153
152
|
var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
|
|
154
153
|
var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
|
|
155
|
-
napiModule.exports = (!napiValue) ? exports
|
|
154
|
+
napiModule.exports = (!napiValue) ? exports : emnapiCtx.handleStore.get(napiValue).value;
|
|
156
155
|
});
|
|
157
156
|
}
|
|
158
157
|
catch (e) {
|
|
@@ -296,15 +295,18 @@ function createNapiModule(options) {
|
|
|
296
295
|
return envObject.clearLastError();
|
|
297
296
|
}
|
|
298
297
|
function _emnapi_get_node_version(major, minor, patch) {
|
|
298
|
+
major >>>= 0;
|
|
299
|
+
minor >>>= 0;
|
|
300
|
+
patch >>>= 0;
|
|
299
301
|
var versions = (typeof process === 'object' && process !== null &&
|
|
300
302
|
typeof process.versions === 'object' && process.versions !== null &&
|
|
301
303
|
typeof process.versions.node === 'string')
|
|
302
304
|
? process.versions.node.split('.').map(function (n) { return Number(n); })
|
|
303
305
|
: [0, 0, 0];
|
|
304
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
307
|
+
GET_HEAP_DATA_VIEW().setUint32(major, versions[0], true);
|
|
308
|
+
GET_HEAP_DATA_VIEW().setUint32(minor, versions[1], true);
|
|
309
|
+
GET_HEAP_DATA_VIEW().setUint32(patch, versions[2], true);
|
|
308
310
|
}
|
|
309
311
|
function _emnapi_runtime_keepalive_push() {
|
|
310
312
|
}
|
|
@@ -339,6 +341,7 @@ function createNapiModule(options) {
|
|
|
339
341
|
}
|
|
340
342
|
function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
|
|
341
343
|
var envObject = emnapiCtx.envStore.get(env);
|
|
344
|
+
callback >>>= 0;
|
|
342
345
|
envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
|
|
343
346
|
}
|
|
344
347
|
function _emnapi_ctx_increase_waiting_request_counter() {
|
|
@@ -365,9 +368,9 @@ function createNapiModule(options) {
|
|
|
365
368
|
numberValue >>> 0,
|
|
366
369
|
(tempDouble = numberValue, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)
|
|
367
370
|
];
|
|
368
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
369
|
-
|
|
370
|
-
|
|
371
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
372
|
+
GET_HEAP_DATA_VIEW().setInt32(result, tempI64[0], true);
|
|
373
|
+
GET_HEAP_DATA_VIEW().setInt32(result + 4, tempI64[1], true);
|
|
371
374
|
}
|
|
372
375
|
function _emnapi_open_handle_scope() {
|
|
373
376
|
return emnapiCtx.openScope().id;
|
|
@@ -403,9 +406,19 @@ function createNapiModule(options) {
|
|
|
403
406
|
var worker = PThread.pthreads[tid];
|
|
404
407
|
return worker;
|
|
405
408
|
}
|
|
409
|
+
function _emnapi_worker_ref(pthreadPtr) {
|
|
410
|
+
if (ENVIRONMENT_IS_PTHREAD)
|
|
411
|
+
return;
|
|
412
|
+
pthreadPtr >>>= 0;
|
|
413
|
+
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
414
|
+
if (worker && typeof worker.ref === 'function') {
|
|
415
|
+
worker.ref();
|
|
416
|
+
}
|
|
417
|
+
}
|
|
406
418
|
function _emnapi_worker_unref(pthreadPtr) {
|
|
407
419
|
if (ENVIRONMENT_IS_PTHREAD)
|
|
408
420
|
return;
|
|
421
|
+
pthreadPtr >>>= 0;
|
|
409
422
|
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
410
423
|
if (worker && typeof worker.unref === 'function') {
|
|
411
424
|
worker.unref();
|
|
@@ -455,9 +468,9 @@ function createNapiModule(options) {
|
|
|
455
468
|
}
|
|
456
469
|
function _emnapi_tell_js_uvthreadpool(threads, size) {
|
|
457
470
|
var p = [];
|
|
458
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
471
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
459
472
|
var _loop_1 = function (i) {
|
|
460
|
-
var pthreadPtr =
|
|
473
|
+
var pthreadPtr = GET_HEAP_DATA_VIEW().getUint32(threads + i * 4, true);
|
|
461
474
|
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
|
|
462
475
|
p.push(new Promise(function (resolve) {
|
|
463
476
|
var handler = function (e) {
|
|
@@ -506,6 +519,7 @@ function createNapiModule(options) {
|
|
|
506
519
|
_emnapi_async_send_js: _emnapi_async_send_js,
|
|
507
520
|
_emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
|
|
508
521
|
_emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
|
|
522
|
+
_emnapi_worker_ref: _emnapi_worker_ref,
|
|
509
523
|
_emnapi_worker_unref: _emnapi_worker_unref
|
|
510
524
|
});
|
|
511
525
|
function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
|
|
@@ -514,22 +528,14 @@ function createNapiModule(options) {
|
|
|
514
528
|
var envObject = emnapiCtx.envStore.get(env);
|
|
515
529
|
if (!adjusted_value)
|
|
516
530
|
return envObject.setLastError(1);
|
|
517
|
-
var
|
|
518
|
-
|
|
519
|
-
return envObject.setLastError(1);
|
|
520
|
-
}
|
|
521
|
-
var old_size = wasmMemory.buffer.byteLength;
|
|
522
|
-
var new_size = old_size + change_in_bytes_number;
|
|
523
|
-
new_size = new_size + ((65536 - new_size % 65536) % 65536);
|
|
524
|
-
if (wasmMemory.grow((new_size - old_size + 65535) >> 16) === -1) {
|
|
525
|
-
return envObject.setLastError(9);
|
|
526
|
-
}
|
|
531
|
+
var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
|
|
532
|
+
adjusted_value >>>= 0;
|
|
527
533
|
if (emnapiCtx.feature.supportBigInt) {
|
|
528
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
529
|
-
|
|
534
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
535
|
+
GET_HEAP_DATA_VIEW().setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
|
|
530
536
|
}
|
|
531
537
|
else {
|
|
532
|
-
$emnapiSetValueI64(adjusted_value,
|
|
538
|
+
$emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
|
|
533
539
|
}
|
|
534
540
|
return envObject.clearLastError();
|
|
535
541
|
}
|
|
@@ -687,9 +693,10 @@ function createNapiModule(options) {
|
|
|
687
693
|
var asyncId = asyncContext.asyncId;
|
|
688
694
|
var triggerAsyncId = asyncContext.triggerAsyncId;
|
|
689
695
|
if (result) {
|
|
690
|
-
|
|
691
|
-
HEAP_DATA_VIEW.
|
|
692
|
-
|
|
696
|
+
result >>>= 0;
|
|
697
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
698
|
+
GET_HEAP_DATA_VIEW().setFloat64(result, asyncId, true);
|
|
699
|
+
GET_HEAP_DATA_VIEW().setFloat64(result + 8, triggerAsyncId, true);
|
|
693
700
|
}
|
|
694
701
|
}
|
|
695
702
|
function _emnapi_node_emit_async_destroy(async_id, trigger_async_id) {
|
|
@@ -707,11 +714,13 @@ function createNapiModule(options) {
|
|
|
707
714
|
return;
|
|
708
715
|
var resource = emnapiCtx.handleStore.get(async_resource).value;
|
|
709
716
|
var callback = emnapiCtx.handleStore.get(cb).value;
|
|
717
|
+
argv >>>= 0;
|
|
718
|
+
size >>>= 0;
|
|
710
719
|
size = size >>> 0;
|
|
711
720
|
var arr = Array(size);
|
|
712
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
721
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
713
722
|
for (; i < size; i++) {
|
|
714
|
-
var argVal =
|
|
723
|
+
var argVal = GET_HEAP_DATA_VIEW().getUint32(argv + i * 4, true);
|
|
715
724
|
arr[i] = emnapiCtx.handleStore.get(argVal).value;
|
|
716
725
|
}
|
|
717
726
|
var ret = emnapiNodeBinding.node.makeCallback(resource, callback, arr, {
|
|
@@ -719,9 +728,10 @@ function createNapiModule(options) {
|
|
|
719
728
|
triggerAsyncId: trigger_async_id
|
|
720
729
|
});
|
|
721
730
|
if (result) {
|
|
731
|
+
result >>>= 0;
|
|
722
732
|
var envObject = emnapiCtx.envStore.get(env);
|
|
723
733
|
v = envObject.ensureHandleId(ret);
|
|
724
|
-
|
|
734
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
725
735
|
}
|
|
726
736
|
}
|
|
727
737
|
function _emnapi_async_init_js(async_resource, async_resource_name, result) {
|
|
@@ -745,18 +755,20 @@ function createNapiModule(options) {
|
|
|
745
755
|
}
|
|
746
756
|
var low = Number(numberValue & BigInt(0xffffffff));
|
|
747
757
|
var high = Number(numberValue >> BigInt(32));
|
|
748
|
-
|
|
749
|
-
HEAP_DATA_VIEW.
|
|
750
|
-
|
|
758
|
+
result >>>= 0;
|
|
759
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
760
|
+
GET_HEAP_DATA_VIEW().setInt32(result, low, true);
|
|
761
|
+
GET_HEAP_DATA_VIEW().setInt32(result + 4, high, true);
|
|
751
762
|
return 0;
|
|
752
763
|
}
|
|
753
764
|
function _emnapi_async_destroy_js(async_context) {
|
|
754
765
|
if (!emnapiNodeBinding) {
|
|
755
766
|
return 9;
|
|
756
767
|
}
|
|
757
|
-
|
|
758
|
-
var
|
|
759
|
-
var
|
|
768
|
+
async_context >>>= 0;
|
|
769
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
770
|
+
var low = GET_HEAP_DATA_VIEW().getInt32(async_context, true);
|
|
771
|
+
var high = GET_HEAP_DATA_VIEW().getInt32(async_context + 4, true);
|
|
760
772
|
var pointer = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
|
|
761
773
|
var ret = emnapiNodeBinding.napi.asyncDestroy(pointer);
|
|
762
774
|
if (ret.status !== 0)
|
|
@@ -796,14 +808,17 @@ function createNapiModule(options) {
|
|
|
796
808
|
if (typeof v8func !== 'function') {
|
|
797
809
|
return envObject.setLastError(1);
|
|
798
810
|
}
|
|
799
|
-
|
|
800
|
-
var
|
|
801
|
-
var
|
|
811
|
+
async_context >>>= 0;
|
|
812
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
813
|
+
var low = GET_HEAP_DATA_VIEW().getInt32(async_context, true);
|
|
814
|
+
var high = GET_HEAP_DATA_VIEW().getInt32(async_context + 4, true);
|
|
802
815
|
var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
|
|
816
|
+
argv >>>= 0;
|
|
817
|
+
argc >>>= 0;
|
|
803
818
|
argc = argc >>> 0;
|
|
804
819
|
var arr = Array(argc);
|
|
805
820
|
for (; i < argc; i++) {
|
|
806
|
-
var argVal =
|
|
821
|
+
var argVal = GET_HEAP_DATA_VIEW().getUint32(argv + i * 4, true);
|
|
807
822
|
arr[i] = emnapiCtx.handleStore.get(argVal).value;
|
|
808
823
|
}
|
|
809
824
|
var ret = emnapiNodeBinding.napi.makeCallback(ctx, v8recv, v8func, arr);
|
|
@@ -813,8 +828,9 @@ function createNapiModule(options) {
|
|
|
813
828
|
if (ret.status !== 0)
|
|
814
829
|
return envObject.setLastError(ret.status);
|
|
815
830
|
if (result) {
|
|
831
|
+
result >>>= 0;
|
|
816
832
|
v = envObject.ensureHandleId(ret.value);
|
|
817
|
-
|
|
833
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
818
834
|
}
|
|
819
835
|
return envObject.getReturnStatus();
|
|
820
836
|
}
|
|
@@ -840,32 +856,61 @@ function createNapiModule(options) {
|
|
|
840
856
|
napi_open_callback_scope: napi_open_callback_scope
|
|
841
857
|
});
|
|
842
858
|
var emnapiTSFN = {
|
|
859
|
+
_liveSet: {},
|
|
843
860
|
offset: {
|
|
861
|
+
__size__: 0,
|
|
844
862
|
resource: 0,
|
|
845
|
-
async_id:
|
|
846
|
-
trigger_async_id:
|
|
847
|
-
queue_size:
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
863
|
+
async_id: 0,
|
|
864
|
+
trigger_async_id: 0,
|
|
865
|
+
queue_size: 0,
|
|
866
|
+
is_some: 0,
|
|
867
|
+
queue: 0,
|
|
868
|
+
async_pending: 0,
|
|
869
|
+
async_u_fd: 0,
|
|
870
|
+
thread_count: 0,
|
|
871
|
+
state: 0,
|
|
872
|
+
dispatch_state: 0,
|
|
873
|
+
context: 0,
|
|
874
|
+
max_queue_size: 0,
|
|
875
|
+
ref: 0,
|
|
876
|
+
env: 0,
|
|
877
|
+
finalize_data: 0,
|
|
878
|
+
finalize_cb: 0,
|
|
879
|
+
call_js_cb: 0,
|
|
880
|
+
handles_closing: 0,
|
|
881
|
+
async_ref: 0,
|
|
882
|
+
mutex: 0,
|
|
883
|
+
cond: 0
|
|
864
884
|
},
|
|
865
885
|
init: function () {
|
|
886
|
+
emnapiTSFN._liveSet = new Set();
|
|
887
|
+
emnapiTSFN.offset.__size__ = 184;
|
|
888
|
+
emnapiTSFN.offset.resource = 0;
|
|
889
|
+
emnapiTSFN.offset.async_id = 8;
|
|
890
|
+
emnapiTSFN.offset.trigger_async_id = 16;
|
|
891
|
+
emnapiTSFN.offset.queue_size = 60;
|
|
892
|
+
emnapiTSFN.offset.is_some = 24;
|
|
893
|
+
emnapiTSFN.offset.queue = 64;
|
|
894
|
+
emnapiTSFN.offset.async_pending = 132;
|
|
895
|
+
emnapiTSFN.offset.async_u_fd = 96;
|
|
896
|
+
emnapiTSFN.offset.thread_count = 136;
|
|
897
|
+
emnapiTSFN.offset.state = 140;
|
|
898
|
+
emnapiTSFN.offset.dispatch_state = 144;
|
|
899
|
+
emnapiTSFN.offset.context = 148;
|
|
900
|
+
emnapiTSFN.offset.max_queue_size = 152;
|
|
901
|
+
emnapiTSFN.offset.ref = 156;
|
|
902
|
+
emnapiTSFN.offset.env = 160;
|
|
903
|
+
emnapiTSFN.offset.finalize_data = 164;
|
|
904
|
+
emnapiTSFN.offset.finalize_cb = 168;
|
|
905
|
+
emnapiTSFN.offset.call_js_cb = 172;
|
|
906
|
+
emnapiTSFN.offset.handles_closing = 176;
|
|
907
|
+
emnapiTSFN.offset.async_ref = 180;
|
|
908
|
+
emnapiTSFN.offset.mutex = 32;
|
|
909
|
+
emnapiTSFN.offset.cond = 56;
|
|
910
|
+
emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
|
|
866
911
|
if (typeof PThread !== 'undefined') {
|
|
867
912
|
PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
|
|
868
|
-
PThread.
|
|
913
|
+
Object.values(PThread.pthreads).forEach(emnapiTSFN.addListener);
|
|
869
914
|
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
870
915
|
PThread.getNewWorker = function () {
|
|
871
916
|
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
@@ -886,7 +931,10 @@ function createNapiModule(options) {
|
|
|
886
931
|
var type = __emnapi__.type;
|
|
887
932
|
var payload = __emnapi__.payload;
|
|
888
933
|
if (type === 'tsfn-send') {
|
|
889
|
-
emnapiTSFN.
|
|
934
|
+
var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
|
|
935
|
+
if (Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2) !== 0) {
|
|
936
|
+
emnapiTSFN.enqueue(payload.tsfn);
|
|
937
|
+
}
|
|
890
938
|
}
|
|
891
939
|
}
|
|
892
940
|
};
|
|
@@ -908,18 +956,33 @@ function createNapiModule(options) {
|
|
|
908
956
|
}
|
|
909
957
|
return true;
|
|
910
958
|
},
|
|
959
|
+
ensureBufferFor: function (end) {
|
|
960
|
+
var buffer = wasmMemory.buffer;
|
|
961
|
+
if (end > buffer.byteLength) {
|
|
962
|
+
wasmMemory.grow(0);
|
|
963
|
+
buffer = wasmMemory.buffer;
|
|
964
|
+
}
|
|
965
|
+
return buffer;
|
|
966
|
+
},
|
|
911
967
|
initQueue: function (func) {
|
|
912
968
|
var size = 2 * 4;
|
|
913
969
|
var queue = _malloc(size);
|
|
914
970
|
if (!queue)
|
|
915
971
|
return false;
|
|
916
|
-
|
|
972
|
+
queue >>>= 0;
|
|
973
|
+
new Uint8Array(emnapiTSFN.ensureBufferFor(queue + size), queue, size).fill(0);
|
|
917
974
|
emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
|
|
918
975
|
return true;
|
|
919
976
|
},
|
|
920
977
|
destroyQueue: function (func) {
|
|
921
978
|
var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
|
|
922
979
|
if (queue) {
|
|
980
|
+
var node = emnapiTSFN.loadSizeTypeValue(queue, false);
|
|
981
|
+
while (node !== 0) {
|
|
982
|
+
var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
|
|
983
|
+
_free(node);
|
|
984
|
+
node = next;
|
|
985
|
+
}
|
|
923
986
|
_free(queue);
|
|
924
987
|
}
|
|
925
988
|
},
|
|
@@ -931,6 +994,7 @@ function createNapiModule(options) {
|
|
|
931
994
|
var node = _malloc(size);
|
|
932
995
|
if (!node)
|
|
933
996
|
throw new Error('OOM');
|
|
997
|
+
node >>>= 0;
|
|
934
998
|
emnapiTSFN.storeSizeTypeValue(node, data, false);
|
|
935
999
|
emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
|
|
936
1000
|
if (head === 0 && tail === 0) {
|
|
@@ -966,11 +1030,11 @@ function createNapiModule(options) {
|
|
|
966
1030
|
var waitCondition = function () {
|
|
967
1031
|
var queueSize = emnapiTSFN.getQueueSize(func);
|
|
968
1032
|
var maxSize = emnapiTSFN.getMaxQueueSize(func);
|
|
969
|
-
|
|
970
|
-
return queueSize >= maxSize && maxSize > 0 && !isClosing;
|
|
1033
|
+
return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0;
|
|
971
1034
|
};
|
|
972
1035
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
973
|
-
|
|
1036
|
+
var shouldDelete = false;
|
|
1037
|
+
var ret = mutex.execute(function () {
|
|
974
1038
|
while (waitCondition()) {
|
|
975
1039
|
if (mode === 0) {
|
|
976
1040
|
return 15;
|
|
@@ -980,31 +1044,35 @@ function createNapiModule(options) {
|
|
|
980
1044
|
}
|
|
981
1045
|
cond.wait();
|
|
982
1046
|
}
|
|
983
|
-
if (emnapiTSFN.
|
|
984
|
-
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
985
|
-
return 1;
|
|
986
|
-
}
|
|
987
|
-
else {
|
|
988
|
-
emnapiTSFN.subThreadCount(func);
|
|
989
|
-
return 16;
|
|
990
|
-
}
|
|
991
|
-
}
|
|
992
|
-
else {
|
|
1047
|
+
if (emnapiTSFN.getState(func) === 0) {
|
|
993
1048
|
emnapiTSFN.pushQueue(func, data);
|
|
994
1049
|
emnapiTSFN.send(func);
|
|
995
1050
|
return 0;
|
|
996
1051
|
}
|
|
1052
|
+
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1053
|
+
return 1;
|
|
1054
|
+
}
|
|
1055
|
+
emnapiTSFN.subThreadCount(func);
|
|
1056
|
+
if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
1057
|
+
return 16;
|
|
1058
|
+
}
|
|
1059
|
+
shouldDelete = true;
|
|
1060
|
+
return 16;
|
|
997
1061
|
});
|
|
1062
|
+
if (shouldDelete) {
|
|
1063
|
+
emnapiTSFN.destroy(func);
|
|
1064
|
+
}
|
|
1065
|
+
return ret;
|
|
998
1066
|
},
|
|
999
1067
|
getMutex: function (func) {
|
|
1000
1068
|
var index = func + emnapiTSFN.offset.mutex;
|
|
1001
1069
|
var mutex = {
|
|
1002
1070
|
lock: function () {
|
|
1003
1071
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
1004
|
-
var i32a = new Int32Array(
|
|
1072
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1005
1073
|
if (isBrowserMain) {
|
|
1006
1074
|
while (true) {
|
|
1007
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1075
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1008
1076
|
if (oldValue === 0) {
|
|
1009
1077
|
return;
|
|
1010
1078
|
}
|
|
@@ -1012,18 +1080,18 @@ function createNapiModule(options) {
|
|
|
1012
1080
|
}
|
|
1013
1081
|
else {
|
|
1014
1082
|
while (true) {
|
|
1015
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
1083
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1016
1084
|
if (oldValue === 0) {
|
|
1017
1085
|
return;
|
|
1018
1086
|
}
|
|
1019
|
-
Atomics.wait(i32a, 0,
|
|
1087
|
+
Atomics.wait(i32a, 0, 10);
|
|
1020
1088
|
}
|
|
1021
1089
|
}
|
|
1022
1090
|
},
|
|
1023
1091
|
unlock: function () {
|
|
1024
|
-
var i32a = new Int32Array(
|
|
1025
|
-
var oldValue = Atomics.compareExchange(i32a, 0,
|
|
1026
|
-
if (oldValue !==
|
|
1092
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1093
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
1094
|
+
if (oldValue !== 10) {
|
|
1027
1095
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
1028
1096
|
}
|
|
1029
1097
|
Atomics.notify(i32a, 0, 1);
|
|
@@ -1045,14 +1113,14 @@ function createNapiModule(options) {
|
|
|
1045
1113
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1046
1114
|
var cond = {
|
|
1047
1115
|
wait: function () {
|
|
1048
|
-
var i32a = new Int32Array(
|
|
1116
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1049
1117
|
var value = Atomics.load(i32a, 0);
|
|
1050
1118
|
mutex.unlock();
|
|
1051
1119
|
Atomics.wait(i32a, 0, value);
|
|
1052
1120
|
mutex.lock();
|
|
1053
1121
|
},
|
|
1054
1122
|
signal: function () {
|
|
1055
|
-
var i32a = new Int32Array(
|
|
1123
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1056
1124
|
Atomics.add(i32a, 0, 1);
|
|
1057
1125
|
Atomics.notify(i32a, 0, 1);
|
|
1058
1126
|
}
|
|
@@ -1065,15 +1133,15 @@ function createNapiModule(options) {
|
|
|
1065
1133
|
addQueueSize: function (func) {
|
|
1066
1134
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1067
1135
|
var arr, index;
|
|
1068
|
-
arr = new Uint32Array(
|
|
1069
|
-
index = (func + offset)
|
|
1136
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1137
|
+
index = (func + offset) >>> 2;
|
|
1070
1138
|
Atomics.add(arr, index, 1);
|
|
1071
1139
|
},
|
|
1072
1140
|
subQueueSize: function (func) {
|
|
1073
1141
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1074
1142
|
var arr, index;
|
|
1075
|
-
arr = new Uint32Array(
|
|
1076
|
-
index = (func + offset)
|
|
1143
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1144
|
+
index = (func + offset) >>> 2;
|
|
1077
1145
|
Atomics.sub(arr, index, 1);
|
|
1078
1146
|
},
|
|
1079
1147
|
getThreadCount: function (func) {
|
|
@@ -1082,31 +1150,31 @@ function createNapiModule(options) {
|
|
|
1082
1150
|
addThreadCount: function (func) {
|
|
1083
1151
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1084
1152
|
var arr, index;
|
|
1085
|
-
arr = new Uint32Array(
|
|
1086
|
-
index = (func + offset)
|
|
1153
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1154
|
+
index = (func + offset) >>> 2;
|
|
1087
1155
|
Atomics.add(arr, index, 1);
|
|
1088
1156
|
},
|
|
1089
1157
|
subThreadCount: function (func) {
|
|
1090
1158
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1091
1159
|
var arr, index;
|
|
1092
|
-
arr = new Uint32Array(
|
|
1093
|
-
index = (func + offset)
|
|
1160
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1161
|
+
index = (func + offset) >>> 2;
|
|
1094
1162
|
Atomics.sub(arr, index, 1);
|
|
1095
1163
|
},
|
|
1096
|
-
|
|
1097
|
-
return Atomics.load(new Int32Array(
|
|
1164
|
+
getState: function (func) {
|
|
1165
|
+
return Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.state + 4)), (func + emnapiTSFN.offset.state) >>> 2);
|
|
1098
1166
|
},
|
|
1099
|
-
|
|
1100
|
-
Atomics.store(new Int32Array(
|
|
1167
|
+
setState: function (func, value) {
|
|
1168
|
+
Atomics.store(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.state + 4)), (func + emnapiTSFN.offset.state) >>> 2, value);
|
|
1101
1169
|
},
|
|
1102
1170
|
getHandlesClosing: function (func) {
|
|
1103
|
-
return Atomics.load(new
|
|
1171
|
+
return Atomics.load(new Int8Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.handles_closing + 1)), (func + emnapiTSFN.offset.handles_closing));
|
|
1104
1172
|
},
|
|
1105
1173
|
setHandlesClosing: function (func, value) {
|
|
1106
|
-
Atomics.store(new
|
|
1174
|
+
Atomics.store(new Int8Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.handles_closing + 1)), (func + emnapiTSFN.offset.handles_closing), value);
|
|
1107
1175
|
},
|
|
1108
1176
|
getDispatchState: function (func) {
|
|
1109
|
-
return Atomics.load(new Uint32Array(
|
|
1177
|
+
return Atomics.load(new Uint32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.dispatch_state + 4)), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
|
|
1110
1178
|
},
|
|
1111
1179
|
getContext: function (func) {
|
|
1112
1180
|
return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
|
|
@@ -1136,66 +1204,96 @@ function createNapiModule(options) {
|
|
|
1136
1204
|
var ret;
|
|
1137
1205
|
var arr;
|
|
1138
1206
|
if (unsigned) {
|
|
1139
|
-
arr = new Uint32Array(
|
|
1140
|
-
ret = Atomics.load(arr, offset
|
|
1207
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1208
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
1141
1209
|
return ret;
|
|
1142
1210
|
}
|
|
1143
1211
|
else {
|
|
1144
|
-
arr = new Int32Array(
|
|
1145
|
-
ret = Atomics.load(arr, offset
|
|
1212
|
+
arr = new Int32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1213
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
1146
1214
|
return ret;
|
|
1147
1215
|
}
|
|
1148
1216
|
},
|
|
1149
1217
|
storeSizeTypeValue: function (offset, value, unsigned) {
|
|
1150
1218
|
var arr;
|
|
1151
1219
|
if (unsigned) {
|
|
1152
|
-
arr = new Uint32Array(
|
|
1153
|
-
Atomics.store(arr, offset
|
|
1220
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1221
|
+
Atomics.store(arr, offset >>> 2, value);
|
|
1154
1222
|
return undefined;
|
|
1155
1223
|
}
|
|
1156
1224
|
else {
|
|
1157
|
-
arr = new Int32Array(
|
|
1158
|
-
Atomics.store(arr, offset
|
|
1225
|
+
arr = new Int32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1226
|
+
Atomics.store(arr, offset >>> 2, value >>> 0);
|
|
1159
1227
|
return undefined;
|
|
1160
1228
|
}
|
|
1161
1229
|
},
|
|
1230
|
+
releaseResources: function (func) {
|
|
1231
|
+
if (emnapiTSFN.getState(func) !== 2) {
|
|
1232
|
+
emnapiTSFN.setState(func, 2);
|
|
1233
|
+
var env = emnapiTSFN.getEnv(func);
|
|
1234
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1235
|
+
var ref = emnapiTSFN.getRef(func);
|
|
1236
|
+
if (ref) {
|
|
1237
|
+
emnapiCtx.refStore.get(ref).dispose();
|
|
1238
|
+
}
|
|
1239
|
+
var resource = emnapiTSFN.getResource(func);
|
|
1240
|
+
emnapiCtx.refStore.get(resource).dispose();
|
|
1241
|
+
emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.is_some + 1);
|
|
1242
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1243
|
+
GET_HEAP_DATA_VIEW().setInt8(func + emnapiTSFN.offset.is_some, 0, true);
|
|
1244
|
+
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
1245
|
+
envObject.unref();
|
|
1246
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1247
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1248
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1249
|
+
if (Atomics.load(arr, asyncRefOffset) > 0) {
|
|
1250
|
+
Atomics.store(arr, asyncRefOffset, 0);
|
|
1251
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1252
|
+
}
|
|
1253
|
+
if (emnapiNodeBinding) {
|
|
1254
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1255
|
+
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1256
|
+
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1257
|
+
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
},
|
|
1162
1261
|
destroy: function (func) {
|
|
1262
|
+
emnapiTSFN._liveSet.delete(func);
|
|
1163
1263
|
emnapiTSFN.destroyQueue(func);
|
|
1164
|
-
|
|
1165
|
-
var envObject = emnapiCtx.envStore.get(env);
|
|
1166
|
-
var ref = emnapiTSFN.getRef(func);
|
|
1167
|
-
if (ref) {
|
|
1168
|
-
emnapiCtx.refStore.get(ref).dispose();
|
|
1169
|
-
}
|
|
1170
|
-
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
1171
|
-
envObject.unref();
|
|
1172
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
1173
|
-
var arr = new Int32Array(wasmMemory.buffer);
|
|
1174
|
-
if (Atomics.load(arr, asyncRefOffset)) {
|
|
1175
|
-
Atomics.store(arr, asyncRefOffset, 0);
|
|
1176
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1177
|
-
}
|
|
1178
|
-
var resource = emnapiTSFN.getResource(func);
|
|
1179
|
-
emnapiCtx.refStore.get(resource).dispose();
|
|
1180
|
-
if (emnapiNodeBinding) {
|
|
1181
|
-
var view = new DataView(wasmMemory.buffer);
|
|
1182
|
-
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1183
|
-
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1184
|
-
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
1185
|
-
}
|
|
1264
|
+
emnapiTSFN.releaseResources(func);
|
|
1186
1265
|
_free(func);
|
|
1187
1266
|
},
|
|
1188
|
-
|
|
1267
|
+
emptyQueue: function (func) {
|
|
1268
|
+
var drainQueue = [];
|
|
1269
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
1270
|
+
while (emnapiTSFN.getQueueSize(func) > 0) {
|
|
1271
|
+
drainQueue.push(emnapiTSFN.shiftQueue(func));
|
|
1272
|
+
}
|
|
1273
|
+
});
|
|
1189
1274
|
var callJsCb = emnapiTSFN.getCallJSCb(func);
|
|
1190
1275
|
var context = emnapiTSFN.getContext(func);
|
|
1191
1276
|
var data;
|
|
1192
|
-
|
|
1193
|
-
data =
|
|
1277
|
+
for (var i = 0; i < drainQueue.length; i++) {
|
|
1278
|
+
data = drainQueue[i];
|
|
1194
1279
|
if (callJsCb) {
|
|
1195
1280
|
(wasmTable.get(callJsCb))(0, 0, context, data);
|
|
1196
1281
|
}
|
|
1197
1282
|
}
|
|
1198
|
-
|
|
1283
|
+
},
|
|
1284
|
+
maybeDelete: function (func) {
|
|
1285
|
+
var shouldDelete = false;
|
|
1286
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
1287
|
+
if (emnapiTSFN.getThreadCount(func) > 0) {
|
|
1288
|
+
emnapiTSFN.releaseResources(func);
|
|
1289
|
+
}
|
|
1290
|
+
else {
|
|
1291
|
+
shouldDelete = true;
|
|
1292
|
+
}
|
|
1293
|
+
});
|
|
1294
|
+
if (shouldDelete) {
|
|
1295
|
+
emnapiTSFN.destroy(func);
|
|
1296
|
+
}
|
|
1199
1297
|
},
|
|
1200
1298
|
finalize: function (func) {
|
|
1201
1299
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -1208,12 +1306,13 @@ function createNapiModule(options) {
|
|
|
1208
1306
|
envObject.callFinalizerInternal(0, finalize, data, context);
|
|
1209
1307
|
};
|
|
1210
1308
|
try {
|
|
1309
|
+
emnapiTSFN.emptyQueue(func);
|
|
1211
1310
|
if (finalize) {
|
|
1212
1311
|
if (emnapiNodeBinding) {
|
|
1213
1312
|
var resource = emnapiTSFN.getResource(func);
|
|
1214
1313
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
1215
1314
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
1216
|
-
var view = new DataView(
|
|
1315
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1217
1316
|
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1218
1317
|
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1219
1318
|
emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
|
|
@@ -1225,7 +1324,7 @@ function createNapiModule(options) {
|
|
|
1225
1324
|
f();
|
|
1226
1325
|
}
|
|
1227
1326
|
}
|
|
1228
|
-
emnapiTSFN.
|
|
1327
|
+
emnapiTSFN.maybeDelete(func);
|
|
1229
1328
|
}
|
|
1230
1329
|
finally {
|
|
1231
1330
|
emnapiCtx.closeScope(envObject);
|
|
@@ -1241,7 +1340,7 @@ function createNapiModule(options) {
|
|
|
1241
1340
|
try {
|
|
1242
1341
|
if (set_closing) {
|
|
1243
1342
|
emnapiTSFN.getMutex(func).execute(function () {
|
|
1244
|
-
emnapiTSFN.
|
|
1343
|
+
emnapiTSFN.setState(func, 1);
|
|
1245
1344
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1246
1345
|
emnapiTSFN.getCond(func).signal();
|
|
1247
1346
|
}
|
|
@@ -1251,6 +1350,7 @@ function createNapiModule(options) {
|
|
|
1251
1350
|
return;
|
|
1252
1351
|
}
|
|
1253
1352
|
emnapiTSFN.setHandlesClosing(func, 1);
|
|
1353
|
+
Atomics.store(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.async_pending + 4)), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
|
|
1254
1354
|
emnapiCtx.feature.setImmediate(function () {
|
|
1255
1355
|
emnapiTSFN.finalize(func);
|
|
1256
1356
|
});
|
|
@@ -1266,10 +1366,7 @@ function createNapiModule(options) {
|
|
|
1266
1366
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1267
1367
|
var cond = emnapiTSFN.getCond(func);
|
|
1268
1368
|
mutex.execute(function () {
|
|
1269
|
-
if (emnapiTSFN.
|
|
1270
|
-
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
1271
|
-
}
|
|
1272
|
-
else {
|
|
1369
|
+
if (emnapiTSFN.getState(func) === 0) {
|
|
1273
1370
|
var size = emnapiTSFN.getQueueSize(func);
|
|
1274
1371
|
if (size > 0) {
|
|
1275
1372
|
data = emnapiTSFN.shiftQueue(func);
|
|
@@ -1282,7 +1379,7 @@ function createNapiModule(options) {
|
|
|
1282
1379
|
}
|
|
1283
1380
|
if (size === 0) {
|
|
1284
1381
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1285
|
-
emnapiTSFN.
|
|
1382
|
+
emnapiTSFN.setState(func, 1);
|
|
1286
1383
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1287
1384
|
cond.signal();
|
|
1288
1385
|
}
|
|
@@ -1293,6 +1390,9 @@ function createNapiModule(options) {
|
|
|
1293
1390
|
has_more = true;
|
|
1294
1391
|
}
|
|
1295
1392
|
}
|
|
1393
|
+
else {
|
|
1394
|
+
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
1395
|
+
}
|
|
1296
1396
|
});
|
|
1297
1397
|
if (popped_value) {
|
|
1298
1398
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -1320,7 +1420,7 @@ function createNapiModule(options) {
|
|
|
1320
1420
|
var resource = emnapiTSFN.getResource(func);
|
|
1321
1421
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
1322
1422
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
1323
|
-
var view = new DataView(
|
|
1423
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1324
1424
|
emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
|
|
1325
1425
|
asyncId: view.getFloat64(func + emnapiTSFN.offset.async_id, true),
|
|
1326
1426
|
triggerAsyncId: view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true)
|
|
@@ -1339,12 +1439,21 @@ function createNapiModule(options) {
|
|
|
1339
1439
|
dispatch: function (func) {
|
|
1340
1440
|
var has_more = true;
|
|
1341
1441
|
var iterations_left = 1000;
|
|
1342
|
-
var
|
|
1343
|
-
var index =
|
|
1442
|
+
var dispatchStateAddress = func + emnapiTSFN.offset.dispatch_state;
|
|
1443
|
+
var index = dispatchStateAddress >>> 2;
|
|
1344
1444
|
while (has_more && --iterations_left !== 0) {
|
|
1345
|
-
Atomics.store(
|
|
1346
|
-
|
|
1347
|
-
|
|
1445
|
+
Atomics.store(new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4)), index, 1);
|
|
1446
|
+
try {
|
|
1447
|
+
has_more = emnapiTSFN.dispatchOne(func);
|
|
1448
|
+
}
|
|
1449
|
+
catch (err) {
|
|
1450
|
+
if (emnapiTSFN._liveSet.has(func)) {
|
|
1451
|
+
Atomics.exchange(new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4)), index, 0);
|
|
1452
|
+
emnapiTSFN.send(func);
|
|
1453
|
+
}
|
|
1454
|
+
throw err;
|
|
1455
|
+
}
|
|
1456
|
+
if (Atomics.exchange(new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4)), index, 0) !== 1) {
|
|
1348
1457
|
has_more = true;
|
|
1349
1458
|
}
|
|
1350
1459
|
}
|
|
@@ -1352,25 +1461,67 @@ function createNapiModule(options) {
|
|
|
1352
1461
|
emnapiTSFN.send(func);
|
|
1353
1462
|
}
|
|
1354
1463
|
},
|
|
1355
|
-
|
|
1356
|
-
var
|
|
1357
|
-
|
|
1464
|
+
enqueue: function (func) {
|
|
1465
|
+
var pending = func + emnapiTSFN.offset.async_pending;
|
|
1466
|
+
var scheduled = func + emnapiTSFN.offset.async_u_fd;
|
|
1467
|
+
var end = Math.max(pending, scheduled) + 4;
|
|
1468
|
+
var state = function () { return new Int32Array(emnapiTSFN.ensureBufferFor(end)); };
|
|
1469
|
+
if (Atomics.exchange(state(), scheduled >>> 2, 1) !== 0) {
|
|
1358
1470
|
return;
|
|
1359
1471
|
}
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1472
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1473
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
1474
|
+
return;
|
|
1475
|
+
}
|
|
1476
|
+
if (Atomics.load(state(), pending >>> 2) === 0) {
|
|
1477
|
+
Atomics.store(state(), scheduled >>> 2, 0);
|
|
1478
|
+
return;
|
|
1479
|
+
}
|
|
1480
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
1481
|
+
if (!emnapiTSFN._liveSet.has(func)) {
|
|
1482
|
+
return;
|
|
1483
|
+
}
|
|
1484
|
+
try {
|
|
1485
|
+
if (Atomics.exchange(state(), pending >>> 2, 0) === 0) {
|
|
1486
|
+
return;
|
|
1487
|
+
}
|
|
1488
|
+
emnapiTSFN.dispatch(func);
|
|
1489
|
+
}
|
|
1490
|
+
finally {
|
|
1491
|
+
if (emnapiTSFN._liveSet.has(func)) {
|
|
1492
|
+
Atomics.store(state(), scheduled >>> 2, 0);
|
|
1493
|
+
if (Atomics.load(state(), pending >>> 2) !== 0) {
|
|
1494
|
+
emnapiTSFN.enqueue(func);
|
|
1495
|
+
}
|
|
1366
1496
|
}
|
|
1367
1497
|
}
|
|
1368
1498
|
});
|
|
1499
|
+
});
|
|
1500
|
+
},
|
|
1501
|
+
send: function (func) {
|
|
1502
|
+
var dispatchStateAddress = func + emnapiTSFN.offset.dispatch_state;
|
|
1503
|
+
var current_state = Atomics.or(new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4)), dispatchStateAddress >>> 2, 1 << 1);
|
|
1504
|
+
if ((current_state & 1) === 1) {
|
|
1505
|
+
return;
|
|
1369
1506
|
}
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1507
|
+
var pendng = func + emnapiTSFN.offset.async_pending;
|
|
1508
|
+
if (Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2) !== 0) {
|
|
1509
|
+
return;
|
|
1510
|
+
}
|
|
1511
|
+
if (Atomics.exchange(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2, 1) === 0) {
|
|
1512
|
+
if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
|
|
1513
|
+
postMessage({
|
|
1514
|
+
__emnapi__: {
|
|
1515
|
+
type: 'tsfn-send',
|
|
1516
|
+
payload: {
|
|
1517
|
+
tsfn: func
|
|
1518
|
+
}
|
|
1519
|
+
}
|
|
1520
|
+
});
|
|
1521
|
+
}
|
|
1522
|
+
else {
|
|
1523
|
+
emnapiTSFN.enqueue(func);
|
|
1524
|
+
}
|
|
1374
1525
|
}
|
|
1375
1526
|
}
|
|
1376
1527
|
};
|
|
@@ -1381,6 +1532,13 @@ function createNapiModule(options) {
|
|
|
1381
1532
|
envObject.checkGCAccess();
|
|
1382
1533
|
if (!async_resource_name)
|
|
1383
1534
|
return envObject.setLastError(1);
|
|
1535
|
+
max_queue_size >>>= 0;
|
|
1536
|
+
initial_thread_count >>>= 0;
|
|
1537
|
+
env >>>= 0;
|
|
1538
|
+
thread_finalize_data >>>= 0;
|
|
1539
|
+
thread_finalize_cb >>>= 0;
|
|
1540
|
+
context >>>= 0;
|
|
1541
|
+
call_js_cb >>>= 0;
|
|
1384
1542
|
max_queue_size = max_queue_size >>> 0;
|
|
1385
1543
|
initial_thread_count = initial_thread_count >>> 0;
|
|
1386
1544
|
if (initial_thread_count === 0) {
|
|
@@ -1389,6 +1547,7 @@ function createNapiModule(options) {
|
|
|
1389
1547
|
if (!result)
|
|
1390
1548
|
return envObject.setLastError(1);
|
|
1391
1549
|
var ref = 0;
|
|
1550
|
+
func >>>= 0;
|
|
1392
1551
|
if (!func) {
|
|
1393
1552
|
if (!call_js_cb)
|
|
1394
1553
|
return envObject.setLastError(1);
|
|
@@ -1418,34 +1577,38 @@ function createNapiModule(options) {
|
|
|
1418
1577
|
}
|
|
1419
1578
|
asyncResourceName = String(asyncResourceName);
|
|
1420
1579
|
var resource_name = envObject.ensureHandleId(asyncResourceName);
|
|
1421
|
-
var sizeofTSFN = emnapiTSFN.offset.
|
|
1580
|
+
var sizeofTSFN = emnapiTSFN.offset.__size__;
|
|
1422
1581
|
var tsfn = _malloc(sizeofTSFN);
|
|
1423
1582
|
if (!tsfn)
|
|
1424
1583
|
return envObject.setLastError(9);
|
|
1425
|
-
|
|
1584
|
+
tsfn >>>= 0;
|
|
1585
|
+
new Uint8Array(emnapiTSFN.ensureBufferFor(tsfn + sizeofTSFN)).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
|
|
1426
1586
|
var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1);
|
|
1427
1587
|
var resource_ = resourceRef.id;
|
|
1428
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1429
|
-
|
|
1588
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1589
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
|
|
1430
1590
|
if (!emnapiTSFN.initQueue(tsfn)) {
|
|
1431
1591
|
_free(tsfn);
|
|
1432
1592
|
resourceRef.dispose();
|
|
1433
1593
|
return envObject.setLastError(9);
|
|
1434
1594
|
}
|
|
1435
1595
|
_emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1596
|
+
GET_HEAP_DATA_VIEW().setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
|
|
1597
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
|
|
1598
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.context, context, true);
|
|
1599
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
|
|
1600
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.ref, ref, true);
|
|
1601
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.env, env, true);
|
|
1602
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.finalize_data, thread_finalize_data, true);
|
|
1603
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
|
|
1604
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
|
|
1444
1605
|
emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
|
|
1606
|
+
emnapiTSFN._liveSet.add(tsfn);
|
|
1445
1607
|
envObject.ref();
|
|
1446
1608
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1447
|
-
|
|
1448
|
-
|
|
1609
|
+
GET_HEAP_DATA_VIEW().setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
|
|
1610
|
+
result >>>= 0;
|
|
1611
|
+
GET_HEAP_DATA_VIEW().setUint32(result, tsfn, true);
|
|
1449
1612
|
return envObject.clearLastError();
|
|
1450
1613
|
}
|
|
1451
1614
|
function napi_get_threadsafe_function_context(func, result) {
|
|
@@ -1453,9 +1616,11 @@ function createNapiModule(options) {
|
|
|
1453
1616
|
abort();
|
|
1454
1617
|
return 1;
|
|
1455
1618
|
}
|
|
1619
|
+
func >>>= 0;
|
|
1620
|
+
result >>>= 0;
|
|
1456
1621
|
var context = emnapiTSFN.getContext(func);
|
|
1457
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1458
|
-
|
|
1622
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1623
|
+
GET_HEAP_DATA_VIEW().setUint32(result, context, true);
|
|
1459
1624
|
return 0;
|
|
1460
1625
|
}
|
|
1461
1626
|
function napi_call_threadsafe_function(func, data, mode) {
|
|
@@ -1463,6 +1628,8 @@ function createNapiModule(options) {
|
|
|
1463
1628
|
abort();
|
|
1464
1629
|
return 1;
|
|
1465
1630
|
}
|
|
1631
|
+
func >>>= 0;
|
|
1632
|
+
data >>>= 0;
|
|
1466
1633
|
return emnapiTSFN.push(func, data, mode);
|
|
1467
1634
|
}
|
|
1468
1635
|
function napi_acquire_threadsafe_function(func) {
|
|
@@ -1470,13 +1637,14 @@ function createNapiModule(options) {
|
|
|
1470
1637
|
abort();
|
|
1471
1638
|
return 1;
|
|
1472
1639
|
}
|
|
1640
|
+
func >>>= 0;
|
|
1473
1641
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1474
1642
|
return mutex.execute(function () {
|
|
1475
|
-
if (emnapiTSFN.
|
|
1476
|
-
|
|
1643
|
+
if (emnapiTSFN.getState(func) === 0) {
|
|
1644
|
+
emnapiTSFN.addThreadCount(func);
|
|
1645
|
+
return 0;
|
|
1477
1646
|
}
|
|
1478
|
-
|
|
1479
|
-
return 0;
|
|
1647
|
+
return 16;
|
|
1480
1648
|
});
|
|
1481
1649
|
}
|
|
1482
1650
|
function napi_release_threadsafe_function(func, mode) {
|
|
@@ -1484,37 +1652,52 @@ function createNapiModule(options) {
|
|
|
1484
1652
|
abort();
|
|
1485
1653
|
return 1;
|
|
1486
1654
|
}
|
|
1655
|
+
func >>>= 0;
|
|
1487
1656
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1488
1657
|
var cond = emnapiTSFN.getCond(func);
|
|
1489
|
-
|
|
1658
|
+
var shouldDelete = false;
|
|
1659
|
+
var ret = mutex.execute(function () {
|
|
1490
1660
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
1491
1661
|
return 1;
|
|
1492
1662
|
}
|
|
1493
1663
|
emnapiTSFN.subThreadCount(func);
|
|
1494
1664
|
if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1) {
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
if (
|
|
1665
|
+
if (emnapiTSFN.getState(func) === 0) {
|
|
1666
|
+
if (mode === 1) {
|
|
1667
|
+
emnapiTSFN.setState(func, 1);
|
|
1668
|
+
}
|
|
1669
|
+
if (emnapiTSFN.getState(func) === 1 && emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
1500
1670
|
cond.signal();
|
|
1501
1671
|
}
|
|
1502
1672
|
emnapiTSFN.send(func);
|
|
1503
1673
|
}
|
|
1504
1674
|
}
|
|
1675
|
+
if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
1676
|
+
return 0;
|
|
1677
|
+
}
|
|
1678
|
+
shouldDelete = true;
|
|
1505
1679
|
return 0;
|
|
1506
1680
|
});
|
|
1681
|
+
if (shouldDelete) {
|
|
1682
|
+
emnapiTSFN.destroy(func);
|
|
1683
|
+
}
|
|
1684
|
+
return ret;
|
|
1507
1685
|
}
|
|
1508
1686
|
function napi_unref_threadsafe_function(env, func) {
|
|
1509
1687
|
if (!func) {
|
|
1510
1688
|
abort();
|
|
1511
1689
|
return 1;
|
|
1512
1690
|
}
|
|
1513
|
-
|
|
1514
|
-
var
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1691
|
+
func >>>= 0;
|
|
1692
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1693
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1694
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1695
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1696
|
+
if (currentValue > 0) {
|
|
1697
|
+
Atomics.store(arr, asyncRefOffset, currentValue - 1);
|
|
1698
|
+
if (currentValue === 1) {
|
|
1699
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1700
|
+
}
|
|
1518
1701
|
}
|
|
1519
1702
|
return 0;
|
|
1520
1703
|
}
|
|
@@ -1523,34 +1706,66 @@ function createNapiModule(options) {
|
|
|
1523
1706
|
abort();
|
|
1524
1707
|
return 1;
|
|
1525
1708
|
}
|
|
1526
|
-
|
|
1527
|
-
var
|
|
1528
|
-
|
|
1529
|
-
|
|
1709
|
+
func >>>= 0;
|
|
1710
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1711
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1712
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1713
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1714
|
+
if (!currentValue) {
|
|
1530
1715
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1531
1716
|
}
|
|
1717
|
+
Atomics.store(arr, asyncRefOffset, currentValue + 1);
|
|
1532
1718
|
return 0;
|
|
1533
1719
|
}
|
|
1534
1720
|
var emnapiAWMT = {
|
|
1535
|
-
|
|
1536
|
-
runningWorkers: [],
|
|
1537
|
-
workQueue: [],
|
|
1721
|
+
pool: [],
|
|
1538
1722
|
workerReady: null,
|
|
1723
|
+
globalAddress: 0,
|
|
1724
|
+
globalOffset: {
|
|
1725
|
+
idle_threads: 0,
|
|
1726
|
+
q: 1 * 4,
|
|
1727
|
+
next: 1 * 4,
|
|
1728
|
+
prev: 2 * 4,
|
|
1729
|
+
mutex: 3 * 4,
|
|
1730
|
+
cond: 4 * 4,
|
|
1731
|
+
exit_message: 5 * 4,
|
|
1732
|
+
end: 7 * 4
|
|
1733
|
+
},
|
|
1539
1734
|
offset: {
|
|
1540
1735
|
resource: 0,
|
|
1541
1736
|
async_id: 8,
|
|
1542
1737
|
trigger_async_id: 16,
|
|
1543
1738
|
env: 24,
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1739
|
+
status: 1 * 4 + 24,
|
|
1740
|
+
queue: 2 * 4 + 24,
|
|
1741
|
+
queue_next: 2 * 4 + 24,
|
|
1742
|
+
queue_prev: 3 * 4 + 24,
|
|
1743
|
+
data: 4 * 4 + 24,
|
|
1744
|
+
execute: 5 * 4 + 24,
|
|
1745
|
+
complete: 6 * 4 + 24,
|
|
1746
|
+
end: 7 * 4 + 24
|
|
1747
|
+
},
|
|
1748
|
+
ensureBufferFor: function (end) {
|
|
1749
|
+
var buffer = wasmMemory.buffer;
|
|
1750
|
+
if (end > buffer.byteLength) {
|
|
1751
|
+
wasmMemory.grow(0);
|
|
1752
|
+
buffer = wasmMemory.buffer;
|
|
1753
|
+
}
|
|
1754
|
+
return buffer;
|
|
1548
1755
|
},
|
|
1549
1756
|
init: function () {
|
|
1550
|
-
emnapiAWMT.
|
|
1551
|
-
emnapiAWMT.runningWorkers = [];
|
|
1552
|
-
emnapiAWMT.workQueue = [];
|
|
1757
|
+
emnapiAWMT.pool = [];
|
|
1553
1758
|
emnapiAWMT.workerReady = null;
|
|
1759
|
+
if (typeof PThread !== 'undefined') {
|
|
1760
|
+
PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
|
|
1761
|
+
Object.values(PThread.pthreads).forEach(emnapiAWMT.addListener);
|
|
1762
|
+
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
1763
|
+
PThread.getNewWorker = function () {
|
|
1764
|
+
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
1765
|
+
emnapiAWMT.addListener(r);
|
|
1766
|
+
return r;
|
|
1767
|
+
};
|
|
1768
|
+
}
|
|
1554
1769
|
},
|
|
1555
1770
|
addListener: function (worker) {
|
|
1556
1771
|
if (!worker)
|
|
@@ -1564,18 +1779,8 @@ function createNapiModule(options) {
|
|
|
1564
1779
|
var type = __emnapi__.type;
|
|
1565
1780
|
var payload = __emnapi__.payload;
|
|
1566
1781
|
if (type === 'async-work-complete') {
|
|
1567
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1568
|
-
emnapiAWMT.runningWorkers.splice(emnapiAWMT.runningWorkers.indexOf(worker), 1);
|
|
1569
|
-
emnapiAWMT.unusedWorkers.push(worker);
|
|
1570
|
-
emnapiAWMT.checkIdleWorker();
|
|
1571
1782
|
emnapiAWMT.callComplete(payload.work, 0);
|
|
1572
1783
|
}
|
|
1573
|
-
else if (type === 'async-work-queue') {
|
|
1574
|
-
emnapiAWMT.scheduleWork(payload.work);
|
|
1575
|
-
}
|
|
1576
|
-
else if (type === 'async-work-cancel') {
|
|
1577
|
-
emnapiAWMT.cancelWork(payload.work);
|
|
1578
|
-
}
|
|
1579
1784
|
}
|
|
1580
1785
|
};
|
|
1581
1786
|
var dispose = function () {
|
|
@@ -1596,142 +1801,233 @@ function createNapiModule(options) {
|
|
|
1596
1801
|
}
|
|
1597
1802
|
return true;
|
|
1598
1803
|
},
|
|
1804
|
+
initGlobal: function () {
|
|
1805
|
+
if (!emnapiAWMT.globalAddress) {
|
|
1806
|
+
emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
|
|
1807
|
+
emnapiAWMT.globalAddress >>>= 0;
|
|
1808
|
+
var size = emnapiAWMT.globalOffset.end;
|
|
1809
|
+
var addr = emnapiAWMT.globalAddress;
|
|
1810
|
+
new Uint8Array(emnapiAWMT.ensureBufferFor(addr + size), addr, size).fill(0);
|
|
1811
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
|
|
1812
|
+
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
|
|
1813
|
+
}
|
|
1814
|
+
},
|
|
1815
|
+
terminateWorkers: function () {
|
|
1816
|
+
emnapiAWMT.pool.forEach(function (w) {
|
|
1817
|
+
var _a, _b;
|
|
1818
|
+
(_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
1819
|
+
(_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
1820
|
+
w.terminate();
|
|
1821
|
+
});
|
|
1822
|
+
emnapiAWMT.pool.length = 0;
|
|
1823
|
+
},
|
|
1599
1824
|
initWorkers: function (n) {
|
|
1600
1825
|
if (ENVIRONMENT_IS_PTHREAD) {
|
|
1601
1826
|
return emnapiAWMT.workerReady || (emnapiAWMT.workerReady = Promise.resolve());
|
|
1602
1827
|
}
|
|
1603
1828
|
if (emnapiAWMT.workerReady)
|
|
1604
1829
|
return emnapiAWMT.workerReady;
|
|
1605
|
-
if (typeof onCreateWorker !== 'function') {
|
|
1606
|
-
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
1607
|
-
}
|
|
1608
|
-
var promises = [];
|
|
1609
|
-
var args = [];
|
|
1610
1830
|
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
1611
1831
|
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
1612
1832
|
}
|
|
1833
|
+
var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
|
|
1834
|
+
var args = [];
|
|
1835
|
+
emnapiAWMT.initGlobal();
|
|
1613
1836
|
for (var i = 0; i < n; ++i) {
|
|
1614
|
-
args.push(
|
|
1837
|
+
args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
|
|
1615
1838
|
}
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
var p = PThread.loadWasmModuleToWorker(worker);
|
|
1620
|
-
emnapiAWMT.addListener(worker);
|
|
1621
|
-
promises.push(p.then(function () {
|
|
1622
|
-
if (typeof worker.unref === 'function') {
|
|
1623
|
-
worker.unref();
|
|
1624
|
-
}
|
|
1625
|
-
}));
|
|
1626
|
-
emnapiAWMT.unusedWorkers.push(worker);
|
|
1627
|
-
var arg = args[i];
|
|
1628
|
-
worker.threadBlockBase = arg;
|
|
1629
|
-
worker.postMessage({
|
|
1630
|
-
__emnapi__: {
|
|
1631
|
-
type: 'async-worker-init',
|
|
1632
|
-
payload: { arg: arg }
|
|
1633
|
-
}
|
|
1634
|
-
});
|
|
1635
|
-
};
|
|
1636
|
-
for (var i = 0; i < n; ++i) {
|
|
1637
|
-
_loop_1(i);
|
|
1839
|
+
var promises = args.map(function (index) {
|
|
1840
|
+
if (index === 0) {
|
|
1841
|
+
return Promise.reject(new Error('Failed to create async worker'));
|
|
1638
1842
|
}
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1843
|
+
var worker;
|
|
1844
|
+
if (index < 0) {
|
|
1845
|
+
worker = emnapiAWMT.pool[-index - 1];
|
|
1846
|
+
if (worker)
|
|
1847
|
+
return worker.whenLoaded;
|
|
1644
1848
|
}
|
|
1645
|
-
|
|
1646
|
-
|
|
1849
|
+
index >>>= 0;
|
|
1850
|
+
var tidOffset = 20;
|
|
1851
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(index + tidOffset + 4));
|
|
1852
|
+
var tid = view.getInt32(index + tidOffset, true);
|
|
1853
|
+
worker = PThread.pthreads[tid];
|
|
1854
|
+
return worker.whenLoaded;
|
|
1855
|
+
});
|
|
1647
1856
|
emnapiAWMT.workerReady = Promise.all(promises);
|
|
1648
1857
|
return emnapiAWMT.workerReady;
|
|
1649
1858
|
},
|
|
1650
|
-
checkIdleWorker: function () {
|
|
1651
|
-
if (emnapiAWMT.unusedWorkers.length > 0 && emnapiAWMT.workQueue.length > 0) {
|
|
1652
|
-
var worker = emnapiAWMT.unusedWorkers.shift();
|
|
1653
|
-
var work = emnapiAWMT.workQueue.shift();
|
|
1654
|
-
emnapiAWMT.runningWorkers.push(worker);
|
|
1655
|
-
worker.postMessage({
|
|
1656
|
-
__emnapi__: {
|
|
1657
|
-
type: 'async-work-execute',
|
|
1658
|
-
payload: { work: work }
|
|
1659
|
-
}
|
|
1660
|
-
});
|
|
1661
|
-
}
|
|
1662
|
-
},
|
|
1663
1859
|
getResource: function (work) {
|
|
1664
|
-
|
|
1860
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.resource + 4);
|
|
1861
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1862
|
+
return GET_HEAP_DATA_VIEW().getUint32(work + emnapiAWMT.offset.resource, true);
|
|
1665
1863
|
},
|
|
1666
1864
|
getExecute: function (work) {
|
|
1667
|
-
|
|
1865
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.execute + 4);
|
|
1866
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1867
|
+
return GET_HEAP_DATA_VIEW().getUint32(work + emnapiAWMT.offset.execute, true);
|
|
1668
1868
|
},
|
|
1669
1869
|
getComplete: function (work) {
|
|
1670
|
-
|
|
1870
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.complete + 4);
|
|
1871
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1872
|
+
return GET_HEAP_DATA_VIEW().getUint32(work + emnapiAWMT.offset.complete, true);
|
|
1671
1873
|
},
|
|
1672
1874
|
getEnv: function (work) {
|
|
1673
|
-
|
|
1875
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.env + 4);
|
|
1876
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1877
|
+
return GET_HEAP_DATA_VIEW().getUint32(work + emnapiAWMT.offset.env, true);
|
|
1674
1878
|
},
|
|
1675
1879
|
getData: function (work) {
|
|
1676
|
-
|
|
1880
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.data + 4);
|
|
1881
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1882
|
+
return GET_HEAP_DATA_VIEW().getUint32(work + emnapiAWMT.offset.data, true);
|
|
1883
|
+
},
|
|
1884
|
+
getMutex: function () {
|
|
1885
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
|
|
1886
|
+
var mutex = {
|
|
1887
|
+
lock: function () {
|
|
1888
|
+
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
1889
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
1890
|
+
if (isBrowserMain) {
|
|
1891
|
+
while (true) {
|
|
1892
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1893
|
+
if (oldValue === 0) {
|
|
1894
|
+
return;
|
|
1895
|
+
}
|
|
1896
|
+
}
|
|
1897
|
+
}
|
|
1898
|
+
else {
|
|
1899
|
+
while (true) {
|
|
1900
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
1901
|
+
if (oldValue === 0) {
|
|
1902
|
+
return;
|
|
1903
|
+
}
|
|
1904
|
+
Atomics.wait(i32a, 0, 10);
|
|
1905
|
+
}
|
|
1906
|
+
}
|
|
1907
|
+
},
|
|
1908
|
+
unlock: function () {
|
|
1909
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
1910
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
1911
|
+
if (oldValue !== 10) {
|
|
1912
|
+
throw new Error('Tried to unlock while not holding the mutex');
|
|
1913
|
+
}
|
|
1914
|
+
Atomics.notify(i32a, 0, 1);
|
|
1915
|
+
},
|
|
1916
|
+
execute: function (fn) {
|
|
1917
|
+
mutex.lock();
|
|
1918
|
+
try {
|
|
1919
|
+
return fn();
|
|
1920
|
+
}
|
|
1921
|
+
finally {
|
|
1922
|
+
mutex.unlock();
|
|
1923
|
+
}
|
|
1924
|
+
}
|
|
1925
|
+
};
|
|
1926
|
+
return mutex;
|
|
1927
|
+
},
|
|
1928
|
+
getCond: function () {
|
|
1929
|
+
var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
|
|
1930
|
+
var mutex = emnapiAWMT.getMutex();
|
|
1931
|
+
var cond = {
|
|
1932
|
+
wait: function () {
|
|
1933
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
1934
|
+
var value = Atomics.load(i32a, 0);
|
|
1935
|
+
mutex.unlock();
|
|
1936
|
+
Atomics.wait(i32a, 0, value);
|
|
1937
|
+
mutex.lock();
|
|
1938
|
+
},
|
|
1939
|
+
signal: function () {
|
|
1940
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
1941
|
+
Atomics.add(i32a, 0, 1);
|
|
1942
|
+
Atomics.notify(i32a, 0, 1);
|
|
1943
|
+
}
|
|
1944
|
+
};
|
|
1945
|
+
return cond;
|
|
1946
|
+
},
|
|
1947
|
+
queueInit: function (q) {
|
|
1948
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
1949
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1950
|
+
GET_HEAP_DATA_VIEW().setUint32(q, q, true);
|
|
1951
|
+
GET_HEAP_DATA_VIEW().setUint32(q + 4, q, true);
|
|
1952
|
+
},
|
|
1953
|
+
queueInsertTail: function (h, q) {
|
|
1954
|
+
emnapiAWMT.ensureBufferFor(h + 4 + 4);
|
|
1955
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
1956
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1957
|
+
GET_HEAP_DATA_VIEW().setUint32(q, h, true);
|
|
1958
|
+
var tempValue = GET_HEAP_DATA_VIEW().getUint32(h + 4, true);
|
|
1959
|
+
GET_HEAP_DATA_VIEW().setUint32(q + 4, tempValue, true);
|
|
1960
|
+
var qprev = GET_HEAP_DATA_VIEW().getUint32(q + 4, true);
|
|
1961
|
+
GET_HEAP_DATA_VIEW().setUint32(qprev, q, true);
|
|
1962
|
+
GET_HEAP_DATA_VIEW().setUint32(h + 4, q, true);
|
|
1963
|
+
},
|
|
1964
|
+
queueRemove: function (q) {
|
|
1965
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
1966
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1967
|
+
var qprev = GET_HEAP_DATA_VIEW().getUint32(q + 4, true);
|
|
1968
|
+
var qnext = GET_HEAP_DATA_VIEW().getUint32(q, true);
|
|
1969
|
+
GET_HEAP_DATA_VIEW().setUint32(qprev, qnext, true);
|
|
1970
|
+
GET_HEAP_DATA_VIEW().setUint32(qnext + 4, qprev, true);
|
|
1971
|
+
},
|
|
1972
|
+
queueEmpty: function (q) {
|
|
1973
|
+
emnapiAWMT.ensureBufferFor(q + 4);
|
|
1974
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
1975
|
+
return q == GET_HEAP_DATA_VIEW().getUint32(q, true);
|
|
1677
1976
|
},
|
|
1678
1977
|
scheduleWork: function (work) {
|
|
1679
1978
|
var _a;
|
|
1680
|
-
if (
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
}
|
|
1979
|
+
if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
|
|
1980
|
+
emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
|
|
1981
|
+
emnapiAWMT.workerReady.ready = true;
|
|
1982
|
+
}).catch(function (err) {
|
|
1983
|
+
emnapiAWMT.workerReady = null;
|
|
1984
|
+
throw err;
|
|
1687
1985
|
});
|
|
1688
|
-
return;
|
|
1689
1986
|
}
|
|
1690
1987
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
1691
|
-
emnapiAWMT.
|
|
1692
|
-
|
|
1693
|
-
|
|
1988
|
+
var statusBuffer = new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1);
|
|
1989
|
+
Atomics.store(statusBuffer, 0, 0);
|
|
1990
|
+
var mutex = emnapiAWMT.getMutex();
|
|
1991
|
+
var cond = emnapiAWMT.getCond();
|
|
1992
|
+
mutex.lock();
|
|
1993
|
+
try {
|
|
1994
|
+
emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
|
|
1694
1995
|
}
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
};
|
|
1700
|
-
try {
|
|
1701
|
-
emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
|
|
1702
|
-
emnapiAWMT.workerReady.ready = true;
|
|
1703
|
-
emnapiAWMT.checkIdleWorker();
|
|
1704
|
-
}, fail);
|
|
1705
|
-
}
|
|
1706
|
-
catch (err) {
|
|
1707
|
-
fail(err);
|
|
1708
|
-
}
|
|
1996
|
+
catch (err) {
|
|
1997
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1998
|
+
mutex.unlock();
|
|
1999
|
+
throw err;
|
|
1709
2000
|
}
|
|
2001
|
+
emnapiAWMT.ensureBufferFor(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads + 4);
|
|
2002
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2003
|
+
if (GET_HEAP_DATA_VIEW().getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
|
|
2004
|
+
cond.signal();
|
|
2005
|
+
}
|
|
2006
|
+
mutex.unlock();
|
|
1710
2007
|
},
|
|
1711
2008
|
cancelWork: function (work) {
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
}
|
|
1720
|
-
|
|
2009
|
+
var cancelled = false;
|
|
2010
|
+
emnapiAWMT.getMutex().execute(function () {
|
|
2011
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4);
|
|
2012
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2013
|
+
cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && GET_HEAP_DATA_VIEW().getInt32(work + emnapiAWMT.offset.status, true) !== 2;
|
|
2014
|
+
if (cancelled) {
|
|
2015
|
+
emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
|
|
2016
|
+
}
|
|
2017
|
+
});
|
|
2018
|
+
if (!cancelled) {
|
|
2019
|
+
return 9;
|
|
1721
2020
|
}
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
emnapiAWMT.workQueue.splice(index, 1);
|
|
1725
|
-
emnapiCtx.feature.setImmediate(function () {
|
|
1726
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1727
|
-
emnapiAWMT.checkIdleWorker();
|
|
1728
|
-
emnapiAWMT.callComplete(work, 11);
|
|
1729
|
-
});
|
|
1730
|
-
return 0;
|
|
2021
|
+
if (Atomics.compareExchange(new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1), 0, 0, 1) !== 0) {
|
|
2022
|
+
return 9;
|
|
1731
2023
|
}
|
|
1732
|
-
|
|
2024
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
2025
|
+
emnapiAWMT.callComplete(work, 11);
|
|
2026
|
+
});
|
|
2027
|
+
return 0;
|
|
1733
2028
|
},
|
|
1734
2029
|
callComplete: function (work, status) {
|
|
2030
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1735
2031
|
var complete = emnapiAWMT.getComplete(work);
|
|
1736
2032
|
var env = emnapiAWMT.getEnv(work);
|
|
1737
2033
|
var data = emnapiAWMT.getData(work);
|
|
@@ -1749,7 +2045,7 @@ function createNapiModule(options) {
|
|
|
1749
2045
|
var resource = emnapiAWMT.getResource(work);
|
|
1750
2046
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
1751
2047
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
1752
|
-
var view = new DataView(
|
|
2048
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.trigger_async_id + 8));
|
|
1753
2049
|
var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
|
|
1754
2050
|
var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
|
|
1755
2051
|
emnapiNodeBinding.node.makeCallback(resourceObject, callback, [], {
|
|
@@ -1766,6 +2062,7 @@ function createNapiModule(options) {
|
|
|
1766
2062
|
}
|
|
1767
2063
|
}
|
|
1768
2064
|
};
|
|
2065
|
+
emnapiAWMT.init();
|
|
1769
2066
|
var napi_create_async_work = singleThreadAsyncWork
|
|
1770
2067
|
? function (env, resource, resource_name, execute, complete, data, result) {
|
|
1771
2068
|
if (!env)
|
|
@@ -1787,8 +2084,9 @@ function createNapiModule(options) {
|
|
|
1787
2084
|
return envObject.setLastError(1);
|
|
1788
2085
|
var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
|
|
1789
2086
|
var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
|
|
1790
|
-
|
|
1791
|
-
HEAP_DATA_VIEW.
|
|
2087
|
+
result >>>= 0;
|
|
2088
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2089
|
+
GET_HEAP_DATA_VIEW().setUint32(result, id, true);
|
|
1792
2090
|
return envObject.clearLastError();
|
|
1793
2091
|
}
|
|
1794
2092
|
: function (env, resource, resource_name, execute, complete, data, result) {
|
|
@@ -1813,18 +2111,21 @@ function createNapiModule(options) {
|
|
|
1813
2111
|
var aw = _malloc(sizeofAW);
|
|
1814
2112
|
if (!aw)
|
|
1815
2113
|
return envObject.setLastError(9);
|
|
1816
|
-
|
|
2114
|
+
aw >>>= 0;
|
|
2115
|
+
new Uint8Array(emnapiAWMT.ensureBufferFor(aw + sizeofAW)).subarray(aw, aw + sizeofAW).fill(0);
|
|
1817
2116
|
var s = envObject.ensureHandleId(resourceObject);
|
|
1818
2117
|
var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1);
|
|
1819
2118
|
var resource_ = resourceRef.id;
|
|
1820
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1821
|
-
|
|
2119
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2120
|
+
GET_HEAP_DATA_VIEW().setUint32(aw, resource_, true);
|
|
1822
2121
|
_emnapi_node_emit_async_init(s, resource_name, -1, aw + emnapiAWMT.offset.async_id);
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
2122
|
+
GET_HEAP_DATA_VIEW().setUint32(aw + emnapiAWMT.offset.env, env, true);
|
|
2123
|
+
GET_HEAP_DATA_VIEW().setUint32(aw + emnapiAWMT.offset.execute, execute, true);
|
|
2124
|
+
GET_HEAP_DATA_VIEW().setUint32(aw + emnapiAWMT.offset.complete, complete, true);
|
|
2125
|
+
GET_HEAP_DATA_VIEW().setUint32(aw + emnapiAWMT.offset.data, data, true);
|
|
2126
|
+
emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
|
|
2127
|
+
result >>>= 0;
|
|
2128
|
+
GET_HEAP_DATA_VIEW().setUint32(result, aw, true);
|
|
1828
2129
|
return envObject.clearLastError();
|
|
1829
2130
|
};
|
|
1830
2131
|
var napi_delete_async_work = singleThreadAsyncWork
|
|
@@ -1835,6 +2136,7 @@ function createNapiModule(options) {
|
|
|
1835
2136
|
envObject.checkGCAccess();
|
|
1836
2137
|
if (!work)
|
|
1837
2138
|
return envObject.setLastError(1);
|
|
2139
|
+
work >>>= 0;
|
|
1838
2140
|
emnapiAWST.remove(work);
|
|
1839
2141
|
return envObject.clearLastError();
|
|
1840
2142
|
}
|
|
@@ -1845,10 +2147,11 @@ function createNapiModule(options) {
|
|
|
1845
2147
|
envObject.checkGCAccess();
|
|
1846
2148
|
if (!work)
|
|
1847
2149
|
return envObject.setLastError(1);
|
|
2150
|
+
work >>>= 0;
|
|
1848
2151
|
var resource = emnapiAWMT.getResource(work);
|
|
1849
2152
|
emnapiCtx.refStore.get(resource).dispose();
|
|
1850
2153
|
if (emnapiNodeBinding) {
|
|
1851
|
-
var view = new DataView(
|
|
2154
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.trigger_async_id + 8));
|
|
1852
2155
|
var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
|
|
1853
2156
|
var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
|
|
1854
2157
|
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
@@ -1863,6 +2166,7 @@ function createNapiModule(options) {
|
|
|
1863
2166
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1864
2167
|
if (!work)
|
|
1865
2168
|
return envObject.setLastError(1);
|
|
2169
|
+
work >>>= 0;
|
|
1866
2170
|
emnapiAWST.queue(work);
|
|
1867
2171
|
return envObject.clearLastError();
|
|
1868
2172
|
}
|
|
@@ -1872,6 +2176,7 @@ function createNapiModule(options) {
|
|
|
1872
2176
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1873
2177
|
if (!work)
|
|
1874
2178
|
return envObject.setLastError(1);
|
|
2179
|
+
work >>>= 0;
|
|
1875
2180
|
emnapiAWMT.scheduleWork(work);
|
|
1876
2181
|
return envObject.clearLastError();
|
|
1877
2182
|
};
|
|
@@ -1882,6 +2187,7 @@ function createNapiModule(options) {
|
|
|
1882
2187
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1883
2188
|
if (!work)
|
|
1884
2189
|
return envObject.setLastError(1);
|
|
2190
|
+
work >>>= 0;
|
|
1885
2191
|
var status = emnapiAWST.cancel(work);
|
|
1886
2192
|
if (status === 0)
|
|
1887
2193
|
return envObject.clearLastError();
|
|
@@ -1893,41 +2199,125 @@ function createNapiModule(options) {
|
|
|
1893
2199
|
var envObject = emnapiCtx.envStore.get(env);
|
|
1894
2200
|
if (!work)
|
|
1895
2201
|
return envObject.setLastError(1);
|
|
2202
|
+
work >>>= 0;
|
|
1896
2203
|
var status = emnapiAWMT.cancelWork(work);
|
|
1897
2204
|
if (status === 0)
|
|
1898
2205
|
return envObject.clearLastError();
|
|
1899
2206
|
return envObject.setLastError(status);
|
|
1900
2207
|
};
|
|
1901
|
-
function
|
|
2208
|
+
function _emnapi_async_worker(globalAddress) {
|
|
2209
|
+
globalAddress >>>= 0;
|
|
2210
|
+
emnapiAWMT.globalAddress = globalAddress;
|
|
2211
|
+
var mutex = emnapiAWMT.getMutex();
|
|
2212
|
+
var cond = emnapiAWMT.getCond();
|
|
2213
|
+
mutex.lock();
|
|
2214
|
+
var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
|
|
2215
|
+
var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
|
|
2216
|
+
var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
|
|
2217
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2218
|
+
for (;;) {
|
|
2219
|
+
emnapiAWMT.ensureBufferFor(workerQueueAddr + 4);
|
|
2220
|
+
while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
|
|
2221
|
+
Atomics.add(new Int32Array(emnapiAWMT.ensureBufferFor(idleThreadsAddr + 4), idleThreadsAddr, 1), 0, 1);
|
|
2222
|
+
cond.wait();
|
|
2223
|
+
Atomics.sub(new Int32Array(emnapiAWMT.ensureBufferFor(idleThreadsAddr + 4), idleThreadsAddr, 1), 0, 1);
|
|
2224
|
+
}
|
|
2225
|
+
var q = GET_HEAP_DATA_VIEW().getUint32(workerQueueAddr, true);
|
|
2226
|
+
if (q === exitMessageAddr) {
|
|
2227
|
+
cond.signal();
|
|
2228
|
+
mutex.unlock();
|
|
2229
|
+
break;
|
|
2230
|
+
}
|
|
2231
|
+
var work = q - emnapiAWMT.offset.queue;
|
|
2232
|
+
emnapiAWMT.queueRemove(q);
|
|
2233
|
+
emnapiAWMT.queueInit(q);
|
|
2234
|
+
mutex.unlock();
|
|
2235
|
+
var statusBuffer = new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1);
|
|
2236
|
+
if (Atomics.load(statusBuffer, 0) === 1) {
|
|
2237
|
+
abort('unreachable');
|
|
2238
|
+
}
|
|
2239
|
+
var execute = emnapiAWMT.getExecute(work);
|
|
2240
|
+
var env = emnapiAWMT.getEnv(work);
|
|
2241
|
+
var data = emnapiAWMT.getData(work);
|
|
2242
|
+
(wasmTable.get(execute))(env, data);
|
|
2243
|
+
Atomics.store(statusBuffer, 0, 2);
|
|
2244
|
+
var postMessage_1 = napiModule.postMessage;
|
|
2245
|
+
postMessage_1({
|
|
2246
|
+
__emnapi__: {
|
|
2247
|
+
type: 'async-work-complete',
|
|
2248
|
+
payload: { work: work }
|
|
2249
|
+
}
|
|
2250
|
+
});
|
|
2251
|
+
mutex.lock();
|
|
2252
|
+
}
|
|
2253
|
+
return 0;
|
|
2254
|
+
}
|
|
2255
|
+
function _emnapi_spawn_worker(f, globalAddress) {
|
|
2256
|
+
if (typeof onCreateWorker !== 'function') {
|
|
2257
|
+
throw new TypeError('`options.onCreateWorker` is not a function');
|
|
2258
|
+
}
|
|
2259
|
+
var promises = [];
|
|
2260
|
+
var args = [];
|
|
2261
|
+
if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
|
|
2262
|
+
throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
|
|
2263
|
+
}
|
|
2264
|
+
args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
|
|
2265
|
+
var handleError = function (e) {
|
|
2266
|
+
if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
|
|
2267
|
+
emnapiAWMT.terminateWorkers();
|
|
2268
|
+
}
|
|
2269
|
+
};
|
|
2270
|
+
var ret;
|
|
2271
|
+
try {
|
|
2272
|
+
var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
|
|
2273
|
+
var p = PThread.loadWasmModuleToWorker(worker_1);
|
|
2274
|
+
if (ENVIRONMENT_IS_NODE) {
|
|
2275
|
+
worker_1.on('error', handleError);
|
|
2276
|
+
}
|
|
2277
|
+
else {
|
|
2278
|
+
worker_1.addEventListener('error', handleError, false);
|
|
2279
|
+
}
|
|
2280
|
+
emnapiAWMT.addListener(worker_1);
|
|
2281
|
+
emnapiTSFN.addListener(worker_1);
|
|
2282
|
+
promises.push(p.then(function () {
|
|
2283
|
+
if (typeof worker_1.unref === 'function') {
|
|
2284
|
+
worker_1.unref();
|
|
2285
|
+
}
|
|
2286
|
+
}));
|
|
2287
|
+
ret = emnapiAWMT.pool.push(worker_1) - 1;
|
|
2288
|
+
var arg = args[0];
|
|
2289
|
+
worker_1.threadBlockBase = arg;
|
|
2290
|
+
worker_1.postMessage({
|
|
2291
|
+
__emnapi__: {
|
|
2292
|
+
type: 'async-worker-init',
|
|
2293
|
+
payload: { arg: arg, func: [f, globalAddress] }
|
|
2294
|
+
}
|
|
2295
|
+
});
|
|
2296
|
+
}
|
|
2297
|
+
catch (err) {
|
|
2298
|
+
var arg = args[0];
|
|
2299
|
+
_free(arg);
|
|
2300
|
+
throw err;
|
|
2301
|
+
}
|
|
2302
|
+
return ret;
|
|
2303
|
+
}
|
|
2304
|
+
function initWorker(startArg, func) {
|
|
1902
2305
|
if (napiModule.childThread) {
|
|
1903
2306
|
if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
|
|
1904
2307
|
throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
|
|
1905
2308
|
}
|
|
1906
2309
|
wasmInstance.exports.emnapi_async_worker_init(startArg);
|
|
2310
|
+
(wasmTable.get(func[0]))(func[1]);
|
|
1907
2311
|
}
|
|
1908
2312
|
else {
|
|
1909
2313
|
throw new Error('startThread is only available in child threads');
|
|
1910
2314
|
}
|
|
1911
2315
|
}
|
|
1912
|
-
function executeAsyncWork(work) {
|
|
1913
|
-
if (!ENVIRONMENT_IS_PTHREAD)
|
|
1914
|
-
return;
|
|
1915
|
-
var execute = emnapiAWMT.getExecute(work);
|
|
1916
|
-
var env = emnapiAWMT.getEnv(work);
|
|
1917
|
-
var data = emnapiAWMT.getData(work);
|
|
1918
|
-
(wasmTable.get(execute))(env, data);
|
|
1919
|
-
var postMessage = napiModule.postMessage;
|
|
1920
|
-
postMessage({
|
|
1921
|
-
__emnapi__: {
|
|
1922
|
-
type: 'async-work-complete',
|
|
1923
|
-
payload: { work: work }
|
|
1924
|
-
}
|
|
1925
|
-
});
|
|
1926
|
-
}
|
|
1927
2316
|
napiModule.initWorker = initWorker;
|
|
1928
|
-
napiModule.executeAsyncWork = executeAsyncWork;
|
|
1929
2317
|
var asyncWorkMod = Object.freeze({
|
|
1930
2318
|
__proto__: null,
|
|
2319
|
+
_emnapi_async_worker: _emnapi_async_worker,
|
|
2320
|
+
_emnapi_spawn_worker: _emnapi_spawn_worker,
|
|
1931
2321
|
napi_cancel_async_work: napi_cancel_async_work,
|
|
1932
2322
|
napi_create_async_work: napi_create_async_work,
|
|
1933
2323
|
napi_delete_async_work: napi_delete_async_work,
|
|
@@ -1937,17 +2327,75 @@ function createNapiModule(options) {
|
|
|
1937
2327
|
registry: typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined,
|
|
1938
2328
|
table: new WeakMap(),
|
|
1939
2329
|
wasmMemoryViewTable: new WeakMap(),
|
|
2330
|
+
intrinsics: undefined,
|
|
1940
2331
|
init: function () {
|
|
2332
|
+
var _a;
|
|
1941
2333
|
emnapiExternalMemory.registry = typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined;
|
|
1942
2334
|
emnapiExternalMemory.table = new WeakMap();
|
|
1943
2335
|
emnapiExternalMemory.wasmMemoryViewTable = new WeakMap();
|
|
2336
|
+
var sharedArrayBufferByteLength = typeof SharedArrayBuffer === 'function'
|
|
2337
|
+
? (_a = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength')) === null || _a === void 0 ? void 0 : _a.get
|
|
2338
|
+
: undefined;
|
|
2339
|
+
emnapiExternalMemory.intrinsics = {
|
|
2340
|
+
isView: ArrayBuffer.isView,
|
|
2341
|
+
typedArray: {
|
|
2342
|
+
buffer: Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'buffer').get,
|
|
2343
|
+
byteOffset: Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'byteOffset').get,
|
|
2344
|
+
length: Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'length').get,
|
|
2345
|
+
tag: Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), Symbol.toStringTag).get
|
|
2346
|
+
},
|
|
2347
|
+
dataView: {
|
|
2348
|
+
buffer: Object.getOwnPropertyDescriptor(DataView.prototype, 'buffer').get,
|
|
2349
|
+
byteOffset: Object.getOwnPropertyDescriptor(DataView.prototype, 'byteOffset').get,
|
|
2350
|
+
byteLength: Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get
|
|
2351
|
+
},
|
|
2352
|
+
arrayBuffer: {
|
|
2353
|
+
byteLength: Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get
|
|
2354
|
+
},
|
|
2355
|
+
sharedArrayBuffer: sharedArrayBufferByteLength !== undefined
|
|
2356
|
+
? {
|
|
2357
|
+
byteLength: sharedArrayBufferByteLength
|
|
2358
|
+
}
|
|
2359
|
+
: undefined,
|
|
2360
|
+
ctors: {
|
|
2361
|
+
Int8Array: Int8Array,
|
|
2362
|
+
Uint8Array: Uint8Array,
|
|
2363
|
+
Uint8ClampedArray: Uint8ClampedArray,
|
|
2364
|
+
Int16Array: Int16Array,
|
|
2365
|
+
Uint16Array: Uint16Array,
|
|
2366
|
+
Int32Array: Int32Array,
|
|
2367
|
+
Uint32Array: Uint32Array,
|
|
2368
|
+
Float16Array: typeof Float16Array === 'function' ? Float16Array : undefined,
|
|
2369
|
+
Float32Array: Float32Array,
|
|
2370
|
+
Float64Array: Float64Array,
|
|
2371
|
+
BigInt64Array: BigInt64Array,
|
|
2372
|
+
BigUint64Array: BigUint64Array
|
|
2373
|
+
},
|
|
2374
|
+
bufferFrom: undefined
|
|
2375
|
+
};
|
|
1944
2376
|
},
|
|
1945
2377
|
isSharedArrayBuffer: function (value) {
|
|
1946
|
-
|
|
1947
|
-
|
|
2378
|
+
var sharedArrayBuffer = emnapiExternalMemory.intrinsics.sharedArrayBuffer;
|
|
2379
|
+
if (sharedArrayBuffer !== undefined) {
|
|
2380
|
+
if (typeof SharedArrayBuffer === 'function' && value instanceof SharedArrayBuffer)
|
|
2381
|
+
return true;
|
|
2382
|
+
try {
|
|
2383
|
+
sharedArrayBuffer.byteLength.call(value);
|
|
2384
|
+
return true;
|
|
2385
|
+
}
|
|
2386
|
+
catch (_) {
|
|
2387
|
+
return false;
|
|
2388
|
+
}
|
|
2389
|
+
}
|
|
2390
|
+
try {
|
|
2391
|
+
emnapiExternalMemory.intrinsics.arrayBuffer.byteLength.call(value);
|
|
2392
|
+
return false;
|
|
2393
|
+
}
|
|
2394
|
+
catch (_) { }
|
|
2395
|
+
return Object.prototype.toString.call(value) === '[object SharedArrayBuffer]';
|
|
1948
2396
|
},
|
|
1949
2397
|
isDetachedArrayBuffer: function (arrayBuffer) {
|
|
1950
|
-
if (arrayBuffer
|
|
2398
|
+
if (emnapiExternalMemory.bufferByteLength(arrayBuffer) === 0) {
|
|
1951
2399
|
try {
|
|
1952
2400
|
new Uint8Array(arrayBuffer);
|
|
1953
2401
|
}
|
|
@@ -1957,6 +2405,48 @@ function createNapiModule(options) {
|
|
|
1957
2405
|
}
|
|
1958
2406
|
return false;
|
|
1959
2407
|
},
|
|
2408
|
+
bufferByteLength: function (buffer) {
|
|
2409
|
+
var _a;
|
|
2410
|
+
var intrinsics = emnapiExternalMemory.intrinsics;
|
|
2411
|
+
try {
|
|
2412
|
+
return intrinsics.arrayBuffer.byteLength.call(buffer);
|
|
2413
|
+
}
|
|
2414
|
+
catch (err) {
|
|
2415
|
+
var sharedArrayBuffer = intrinsics.sharedArrayBuffer;
|
|
2416
|
+
if (sharedArrayBuffer !== undefined) {
|
|
2417
|
+
return sharedArrayBuffer.byteLength.call(buffer);
|
|
2418
|
+
}
|
|
2419
|
+
var proto = Object.getPrototypeOf(buffer);
|
|
2420
|
+
var get = proto !== null && proto !== undefined
|
|
2421
|
+
? (_a = Object.getOwnPropertyDescriptor(proto, 'byteLength')) === null || _a === void 0 ? void 0 : _a.get
|
|
2422
|
+
: undefined;
|
|
2423
|
+
if (get === undefined)
|
|
2424
|
+
throw err;
|
|
2425
|
+
return get.call(buffer);
|
|
2426
|
+
}
|
|
2427
|
+
},
|
|
2428
|
+
viewBuffer: function (view) {
|
|
2429
|
+
var intrinsics = emnapiExternalMemory.intrinsics;
|
|
2430
|
+
return intrinsics.typedArray.tag.call(view) === undefined
|
|
2431
|
+
? intrinsics.dataView.buffer.call(view)
|
|
2432
|
+
: intrinsics.typedArray.buffer.call(view);
|
|
2433
|
+
},
|
|
2434
|
+
viewByteOffset: function (view) {
|
|
2435
|
+
var intrinsics = emnapiExternalMemory.intrinsics;
|
|
2436
|
+
return intrinsics.typedArray.tag.call(view) === undefined
|
|
2437
|
+
? intrinsics.dataView.byteOffset.call(view)
|
|
2438
|
+
: intrinsics.typedArray.byteOffset.call(view);
|
|
2439
|
+
},
|
|
2440
|
+
viewLength: function (view) {
|
|
2441
|
+
var intrinsics = emnapiExternalMemory.intrinsics;
|
|
2442
|
+
return intrinsics.typedArray.tag.call(view) === undefined
|
|
2443
|
+
? intrinsics.dataView.byteLength.call(view)
|
|
2444
|
+
: intrinsics.typedArray.length.call(view);
|
|
2445
|
+
},
|
|
2446
|
+
getBufferFrom: function () {
|
|
2447
|
+
var _a;
|
|
2448
|
+
return (_a = emnapiExternalMemory.intrinsics.bufferFrom) !== null && _a !== void 0 ? _a : (emnapiExternalMemory.intrinsics.bufferFrom = emnapiCtx.feature.Buffer.from);
|
|
2449
|
+
},
|
|
1960
2450
|
getArrayBufferPointer: function (arrayBuffer, shouldCopy) {
|
|
1961
2451
|
var _a;
|
|
1962
2452
|
var info = {
|
|
@@ -1979,15 +2469,17 @@ function createNapiModule(options) {
|
|
|
1979
2469
|
}
|
|
1980
2470
|
return cachedInfo;
|
|
1981
2471
|
}
|
|
1982
|
-
|
|
2472
|
+
var byteLength = emnapiExternalMemory.bufferByteLength(arrayBuffer);
|
|
2473
|
+
if (isDetached || (byteLength === 0)) {
|
|
1983
2474
|
return info;
|
|
1984
2475
|
}
|
|
1985
2476
|
if (!shouldCopy) {
|
|
1986
2477
|
return info;
|
|
1987
2478
|
}
|
|
1988
|
-
var pointer = _malloc(
|
|
2479
|
+
var pointer = _malloc(byteLength);
|
|
1989
2480
|
if (!pointer)
|
|
1990
2481
|
throw new Error('Out of memory');
|
|
2482
|
+
pointer >>>= 0;
|
|
1991
2483
|
new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
|
|
1992
2484
|
info.address = pointer;
|
|
1993
2485
|
info.ownership = emnapiExternalMemory.registry ? 0 : 1;
|
|
@@ -1997,27 +2489,30 @@ function createNapiModule(options) {
|
|
|
1997
2489
|
return info;
|
|
1998
2490
|
},
|
|
1999
2491
|
getOrUpdateMemoryView: function (view) {
|
|
2000
|
-
|
|
2492
|
+
var intrinsics = emnapiExternalMemory.intrinsics;
|
|
2493
|
+
var tag = intrinsics.typedArray.tag.call(view);
|
|
2494
|
+
var isDataView = tag === undefined;
|
|
2495
|
+
var buffer = isDataView ? intrinsics.dataView.buffer.call(view) : intrinsics.typedArray.buffer.call(view);
|
|
2496
|
+
if (buffer === wasmMemory.buffer) {
|
|
2001
2497
|
if (!emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
2002
2498
|
emnapiExternalMemory.wasmMemoryViewTable.set(view, {
|
|
2003
|
-
Ctor:
|
|
2004
|
-
address: view.byteOffset,
|
|
2005
|
-
length:
|
|
2499
|
+
Ctor: isDataView ? DataView : intrinsics.ctors[tag],
|
|
2500
|
+
address: isDataView ? intrinsics.dataView.byteOffset.call(view) : intrinsics.typedArray.byteOffset.call(view),
|
|
2501
|
+
length: isDataView ? intrinsics.dataView.byteLength.call(view) : intrinsics.typedArray.length.call(view),
|
|
2006
2502
|
ownership: 1,
|
|
2007
2503
|
runtimeAllocated: 0
|
|
2008
2504
|
});
|
|
2009
2505
|
}
|
|
2010
2506
|
return view;
|
|
2011
2507
|
}
|
|
2012
|
-
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(
|
|
2013
|
-
((typeof SharedArrayBuffer === 'function') && (view.buffer instanceof SharedArrayBuffer));
|
|
2508
|
+
var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(buffer) || emnapiExternalMemory.isSharedArrayBuffer(buffer);
|
|
2014
2509
|
if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
2015
2510
|
var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
|
|
2016
2511
|
var Ctor = info.Ctor;
|
|
2017
2512
|
var newView = void 0;
|
|
2018
2513
|
var Buffer_1 = emnapiCtx.feature.Buffer;
|
|
2019
2514
|
if (typeof Buffer_1 === 'function' && Ctor === Buffer_1) {
|
|
2020
|
-
newView =
|
|
2515
|
+
newView = emnapiExternalMemory.getBufferFrom()(wasmMemory.buffer, info.address, info.length);
|
|
2021
2516
|
}
|
|
2022
2517
|
else {
|
|
2023
2518
|
newView = new Ctor(wasmMemory.buffer, info.address, info.length);
|
|
@@ -2029,15 +2524,65 @@ function createNapiModule(options) {
|
|
|
2029
2524
|
},
|
|
2030
2525
|
getViewPointer: function (view, shouldCopy) {
|
|
2031
2526
|
view = emnapiExternalMemory.getOrUpdateMemoryView(view);
|
|
2032
|
-
|
|
2527
|
+
var buffer = emnapiExternalMemory.viewBuffer(view);
|
|
2528
|
+
if (buffer === wasmMemory.buffer) {
|
|
2033
2529
|
if (emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
2034
2530
|
var _a = emnapiExternalMemory.wasmMemoryViewTable.get(view), address_1 = _a.address, ownership_1 = _a.ownership, runtimeAllocated_1 = _a.runtimeAllocated;
|
|
2035
2531
|
return { address: address_1, ownership: ownership_1, runtimeAllocated: runtimeAllocated_1, view: view };
|
|
2036
2532
|
}
|
|
2037
|
-
return { address: view
|
|
2533
|
+
return { address: emnapiExternalMemory.viewByteOffset(view), ownership: 1, runtimeAllocated: 0, view: view };
|
|
2534
|
+
}
|
|
2535
|
+
var _b = emnapiExternalMemory.getArrayBufferPointer(buffer, shouldCopy), address = _b.address, ownership = _b.ownership, runtimeAllocated = _b.runtimeAllocated;
|
|
2536
|
+
return { address: address === 0 ? 0 : (address + emnapiExternalMemory.viewByteOffset(view)), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
|
|
2537
|
+
}
|
|
2538
|
+
};
|
|
2539
|
+
var emnapiExternalSAB = {
|
|
2540
|
+
registry: undefined,
|
|
2541
|
+
handleTable: new WeakMap(),
|
|
2542
|
+
init: function () {
|
|
2543
|
+
emnapiExternalSAB.handleTable = new WeakMap();
|
|
2544
|
+
emnapiExternalSAB.registry = typeof FinalizationRegistry === 'function'
|
|
2545
|
+
? new FinalizationRegistry(function (metaPtr) {
|
|
2546
|
+
emnapiExternalSAB.release(metaPtr);
|
|
2547
|
+
})
|
|
2548
|
+
: undefined;
|
|
2549
|
+
},
|
|
2550
|
+
allocMeta: function (external_data, byte_length, finalize_cb, finalize_data, finalize_hint) {
|
|
2551
|
+
var size = 4 * 6;
|
|
2552
|
+
var metaPtr = _malloc(size);
|
|
2553
|
+
if (!metaPtr)
|
|
2554
|
+
throw new Error('Out of memory');
|
|
2555
|
+
metaPtr >>>= 0;
|
|
2556
|
+
Atomics.store(new Int32Array(wasmMemory.buffer, metaPtr, 1), 0, 1);
|
|
2557
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2558
|
+
GET_HEAP_DATA_VIEW().setUint32(metaPtr + 4, external_data, true);
|
|
2559
|
+
GET_HEAP_DATA_VIEW().setUint32(metaPtr + 8, byte_length, true);
|
|
2560
|
+
GET_HEAP_DATA_VIEW().setUint32(metaPtr + 12, finalize_cb, true);
|
|
2561
|
+
GET_HEAP_DATA_VIEW().setUint32(metaPtr + 16, finalize_data, true);
|
|
2562
|
+
GET_HEAP_DATA_VIEW().setUint32(metaPtr + 20, finalize_hint, true);
|
|
2563
|
+
return metaPtr;
|
|
2564
|
+
},
|
|
2565
|
+
readMeta: function (metaPtr) {
|
|
2566
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2567
|
+
var external_data = GET_HEAP_DATA_VIEW().getUint32(metaPtr + 4, true);
|
|
2568
|
+
var byte_length = GET_HEAP_DATA_VIEW().getUint32(metaPtr + 8, true);
|
|
2569
|
+
var finalize_cb = GET_HEAP_DATA_VIEW().getUint32(metaPtr + 12, true);
|
|
2570
|
+
var finalize_data = GET_HEAP_DATA_VIEW().getUint32(metaPtr + 16, true);
|
|
2571
|
+
var finalize_hint = GET_HEAP_DATA_VIEW().getUint32(metaPtr + 20, true);
|
|
2572
|
+
return { external_data: external_data, byte_length: byte_length, finalize_cb: finalize_cb, finalize_data: finalize_data, finalize_hint: finalize_hint };
|
|
2573
|
+
},
|
|
2574
|
+
release: function (metaPtr) {
|
|
2575
|
+
var oldRefcount = Atomics.sub(new Int32Array(wasmMemory.buffer, metaPtr, 1), 0, 1);
|
|
2576
|
+
if (oldRefcount === 1) {
|
|
2577
|
+
var info = emnapiExternalSAB.readMeta(metaPtr);
|
|
2578
|
+
var finalize_cb = info.finalize_cb;
|
|
2579
|
+
if (finalize_cb) {
|
|
2580
|
+
var finalize_data = info.finalize_data;
|
|
2581
|
+
var finalize_hint = info.finalize_hint;
|
|
2582
|
+
(wasmTable.get(finalize_cb))(finalize_data, finalize_hint);
|
|
2583
|
+
}
|
|
2584
|
+
_free(metaPtr);
|
|
2038
2585
|
}
|
|
2039
|
-
var _b = emnapiExternalMemory.getArrayBufferPointer(view.buffer, shouldCopy), address = _b.address, ownership = _b.ownership, runtimeAllocated = _b.runtimeAllocated;
|
|
2040
|
-
return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
|
|
2041
2586
|
}
|
|
2042
2587
|
};
|
|
2043
2588
|
var emnapiString = {
|
|
@@ -2143,7 +2688,7 @@ function createNapiModule(options) {
|
|
|
2143
2688
|
ptr >>>= 0;
|
|
2144
2689
|
var HEAPU8 = new Uint8Array(wasmMemory.buffer);
|
|
2145
2690
|
var end = ptr;
|
|
2146
|
-
if (length === -1) {
|
|
2691
|
+
if (length === -1 || length === 4294967295) {
|
|
2147
2692
|
for (; HEAPU8[end];)
|
|
2148
2693
|
++end;
|
|
2149
2694
|
}
|
|
@@ -2234,12 +2779,12 @@ function createNapiModule(options) {
|
|
|
2234
2779
|
return '';
|
|
2235
2780
|
ptr >>>= 0;
|
|
2236
2781
|
var end = ptr;
|
|
2237
|
-
if (length === -1) {
|
|
2238
|
-
var idx = end
|
|
2782
|
+
if (length === -1 || length === 4294967295) {
|
|
2783
|
+
var idx = end >>> 1;
|
|
2239
2784
|
var HEAPU16 = new Uint16Array(wasmMemory.buffer);
|
|
2240
2785
|
while (HEAPU16[idx])
|
|
2241
2786
|
++idx;
|
|
2242
|
-
end = idx << 1;
|
|
2787
|
+
end = (idx << 1) >>> 0;
|
|
2243
2788
|
}
|
|
2244
2789
|
else {
|
|
2245
2790
|
end = ptr + (length >>> 0) * 2;
|
|
@@ -2260,21 +2805,22 @@ function createNapiModule(options) {
|
|
|
2260
2805
|
maxBytesToWrite -= 2;
|
|
2261
2806
|
var startPtr = outPtr;
|
|
2262
2807
|
var numCharsToWrite = (maxBytesToWrite < str.length * 2) ? (maxBytesToWrite / 2) : str.length;
|
|
2263
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2808
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2264
2809
|
for (var i = 0; i < numCharsToWrite; ++i) {
|
|
2265
2810
|
var codeUnit = str.charCodeAt(i);
|
|
2266
|
-
|
|
2811
|
+
GET_HEAP_DATA_VIEW().setInt16(outPtr, codeUnit, true);
|
|
2267
2812
|
outPtr += 2;
|
|
2268
2813
|
}
|
|
2269
|
-
|
|
2814
|
+
GET_HEAP_DATA_VIEW().setInt16(outPtr, 0, true);
|
|
2270
2815
|
return outPtr - startPtr;
|
|
2271
2816
|
},
|
|
2272
2817
|
newString: function (env, str, length, result, stringMaker) {
|
|
2818
|
+
length >>>= 0;
|
|
2273
2819
|
if (!env)
|
|
2274
2820
|
return 1;
|
|
2275
2821
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2276
2822
|
envObject.checkGCAccess();
|
|
2277
|
-
var autoLength = length === -1;
|
|
2823
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
2278
2824
|
var sizelength = length >>> 0;
|
|
2279
2825
|
if (length !== 0) {
|
|
2280
2826
|
if (!str)
|
|
@@ -2284,18 +2830,21 @@ function createNapiModule(options) {
|
|
|
2284
2830
|
return envObject.setLastError(1);
|
|
2285
2831
|
if (!(autoLength || (sizelength <= 2147483647)))
|
|
2286
2832
|
return envObject.setLastError(1);
|
|
2833
|
+
str >>>= 0;
|
|
2287
2834
|
var strValue = stringMaker(str, autoLength, sizelength);
|
|
2835
|
+
result >>>= 0;
|
|
2288
2836
|
var value = emnapiCtx.addToCurrentScope(strValue).id;
|
|
2289
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2290
|
-
|
|
2837
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2838
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
2291
2839
|
return envObject.clearLastError();
|
|
2292
2840
|
},
|
|
2293
2841
|
newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
|
|
2842
|
+
length >>>= 0;
|
|
2294
2843
|
if (!env)
|
|
2295
2844
|
return 1;
|
|
2296
2845
|
var envObject = emnapiCtx.envStore.get(env);
|
|
2297
2846
|
envObject.checkGCAccess();
|
|
2298
|
-
var autoLength = length === -1;
|
|
2847
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
2299
2848
|
var sizelength = length >>> 0;
|
|
2300
2849
|
if (length !== 0) {
|
|
2301
2850
|
if (!str)
|
|
@@ -2308,8 +2857,8 @@ function createNapiModule(options) {
|
|
|
2308
2857
|
var status = createApi(env, str, length, result);
|
|
2309
2858
|
if (status === 0) {
|
|
2310
2859
|
if (copied) {
|
|
2311
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2312
|
-
|
|
2860
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2861
|
+
GET_HEAP_DATA_VIEW().setInt8(copied, 1, true);
|
|
2313
2862
|
}
|
|
2314
2863
|
if (finalize_callback) {
|
|
2315
2864
|
envObject.callFinalizer(finalize_callback, str, finalize_hint);
|
|
@@ -2337,9 +2886,10 @@ function createNapiModule(options) {
|
|
|
2337
2886
|
if (!handle.isArray()) {
|
|
2338
2887
|
return envObject.setLastError(8);
|
|
2339
2888
|
}
|
|
2889
|
+
result >>>= 0;
|
|
2340
2890
|
var v = handle.value.length >>> 0;
|
|
2341
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2342
|
-
|
|
2891
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2892
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
2343
2893
|
return envObject.getReturnStatus();
|
|
2344
2894
|
}
|
|
2345
2895
|
catch (err) {
|
|
@@ -2358,16 +2908,53 @@ function createNapiModule(options) {
|
|
|
2358
2908
|
if (!handle.isArrayBuffer() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
|
|
2359
2909
|
return envObject.setLastError(1);
|
|
2360
2910
|
}
|
|
2361
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2911
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2362
2912
|
if (data) {
|
|
2913
|
+
data >>>= 0;
|
|
2363
2914
|
var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
|
|
2364
|
-
|
|
2915
|
+
GET_HEAP_DATA_VIEW().setUint32(data, p, true);
|
|
2365
2916
|
}
|
|
2366
2917
|
if (byte_length) {
|
|
2367
|
-
|
|
2918
|
+
byte_length >>>= 0;
|
|
2919
|
+
var len = emnapiExternalMemory.bufferByteLength(handle.value);
|
|
2920
|
+
GET_HEAP_DATA_VIEW().setUint32(byte_length, len, true);
|
|
2368
2921
|
}
|
|
2369
2922
|
return envObject.clearLastError();
|
|
2370
2923
|
}
|
|
2924
|
+
function node_api_set_prototype(env, object, value) {
|
|
2925
|
+
if (!env)
|
|
2926
|
+
return 1;
|
|
2927
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2928
|
+
envObject.checkGCAccess();
|
|
2929
|
+
if (!envObject.tryCatch.isEmpty())
|
|
2930
|
+
return envObject.setLastError(10);
|
|
2931
|
+
if (!envObject.canCallIntoJs())
|
|
2932
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
|
|
2933
|
+
envObject.clearLastError();
|
|
2934
|
+
try {
|
|
2935
|
+
if (!value)
|
|
2936
|
+
return envObject.setLastError(1);
|
|
2937
|
+
var obj = emnapiCtx.handleStore.get(object).value;
|
|
2938
|
+
if (obj == null) {
|
|
2939
|
+
throw new TypeError('Cannot convert undefined or null to object');
|
|
2940
|
+
}
|
|
2941
|
+
var type = typeof obj;
|
|
2942
|
+
var v = void 0;
|
|
2943
|
+
try {
|
|
2944
|
+
v = (type === 'object' && obj !== null) || type === 'function' ? obj : Object(obj);
|
|
2945
|
+
}
|
|
2946
|
+
catch (_) {
|
|
2947
|
+
return envObject.setLastError(2);
|
|
2948
|
+
}
|
|
2949
|
+
var val = emnapiCtx.handleStore.get(value).value;
|
|
2950
|
+
Object.setPrototypeOf(v, val);
|
|
2951
|
+
return envObject.getReturnStatus();
|
|
2952
|
+
}
|
|
2953
|
+
catch (err) {
|
|
2954
|
+
envObject.tryCatch.setError(err);
|
|
2955
|
+
return envObject.setLastError(10);
|
|
2956
|
+
}
|
|
2957
|
+
}
|
|
2371
2958
|
function napi_get_prototype(env, value, result) {
|
|
2372
2959
|
if (!env)
|
|
2373
2960
|
return 1;
|
|
@@ -2394,9 +2981,10 @@ function createNapiModule(options) {
|
|
|
2394
2981
|
catch (_) {
|
|
2395
2982
|
return envObject.setLastError(2);
|
|
2396
2983
|
}
|
|
2984
|
+
result >>>= 0;
|
|
2397
2985
|
var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
|
|
2398
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2399
|
-
|
|
2986
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2987
|
+
GET_HEAP_DATA_VIEW().setUint32(result, p, true);
|
|
2400
2988
|
return envObject.getReturnStatus();
|
|
2401
2989
|
}
|
|
2402
2990
|
catch (err) {
|
|
@@ -2412,68 +3000,80 @@ function createNapiModule(options) {
|
|
|
2412
3000
|
if (!typedarray)
|
|
2413
3001
|
return envObject.setLastError(1);
|
|
2414
3002
|
var handle = emnapiCtx.handleStore.get(typedarray);
|
|
2415
|
-
if (!handle.
|
|
3003
|
+
if (!(emnapiExternalMemory.intrinsics.isView(handle.value))) {
|
|
2416
3004
|
return envObject.setLastError(1);
|
|
2417
3005
|
}
|
|
2418
3006
|
var v = handle.value;
|
|
2419
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3007
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2420
3008
|
if (type) {
|
|
3009
|
+
type >>>= 0;
|
|
2421
3010
|
var t = void 0;
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
3011
|
+
switch (emnapiExternalMemory.intrinsics.typedArray.tag.call(v)) {
|
|
3012
|
+
case 'Int8Array':
|
|
3013
|
+
t = 0;
|
|
3014
|
+
break;
|
|
3015
|
+
case 'Uint8Array':
|
|
3016
|
+
t = 1;
|
|
3017
|
+
break;
|
|
3018
|
+
case 'Uint8ClampedArray':
|
|
3019
|
+
t = 2;
|
|
3020
|
+
break;
|
|
3021
|
+
case 'Int16Array':
|
|
3022
|
+
t = 3;
|
|
3023
|
+
break;
|
|
3024
|
+
case 'Uint16Array':
|
|
3025
|
+
t = 4;
|
|
3026
|
+
break;
|
|
3027
|
+
case 'Int32Array':
|
|
3028
|
+
t = 5;
|
|
3029
|
+
break;
|
|
3030
|
+
case 'Uint32Array':
|
|
3031
|
+
t = 6;
|
|
3032
|
+
break;
|
|
3033
|
+
case 'Float16Array':
|
|
3034
|
+
t = 11;
|
|
3035
|
+
break;
|
|
3036
|
+
case 'Float32Array':
|
|
3037
|
+
t = 7;
|
|
3038
|
+
break;
|
|
3039
|
+
case 'Float64Array':
|
|
3040
|
+
t = 8;
|
|
3041
|
+
break;
|
|
3042
|
+
case 'BigInt64Array':
|
|
3043
|
+
t = 9;
|
|
3044
|
+
break;
|
|
3045
|
+
case 'BigUint64Array':
|
|
3046
|
+
t = 10;
|
|
3047
|
+
break;
|
|
3048
|
+
default:
|
|
3049
|
+
return envObject.setLastError(9);
|
|
2457
3050
|
}
|
|
2458
|
-
|
|
3051
|
+
GET_HEAP_DATA_VIEW().setInt32(type, t, true);
|
|
2459
3052
|
}
|
|
3053
|
+
v = emnapiExternalMemory.getOrUpdateMemoryView(v);
|
|
2460
3054
|
if (length) {
|
|
2461
|
-
|
|
3055
|
+
length >>>= 0;
|
|
3056
|
+
var len = emnapiExternalMemory.viewLength(v);
|
|
3057
|
+
GET_HEAP_DATA_VIEW().setUint32(length, len, true);
|
|
2462
3058
|
}
|
|
2463
|
-
var buffer;
|
|
2464
3059
|
if (data || arraybuffer) {
|
|
2465
|
-
buffer = v.buffer;
|
|
2466
3060
|
if (data) {
|
|
2467
|
-
|
|
2468
|
-
|
|
3061
|
+
data >>>= 0;
|
|
3062
|
+
var vp = emnapiExternalMemory.getViewPointer(v, true);
|
|
3063
|
+
v = vp.view;
|
|
3064
|
+
var p = vp.address;
|
|
3065
|
+
GET_HEAP_DATA_VIEW().setUint32(data, p, true);
|
|
2469
3066
|
}
|
|
2470
3067
|
if (arraybuffer) {
|
|
2471
|
-
|
|
2472
|
-
|
|
3068
|
+
arraybuffer >>>= 0;
|
|
3069
|
+
var ab = envObject.ensureHandleId(emnapiExternalMemory.viewBuffer(v));
|
|
3070
|
+
GET_HEAP_DATA_VIEW().setUint32(arraybuffer, ab, true);
|
|
2473
3071
|
}
|
|
2474
3072
|
}
|
|
2475
3073
|
if (byte_offset) {
|
|
2476
|
-
|
|
3074
|
+
byte_offset >>>= 0;
|
|
3075
|
+
var offset = emnapiExternalMemory.viewByteOffset(v);
|
|
3076
|
+
GET_HEAP_DATA_VIEW().setUint32(byte_offset, offset, true);
|
|
2477
3077
|
}
|
|
2478
3078
|
return envObject.clearLastError();
|
|
2479
3079
|
}
|
|
@@ -2485,9 +3085,11 @@ function createNapiModule(options) {
|
|
|
2485
3085
|
if (!buffer)
|
|
2486
3086
|
return envObject.setLastError(1);
|
|
2487
3087
|
var handle = emnapiCtx.handleStore.get(buffer);
|
|
2488
|
-
|
|
3088
|
+
var Buffer = emnapiCtx.feature.Buffer;
|
|
3089
|
+
var bool = (emnapiExternalMemory.intrinsics.isView(handle.value) || (typeof Buffer === 'function' && Buffer.isBuffer(handle.value)));
|
|
3090
|
+
if (!bool)
|
|
2489
3091
|
return envObject.setLastError(1);
|
|
2490
|
-
if (handle.
|
|
3092
|
+
if (emnapiExternalMemory.intrinsics.typedArray.tag.call(handle.value) === undefined) {
|
|
2491
3093
|
return napi_get_dataview_info(env, buffer, length, data, 0, 0);
|
|
2492
3094
|
}
|
|
2493
3095
|
return napi_get_typedarray_info(env, buffer, 0, length, data, 0, 0);
|
|
@@ -2500,28 +3102,34 @@ function createNapiModule(options) {
|
|
|
2500
3102
|
if (!dataview)
|
|
2501
3103
|
return envObject.setLastError(1);
|
|
2502
3104
|
var handle = emnapiCtx.handleStore.get(dataview);
|
|
2503
|
-
if (!handle.
|
|
3105
|
+
if (!(emnapiExternalMemory.intrinsics.isView(handle.value)) || emnapiExternalMemory.intrinsics.typedArray.tag.call(handle.value) !== undefined) {
|
|
2504
3106
|
return envObject.setLastError(1);
|
|
2505
3107
|
}
|
|
2506
|
-
var v = handle.value;
|
|
2507
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3108
|
+
var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
|
|
3109
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2508
3110
|
if (byte_length) {
|
|
2509
|
-
|
|
3111
|
+
byte_length >>>= 0;
|
|
3112
|
+
var len = emnapiExternalMemory.viewLength(v);
|
|
3113
|
+
GET_HEAP_DATA_VIEW().setUint32(byte_length, len, true);
|
|
2510
3114
|
}
|
|
2511
|
-
var buffer;
|
|
2512
3115
|
if (data || arraybuffer) {
|
|
2513
|
-
buffer = v.buffer;
|
|
2514
3116
|
if (data) {
|
|
2515
|
-
|
|
2516
|
-
|
|
3117
|
+
data >>>= 0;
|
|
3118
|
+
var vp = emnapiExternalMemory.getViewPointer(v, true);
|
|
3119
|
+
v = vp.view;
|
|
3120
|
+
var p = vp.address;
|
|
3121
|
+
GET_HEAP_DATA_VIEW().setUint32(data, p, true);
|
|
2517
3122
|
}
|
|
2518
3123
|
if (arraybuffer) {
|
|
2519
|
-
|
|
2520
|
-
|
|
3124
|
+
arraybuffer >>>= 0;
|
|
3125
|
+
var ab = envObject.ensureHandleId(emnapiExternalMemory.viewBuffer(v));
|
|
3126
|
+
GET_HEAP_DATA_VIEW().setUint32(arraybuffer, ab, true);
|
|
2521
3127
|
}
|
|
2522
3128
|
}
|
|
2523
3129
|
if (byte_offset) {
|
|
2524
|
-
|
|
3130
|
+
byte_offset >>>= 0;
|
|
3131
|
+
var offset = emnapiExternalMemory.viewByteOffset(v);
|
|
3132
|
+
GET_HEAP_DATA_VIEW().setUint32(byte_offset, offset, true);
|
|
2525
3133
|
}
|
|
2526
3134
|
return envObject.clearLastError();
|
|
2527
3135
|
}
|
|
@@ -2545,9 +3153,10 @@ function createNapiModule(options) {
|
|
|
2545
3153
|
if (!handle.isDate()) {
|
|
2546
3154
|
return envObject.setLastError(1);
|
|
2547
3155
|
}
|
|
3156
|
+
result >>>= 0;
|
|
2548
3157
|
v = handle.value.valueOf();
|
|
2549
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2550
|
-
|
|
3158
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3159
|
+
GET_HEAP_DATA_VIEW().setFloat64(result, v, true);
|
|
2551
3160
|
return envObject.getReturnStatus();
|
|
2552
3161
|
}
|
|
2553
3162
|
catch (err) {
|
|
@@ -2568,9 +3177,10 @@ function createNapiModule(options) {
|
|
|
2568
3177
|
if (typeof handle.value !== 'boolean') {
|
|
2569
3178
|
return envObject.setLastError(7);
|
|
2570
3179
|
}
|
|
3180
|
+
result >>>= 0;
|
|
2571
3181
|
var r = handle.value ? 1 : 0;
|
|
2572
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2573
|
-
|
|
3182
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3183
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
2574
3184
|
return envObject.clearLastError();
|
|
2575
3185
|
}
|
|
2576
3186
|
function napi_get_value_double(env, value, result) {
|
|
@@ -2586,9 +3196,10 @@ function createNapiModule(options) {
|
|
|
2586
3196
|
if (typeof handle.value !== 'number') {
|
|
2587
3197
|
return envObject.setLastError(6);
|
|
2588
3198
|
}
|
|
3199
|
+
result >>>= 0;
|
|
2589
3200
|
var r = handle.value;
|
|
2590
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2591
|
-
|
|
3201
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3202
|
+
GET_HEAP_DATA_VIEW().setFloat64(result, r, true);
|
|
2592
3203
|
return envObject.clearLastError();
|
|
2593
3204
|
}
|
|
2594
3205
|
function napi_get_value_bigint_int64(env, value, result, lossless) {
|
|
@@ -2610,12 +3221,14 @@ function createNapiModule(options) {
|
|
|
2610
3221
|
if (typeof numberValue !== 'bigint') {
|
|
2611
3222
|
return envObject.setLastError(6);
|
|
2612
3223
|
}
|
|
2613
|
-
|
|
3224
|
+
lossless >>>= 0;
|
|
3225
|
+
result >>>= 0;
|
|
3226
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2614
3227
|
if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
|
|
2615
|
-
|
|
3228
|
+
GET_HEAP_DATA_VIEW().setInt8(lossless, 1, true);
|
|
2616
3229
|
}
|
|
2617
3230
|
else {
|
|
2618
|
-
|
|
3231
|
+
GET_HEAP_DATA_VIEW().setInt8(lossless, 0, true);
|
|
2619
3232
|
numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
2620
3233
|
if (numberValue >= (BigInt(1) << BigInt(63))) {
|
|
2621
3234
|
numberValue = numberValue - (BigInt(1) << BigInt(64));
|
|
@@ -2623,8 +3236,8 @@ function createNapiModule(options) {
|
|
|
2623
3236
|
}
|
|
2624
3237
|
var low = Number(numberValue & BigInt(0xffffffff));
|
|
2625
3238
|
var high = Number(numberValue >> BigInt(32));
|
|
2626
|
-
|
|
2627
|
-
|
|
3239
|
+
GET_HEAP_DATA_VIEW().setInt32(result, low, true);
|
|
3240
|
+
GET_HEAP_DATA_VIEW().setInt32(result + 4, high, true);
|
|
2628
3241
|
return envObject.clearLastError();
|
|
2629
3242
|
}
|
|
2630
3243
|
function napi_get_value_bigint_uint64(env, value, result, lossless) {
|
|
@@ -2646,18 +3259,20 @@ function createNapiModule(options) {
|
|
|
2646
3259
|
if (typeof numberValue !== 'bigint') {
|
|
2647
3260
|
return envObject.setLastError(6);
|
|
2648
3261
|
}
|
|
2649
|
-
|
|
3262
|
+
lossless >>>= 0;
|
|
3263
|
+
result >>>= 0;
|
|
3264
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2650
3265
|
if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
|
|
2651
|
-
|
|
3266
|
+
GET_HEAP_DATA_VIEW().setInt8(lossless, 1, true);
|
|
2652
3267
|
}
|
|
2653
3268
|
else {
|
|
2654
|
-
|
|
3269
|
+
GET_HEAP_DATA_VIEW().setInt8(lossless, 0, true);
|
|
2655
3270
|
numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
2656
3271
|
}
|
|
2657
3272
|
var low = Number(numberValue & BigInt(0xffffffff));
|
|
2658
3273
|
var high = Number(numberValue >> BigInt(32));
|
|
2659
|
-
|
|
2660
|
-
|
|
3274
|
+
GET_HEAP_DATA_VIEW().setUint32(result, low, true);
|
|
3275
|
+
GET_HEAP_DATA_VIEW().setUint32(result + 4, high, true);
|
|
2661
3276
|
return envObject.clearLastError();
|
|
2662
3277
|
}
|
|
2663
3278
|
function napi_get_value_bigint_words(env, value, sign_bit, word_count, words) {
|
|
@@ -2677,8 +3292,12 @@ function createNapiModule(options) {
|
|
|
2677
3292
|
return envObject.setLastError(17);
|
|
2678
3293
|
}
|
|
2679
3294
|
var isMinus = handle.value < BigInt(0);
|
|
2680
|
-
|
|
2681
|
-
|
|
3295
|
+
sign_bit >>>= 0;
|
|
3296
|
+
words >>>= 0;
|
|
3297
|
+
word_count >>>= 0;
|
|
3298
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3299
|
+
var word_count_int = GET_HEAP_DATA_VIEW().getUint32(word_count, true);
|
|
3300
|
+
word_count_int >>>= 0;
|
|
2682
3301
|
var wordCount = 0;
|
|
2683
3302
|
var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
2684
3303
|
while (bigintValue !== BigInt(0)) {
|
|
@@ -2688,7 +3307,7 @@ function createNapiModule(options) {
|
|
|
2688
3307
|
bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
2689
3308
|
if (!sign_bit && !words) {
|
|
2690
3309
|
word_count_int = wordCount;
|
|
2691
|
-
|
|
3310
|
+
GET_HEAP_DATA_VIEW().setUint32(word_count, word_count_int, true);
|
|
2692
3311
|
}
|
|
2693
3312
|
else {
|
|
2694
3313
|
if (!sign_bit)
|
|
@@ -2705,11 +3324,11 @@ function createNapiModule(options) {
|
|
|
2705
3324
|
for (var i = 0; i < len; i++) {
|
|
2706
3325
|
var low = Number(wordsArr[i] & BigInt(0xffffffff));
|
|
2707
3326
|
var high = Number(wordsArr[i] >> BigInt(32));
|
|
2708
|
-
|
|
2709
|
-
|
|
3327
|
+
GET_HEAP_DATA_VIEW().setUint32(words + i * 8, low, true);
|
|
3328
|
+
GET_HEAP_DATA_VIEW().setUint32(words + (i * 8 + 4), high, true);
|
|
2710
3329
|
}
|
|
2711
|
-
|
|
2712
|
-
|
|
3330
|
+
GET_HEAP_DATA_VIEW().setInt32(sign_bit, isMinus ? 1 : 0, true);
|
|
3331
|
+
GET_HEAP_DATA_VIEW().setUint32(word_count, len, true);
|
|
2713
3332
|
}
|
|
2714
3333
|
return envObject.clearLastError();
|
|
2715
3334
|
}
|
|
@@ -2726,9 +3345,10 @@ function createNapiModule(options) {
|
|
|
2726
3345
|
if (!handle.isExternal()) {
|
|
2727
3346
|
return envObject.setLastError(1);
|
|
2728
3347
|
}
|
|
3348
|
+
result >>>= 0;
|
|
2729
3349
|
var p = handle.data();
|
|
2730
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2731
|
-
|
|
3350
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3351
|
+
GET_HEAP_DATA_VIEW().setUint32(result, p, true);
|
|
2732
3352
|
return envObject.clearLastError();
|
|
2733
3353
|
}
|
|
2734
3354
|
function napi_get_value_int32(env, value, result) {
|
|
@@ -2744,9 +3364,10 @@ function createNapiModule(options) {
|
|
|
2744
3364
|
if (typeof handle.value !== 'number') {
|
|
2745
3365
|
return envObject.setLastError(6);
|
|
2746
3366
|
}
|
|
3367
|
+
result >>>= 0;
|
|
2747
3368
|
var v = new Int32Array([handle.value])[0];
|
|
2748
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2749
|
-
|
|
3369
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3370
|
+
GET_HEAP_DATA_VIEW().setInt32(result, v, true);
|
|
2750
3371
|
return envObject.clearLastError();
|
|
2751
3372
|
}
|
|
2752
3373
|
function napi_get_value_int64(env, value, result) {
|
|
@@ -2763,18 +3384,19 @@ function createNapiModule(options) {
|
|
|
2763
3384
|
return envObject.setLastError(6);
|
|
2764
3385
|
}
|
|
2765
3386
|
var numberValue = handle.value;
|
|
2766
|
-
|
|
3387
|
+
result >>>= 0;
|
|
3388
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2767
3389
|
if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
|
|
2768
|
-
|
|
2769
|
-
|
|
3390
|
+
GET_HEAP_DATA_VIEW().setInt32(result, 0, true);
|
|
3391
|
+
GET_HEAP_DATA_VIEW().setInt32(result + 4, 0, true);
|
|
2770
3392
|
}
|
|
2771
3393
|
else if (numberValue < -9223372036854776e3) {
|
|
2772
|
-
|
|
2773
|
-
|
|
3394
|
+
GET_HEAP_DATA_VIEW().setInt32(result, 0, true);
|
|
3395
|
+
GET_HEAP_DATA_VIEW().setInt32(result + 4, 2147483648, true);
|
|
2774
3396
|
}
|
|
2775
3397
|
else if (numberValue >= 9223372036854776000) {
|
|
2776
|
-
|
|
2777
|
-
|
|
3398
|
+
GET_HEAP_DATA_VIEW().setUint32(result, 4294967295, true);
|
|
3399
|
+
GET_HEAP_DATA_VIEW().setUint32(result + 4, 2147483647, true);
|
|
2778
3400
|
}
|
|
2779
3401
|
else {
|
|
2780
3402
|
$emnapiSetValueI64(result, Math.trunc(numberValue));
|
|
@@ -2788,32 +3410,35 @@ function createNapiModule(options) {
|
|
|
2788
3410
|
envObject.checkGCAccess();
|
|
2789
3411
|
if (!value)
|
|
2790
3412
|
return envObject.setLastError(1);
|
|
3413
|
+
result >>>= 0;
|
|
3414
|
+
buf >>>= 0;
|
|
3415
|
+
buf_size >>>= 0;
|
|
2791
3416
|
buf_size = buf_size >>> 0;
|
|
2792
3417
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2793
3418
|
if (typeof handle.value !== 'string') {
|
|
2794
3419
|
return envObject.setLastError(3);
|
|
2795
3420
|
}
|
|
2796
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3421
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2797
3422
|
if (!buf) {
|
|
2798
3423
|
if (!result)
|
|
2799
3424
|
return envObject.setLastError(1);
|
|
2800
|
-
|
|
3425
|
+
GET_HEAP_DATA_VIEW().setUint32(result, handle.value.length, true);
|
|
2801
3426
|
}
|
|
2802
3427
|
else if (buf_size !== 0) {
|
|
2803
3428
|
var copied = 0;
|
|
2804
3429
|
var v = void 0;
|
|
2805
3430
|
for (var i = 0; i < buf_size - 1; ++i) {
|
|
2806
3431
|
v = handle.value.charCodeAt(i) & 0xff;
|
|
2807
|
-
|
|
3432
|
+
GET_HEAP_DATA_VIEW().setUint8(buf + i, v, true);
|
|
2808
3433
|
copied++;
|
|
2809
3434
|
}
|
|
2810
|
-
|
|
3435
|
+
GET_HEAP_DATA_VIEW().setUint8(buf + copied, 0, true);
|
|
2811
3436
|
if (result) {
|
|
2812
|
-
|
|
3437
|
+
GET_HEAP_DATA_VIEW().setUint32(result, copied, true);
|
|
2813
3438
|
}
|
|
2814
3439
|
}
|
|
2815
3440
|
else if (result) {
|
|
2816
|
-
|
|
3441
|
+
GET_HEAP_DATA_VIEW().setUint32(result, 0, true);
|
|
2817
3442
|
}
|
|
2818
3443
|
return envObject.clearLastError();
|
|
2819
3444
|
}
|
|
@@ -2824,26 +3449,29 @@ function createNapiModule(options) {
|
|
|
2824
3449
|
envObject.checkGCAccess();
|
|
2825
3450
|
if (!value)
|
|
2826
3451
|
return envObject.setLastError(1);
|
|
3452
|
+
result >>>= 0;
|
|
3453
|
+
buf >>>= 0;
|
|
3454
|
+
buf_size >>>= 0;
|
|
2827
3455
|
buf_size = buf_size >>> 0;
|
|
2828
3456
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2829
3457
|
if (typeof handle.value !== 'string') {
|
|
2830
3458
|
return envObject.setLastError(3);
|
|
2831
3459
|
}
|
|
2832
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3460
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2833
3461
|
if (!buf) {
|
|
2834
3462
|
if (!result)
|
|
2835
3463
|
return envObject.setLastError(1);
|
|
2836
3464
|
var strLength = emnapiString.lengthBytesUTF8(handle.value);
|
|
2837
|
-
|
|
3465
|
+
GET_HEAP_DATA_VIEW().setUint32(result, strLength, true);
|
|
2838
3466
|
}
|
|
2839
3467
|
else if (buf_size !== 0) {
|
|
2840
3468
|
var copied = emnapiString.stringToUTF8(handle.value, buf, buf_size);
|
|
2841
3469
|
if (result) {
|
|
2842
|
-
|
|
3470
|
+
GET_HEAP_DATA_VIEW().setUint32(result, copied, true);
|
|
2843
3471
|
}
|
|
2844
3472
|
}
|
|
2845
3473
|
else if (result) {
|
|
2846
|
-
|
|
3474
|
+
GET_HEAP_DATA_VIEW().setUint32(result, 0, true);
|
|
2847
3475
|
}
|
|
2848
3476
|
return envObject.clearLastError();
|
|
2849
3477
|
}
|
|
@@ -2854,25 +3482,28 @@ function createNapiModule(options) {
|
|
|
2854
3482
|
envObject.checkGCAccess();
|
|
2855
3483
|
if (!value)
|
|
2856
3484
|
return envObject.setLastError(1);
|
|
3485
|
+
result >>>= 0;
|
|
3486
|
+
buf >>>= 0;
|
|
3487
|
+
buf_size >>>= 0;
|
|
2857
3488
|
buf_size = buf_size >>> 0;
|
|
2858
3489
|
var handle = emnapiCtx.handleStore.get(value);
|
|
2859
3490
|
if (typeof handle.value !== 'string') {
|
|
2860
3491
|
return envObject.setLastError(3);
|
|
2861
3492
|
}
|
|
2862
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3493
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2863
3494
|
if (!buf) {
|
|
2864
3495
|
if (!result)
|
|
2865
3496
|
return envObject.setLastError(1);
|
|
2866
|
-
|
|
3497
|
+
GET_HEAP_DATA_VIEW().setUint32(result, handle.value.length, true);
|
|
2867
3498
|
}
|
|
2868
3499
|
else if (buf_size !== 0) {
|
|
2869
3500
|
var copied = emnapiString.stringToUTF16(handle.value, buf, buf_size * 2);
|
|
2870
3501
|
if (result) {
|
|
2871
|
-
|
|
3502
|
+
GET_HEAP_DATA_VIEW().setUint32(result, copied / 2, true);
|
|
2872
3503
|
}
|
|
2873
3504
|
}
|
|
2874
3505
|
else if (result) {
|
|
2875
|
-
|
|
3506
|
+
GET_HEAP_DATA_VIEW().setUint32(result, 0, true);
|
|
2876
3507
|
}
|
|
2877
3508
|
return envObject.clearLastError();
|
|
2878
3509
|
}
|
|
@@ -2889,9 +3520,10 @@ function createNapiModule(options) {
|
|
|
2889
3520
|
if (typeof handle.value !== 'number') {
|
|
2890
3521
|
return envObject.setLastError(6);
|
|
2891
3522
|
}
|
|
3523
|
+
result >>>= 0;
|
|
2892
3524
|
var v = new Uint32Array([handle.value])[0];
|
|
2893
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2894
|
-
|
|
3525
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3526
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
2895
3527
|
return envObject.clearLastError();
|
|
2896
3528
|
}
|
|
2897
3529
|
var convert2cMod = Object.freeze({
|
|
@@ -2914,7 +3546,8 @@ function createNapiModule(options) {
|
|
|
2914
3546
|
napi_get_value_string_latin1: napi_get_value_string_latin1,
|
|
2915
3547
|
napi_get_value_string_utf16: napi_get_value_string_utf16,
|
|
2916
3548
|
napi_get_value_string_utf8: napi_get_value_string_utf8,
|
|
2917
|
-
napi_get_value_uint32: napi_get_value_uint32
|
|
3549
|
+
napi_get_value_uint32: napi_get_value_uint32,
|
|
3550
|
+
node_api_set_prototype: node_api_set_prototype
|
|
2918
3551
|
});
|
|
2919
3552
|
function napi_create_int32(env, value, result) {
|
|
2920
3553
|
if (!env)
|
|
@@ -2923,9 +3556,10 @@ function createNapiModule(options) {
|
|
|
2923
3556
|
envObject.checkGCAccess();
|
|
2924
3557
|
if (!result)
|
|
2925
3558
|
return envObject.setLastError(1);
|
|
3559
|
+
result >>>= 0;
|
|
2926
3560
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
2927
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2928
|
-
|
|
3561
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3562
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
2929
3563
|
return envObject.clearLastError();
|
|
2930
3564
|
}
|
|
2931
3565
|
function napi_create_uint32(env, value, result) {
|
|
@@ -2935,9 +3569,10 @@ function createNapiModule(options) {
|
|
|
2935
3569
|
envObject.checkGCAccess();
|
|
2936
3570
|
if (!result)
|
|
2937
3571
|
return envObject.setLastError(1);
|
|
3572
|
+
result >>>= 0;
|
|
2938
3573
|
var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
|
|
2939
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2940
|
-
|
|
3574
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3575
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
2941
3576
|
return envObject.clearLastError();
|
|
2942
3577
|
}
|
|
2943
3578
|
function napi_create_int64(env, low, high, result) {
|
|
@@ -2950,8 +3585,9 @@ function createNapiModule(options) {
|
|
|
2950
3585
|
return envObject.setLastError(1);
|
|
2951
3586
|
value = Number(low);
|
|
2952
3587
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
2953
|
-
|
|
2954
|
-
HEAP_DATA_VIEW.
|
|
3588
|
+
high >>>= 0;
|
|
3589
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3590
|
+
GET_HEAP_DATA_VIEW().setUint32(high, v1, true);
|
|
2955
3591
|
return envObject.clearLastError();
|
|
2956
3592
|
}
|
|
2957
3593
|
function napi_create_double(env, value, result) {
|
|
@@ -2961,19 +3597,20 @@ function createNapiModule(options) {
|
|
|
2961
3597
|
envObject.checkGCAccess();
|
|
2962
3598
|
if (!result)
|
|
2963
3599
|
return envObject.setLastError(1);
|
|
3600
|
+
result >>>= 0;
|
|
2964
3601
|
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
2965
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2966
|
-
|
|
3602
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3603
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
2967
3604
|
return envObject.clearLastError();
|
|
2968
3605
|
}
|
|
2969
3606
|
function napi_create_string_latin1(env, str, length, result) {
|
|
2970
3607
|
return emnapiString.newString(env, str, length, result, function (str, autoLength, sizeLength) {
|
|
2971
3608
|
var latin1String = '';
|
|
2972
3609
|
var len = 0;
|
|
2973
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3610
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
2974
3611
|
if (autoLength) {
|
|
2975
3612
|
while (true) {
|
|
2976
|
-
var ch =
|
|
3613
|
+
var ch = GET_HEAP_DATA_VIEW().getUint8(str, true);
|
|
2977
3614
|
if (!ch)
|
|
2978
3615
|
break;
|
|
2979
3616
|
latin1String += String.fromCharCode(ch);
|
|
@@ -2982,7 +3619,7 @@ function createNapiModule(options) {
|
|
|
2982
3619
|
}
|
|
2983
3620
|
else {
|
|
2984
3621
|
while (len < sizeLength) {
|
|
2985
|
-
var ch =
|
|
3622
|
+
var ch = GET_HEAP_DATA_VIEW().getUint8(str, true);
|
|
2986
3623
|
if (!ch)
|
|
2987
3624
|
break;
|
|
2988
3625
|
latin1String += String.fromCharCode(ch);
|
|
@@ -3031,8 +3668,9 @@ function createNapiModule(options) {
|
|
|
3031
3668
|
return envObject.setLastError(1);
|
|
3032
3669
|
value = low;
|
|
3033
3670
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3034
|
-
|
|
3035
|
-
HEAP_DATA_VIEW.
|
|
3671
|
+
high >>>= 0;
|
|
3672
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3673
|
+
GET_HEAP_DATA_VIEW().setUint32(high, v1, true);
|
|
3036
3674
|
return envObject.clearLastError();
|
|
3037
3675
|
}
|
|
3038
3676
|
function napi_create_bigint_uint64(env, low, high, result) {
|
|
@@ -3048,8 +3686,9 @@ function createNapiModule(options) {
|
|
|
3048
3686
|
return envObject.setLastError(1);
|
|
3049
3687
|
value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
3050
3688
|
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3051
|
-
|
|
3052
|
-
HEAP_DATA_VIEW.
|
|
3689
|
+
high >>>= 0;
|
|
3690
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3691
|
+
GET_HEAP_DATA_VIEW().setUint32(high, v1, true);
|
|
3053
3692
|
return envObject.clearLastError();
|
|
3054
3693
|
}
|
|
3055
3694
|
function napi_create_bigint_words(env, sign_bit, word_count, words, result) {
|
|
@@ -3069,6 +3708,8 @@ function createNapiModule(options) {
|
|
|
3069
3708
|
}
|
|
3070
3709
|
if (!result)
|
|
3071
3710
|
return envObject.setLastError(1);
|
|
3711
|
+
words >>>= 0;
|
|
3712
|
+
word_count >>>= 0;
|
|
3072
3713
|
word_count = word_count >>> 0;
|
|
3073
3714
|
if (word_count > 2147483647) {
|
|
3074
3715
|
return envObject.setLastError(1);
|
|
@@ -3077,16 +3718,17 @@ function createNapiModule(options) {
|
|
|
3077
3718
|
throw new RangeError('Maximum BigInt size exceeded');
|
|
3078
3719
|
}
|
|
3079
3720
|
var value = BigInt(0);
|
|
3080
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3721
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3081
3722
|
for (i = 0; i < word_count; i++) {
|
|
3082
|
-
var low =
|
|
3083
|
-
var high =
|
|
3723
|
+
var low = GET_HEAP_DATA_VIEW().getUint32(words + i * 8, true);
|
|
3724
|
+
var high = GET_HEAP_DATA_VIEW().getUint32(words + (i * 8 + 4), true);
|
|
3084
3725
|
var wordi = BigInt(low) | (BigInt(high) << BigInt(32));
|
|
3085
3726
|
value += wordi << BigInt(64 * i);
|
|
3086
3727
|
}
|
|
3087
3728
|
value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
|
|
3729
|
+
result >>>= 0;
|
|
3088
3730
|
v = emnapiCtx.addToCurrentScope(value).id;
|
|
3089
|
-
|
|
3731
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
3090
3732
|
return envObject.getReturnStatus();
|
|
3091
3733
|
}
|
|
3092
3734
|
catch (err) {
|
|
@@ -3113,6 +3755,7 @@ function createNapiModule(options) {
|
|
|
3113
3755
|
node_api_create_property_key_utf8: node_api_create_property_key_utf8
|
|
3114
3756
|
});
|
|
3115
3757
|
function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
|
|
3758
|
+
utf8name >>>= 0;
|
|
3116
3759
|
var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
|
|
3117
3760
|
var f;
|
|
3118
3761
|
var napiCallback = (wasmTable.get(cb));
|
|
@@ -3253,9 +3896,10 @@ function createNapiModule(options) {
|
|
|
3253
3896
|
if (!finalize_cb)
|
|
3254
3897
|
return envObject.setLastError(1);
|
|
3255
3898
|
reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1, finalize_cb, native_object, finalize_hint);
|
|
3899
|
+
result >>>= 0;
|
|
3256
3900
|
referenceId = reference.id;
|
|
3257
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3258
|
-
|
|
3901
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3902
|
+
GET_HEAP_DATA_VIEW().setUint32(result, referenceId, true);
|
|
3259
3903
|
}
|
|
3260
3904
|
else {
|
|
3261
3905
|
if (finalize_cb) {
|
|
@@ -3301,9 +3945,10 @@ function createNapiModule(options) {
|
|
|
3301
3945
|
if (!ref)
|
|
3302
3946
|
return envObject.setLastError(1);
|
|
3303
3947
|
if (result) {
|
|
3948
|
+
result >>>= 0;
|
|
3304
3949
|
data = ref.data();
|
|
3305
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3306
|
-
|
|
3950
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3951
|
+
GET_HEAP_DATA_VIEW().setUint32(result, data, true);
|
|
3307
3952
|
}
|
|
3308
3953
|
if (action === 1) {
|
|
3309
3954
|
binding.wrapped = 0;
|
|
@@ -3337,12 +3982,15 @@ function createNapiModule(options) {
|
|
|
3337
3982
|
return envObject.setLastError(1);
|
|
3338
3983
|
if (!constructor)
|
|
3339
3984
|
return envObject.setLastError(1);
|
|
3985
|
+
length >>>= 0;
|
|
3986
|
+
properties >>>= 0;
|
|
3987
|
+
property_count >>>= 0;
|
|
3340
3988
|
property_count = property_count >>> 0;
|
|
3341
3989
|
if (property_count > 0) {
|
|
3342
3990
|
if (!properties)
|
|
3343
3991
|
return envObject.setLastError(1);
|
|
3344
3992
|
}
|
|
3345
|
-
if ((length
|
|
3993
|
+
if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
|
|
3346
3994
|
return envObject.setLastError(1);
|
|
3347
3995
|
}
|
|
3348
3996
|
var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
|
|
@@ -3350,17 +3998,18 @@ function createNapiModule(options) {
|
|
|
3350
3998
|
return envObject.setLastError(fresult.status);
|
|
3351
3999
|
var F = fresult.f;
|
|
3352
4000
|
var propertyName = void 0;
|
|
3353
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4001
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3354
4002
|
for (var i = 0; i < property_count; i++) {
|
|
3355
4003
|
propPtr = properties + (i * (4 * 8));
|
|
3356
|
-
var utf8Name =
|
|
3357
|
-
var name_1 =
|
|
3358
|
-
var method =
|
|
3359
|
-
var getter =
|
|
3360
|
-
var setter =
|
|
3361
|
-
var value =
|
|
3362
|
-
attributes =
|
|
3363
|
-
|
|
4004
|
+
var utf8Name = GET_HEAP_DATA_VIEW().getUint32(propPtr, true);
|
|
4005
|
+
var name_1 = GET_HEAP_DATA_VIEW().getUint32(propPtr + 4, true);
|
|
4006
|
+
var method = GET_HEAP_DATA_VIEW().getUint32(propPtr + 8, true);
|
|
4007
|
+
var getter = GET_HEAP_DATA_VIEW().getUint32(propPtr + 12, true);
|
|
4008
|
+
var setter = GET_HEAP_DATA_VIEW().getUint32(propPtr + 16, true);
|
|
4009
|
+
var value = GET_HEAP_DATA_VIEW().getUint32(propPtr + 20, true);
|
|
4010
|
+
attributes = GET_HEAP_DATA_VIEW().getInt32(propPtr + 24, true);
|
|
4011
|
+
attributes >>>= 0;
|
|
4012
|
+
var data = GET_HEAP_DATA_VIEW().getUint32(propPtr + 28, true);
|
|
3364
4013
|
if (utf8Name) {
|
|
3365
4014
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
3366
4015
|
}
|
|
@@ -3381,7 +4030,8 @@ function createNapiModule(options) {
|
|
|
3381
4030
|
}
|
|
3382
4031
|
var valueHandle = emnapiCtx.addToCurrentScope(F);
|
|
3383
4032
|
valueHandleId = valueHandle.id;
|
|
3384
|
-
|
|
4033
|
+
result >>>= 0;
|
|
4034
|
+
GET_HEAP_DATA_VIEW().setUint32(result, valueHandleId, true);
|
|
3385
4035
|
return envObject.getReturnStatus();
|
|
3386
4036
|
}
|
|
3387
4037
|
catch (err) {
|
|
@@ -3416,6 +4066,7 @@ function createNapiModule(options) {
|
|
|
3416
4066
|
if (!(value.isObject() || value.isFunction())) {
|
|
3417
4067
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 2);
|
|
3418
4068
|
}
|
|
4069
|
+
type_tag >>>= 0;
|
|
3419
4070
|
if (!type_tag) {
|
|
3420
4071
|
return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
|
|
3421
4072
|
}
|
|
@@ -3460,6 +4111,7 @@ function createNapiModule(options) {
|
|
|
3460
4111
|
}
|
|
3461
4112
|
var binding = envObject.getObjectBinding(value.value);
|
|
3462
4113
|
if (binding.tag !== null) {
|
|
4114
|
+
type_tag >>>= 0;
|
|
3463
4115
|
var tag = binding.tag;
|
|
3464
4116
|
var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
|
|
3465
4117
|
ret = (tag[0] === typeTag[0] &&
|
|
@@ -3470,8 +4122,9 @@ function createNapiModule(options) {
|
|
|
3470
4122
|
else {
|
|
3471
4123
|
ret = false;
|
|
3472
4124
|
}
|
|
3473
|
-
|
|
3474
|
-
HEAP_DATA_VIEW.
|
|
4125
|
+
result >>>= 0;
|
|
4126
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4127
|
+
GET_HEAP_DATA_VIEW().setInt8(result, ret ? 1 : 0, true);
|
|
3475
4128
|
return envObject.getReturnStatus();
|
|
3476
4129
|
}
|
|
3477
4130
|
catch (err) {
|
|
@@ -3497,11 +4150,15 @@ function createNapiModule(options) {
|
|
|
3497
4150
|
}
|
|
3498
4151
|
var handle = handleResult.handle;
|
|
3499
4152
|
var ownership = !result ? 0 : 1;
|
|
4153
|
+
finalize_data >>>= 0;
|
|
4154
|
+
finalize_cb >>>= 0;
|
|
4155
|
+
finalize_hint >>>= 0;
|
|
3500
4156
|
var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
|
|
3501
4157
|
if (result) {
|
|
4158
|
+
result >>>= 0;
|
|
3502
4159
|
var referenceId = reference.id;
|
|
3503
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3504
|
-
|
|
4160
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4161
|
+
GET_HEAP_DATA_VIEW().setUint32(result, referenceId, true);
|
|
3505
4162
|
}
|
|
3506
4163
|
return envObject.clearLastError();
|
|
3507
4164
|
}
|
|
@@ -3537,6 +4194,9 @@ function createNapiModule(options) {
|
|
|
3537
4194
|
try {
|
|
3538
4195
|
if (!result)
|
|
3539
4196
|
return envObject.setLastError(1);
|
|
4197
|
+
byte_length >>>= 0;
|
|
4198
|
+
external_data >>>= 0;
|
|
4199
|
+
result >>>= 0;
|
|
3540
4200
|
byte_length = byte_length >>> 0;
|
|
3541
4201
|
if (!external_data) {
|
|
3542
4202
|
byte_length = 0;
|
|
@@ -3588,6 +4248,12 @@ function createNapiModule(options) {
|
|
|
3588
4248
|
case -1:
|
|
3589
4249
|
viewDescriptor = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
|
|
3590
4250
|
break;
|
|
4251
|
+
case 11:
|
|
4252
|
+
if (typeof Float16Array !== 'function') {
|
|
4253
|
+
return envObject.setLastError(1);
|
|
4254
|
+
}
|
|
4255
|
+
viewDescriptor = { Ctor: Float16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
|
|
4256
|
+
break;
|
|
3591
4257
|
case -2: {
|
|
3592
4258
|
if (!emnapiCtx.feature.Buffer) {
|
|
3593
4259
|
throw emnapiCtx.createNotSupportBufferError('emnapi_create_memory_view', '');
|
|
@@ -3599,7 +4265,7 @@ function createNapiModule(options) {
|
|
|
3599
4265
|
}
|
|
3600
4266
|
var Ctor = viewDescriptor.Ctor;
|
|
3601
4267
|
var typedArray = typedarray_type === -2
|
|
3602
|
-
?
|
|
4268
|
+
? emnapiExternalMemory.getBufferFrom()(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length)
|
|
3603
4269
|
: new Ctor(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length);
|
|
3604
4270
|
var handle = emnapiCtx.addToCurrentScope(typedArray);
|
|
3605
4271
|
emnapiExternalMemory.wasmMemoryViewTable.set(typedArray, viewDescriptor);
|
|
@@ -3615,8 +4281,8 @@ function createNapiModule(options) {
|
|
|
3615
4281
|
}
|
|
3616
4282
|
}
|
|
3617
4283
|
value = handle.id;
|
|
3618
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3619
|
-
|
|
4284
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4285
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
3620
4286
|
return envObject.getReturnStatus();
|
|
3621
4287
|
}
|
|
3622
4288
|
catch (err) {
|
|
@@ -3641,7 +4307,7 @@ function createNapiModule(options) {
|
|
|
3641
4307
|
var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
|
|
3642
4308
|
if (!pointer)
|
|
3643
4309
|
throw new Error('Unknown ArrayBuffer address');
|
|
3644
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4310
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
3645
4311
|
len = arrayBufferOrView.byteLength - offset;
|
|
3646
4312
|
}
|
|
3647
4313
|
len = len >>> 0;
|
|
@@ -3663,7 +4329,7 @@ function createNapiModule(options) {
|
|
|
3663
4329
|
var pointer = viewPointerInfo.address;
|
|
3664
4330
|
if (!pointer)
|
|
3665
4331
|
throw new Error('Unknown ArrayBuffer address');
|
|
3666
|
-
if (typeof len !== 'number' || len === -1) {
|
|
4332
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
3667
4333
|
len = latestView.byteLength - offset;
|
|
3668
4334
|
}
|
|
3669
4335
|
len = len >>> 0;
|
|
@@ -3695,16 +4361,20 @@ function createNapiModule(options) {
|
|
|
3695
4361
|
try {
|
|
3696
4362
|
if (!arraybuffer_or_view)
|
|
3697
4363
|
return envObject.setLastError(1);
|
|
3698
|
-
|
|
3699
|
-
|
|
4364
|
+
arraybuffer_or_view >>>= 0;
|
|
4365
|
+
offset >>>= 0;
|
|
4366
|
+
len >>>= 0;
|
|
4367
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4368
|
+
var handleId = GET_HEAP_DATA_VIEW().getUint32(arraybuffer_or_view, true);
|
|
3700
4369
|
var handle = envObject.ctx.handleStore.get(handleId);
|
|
3701
4370
|
if (!handle.isArrayBuffer() && !handle.isTypedArray() && !handle.isDataView() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
|
|
3702
4371
|
return envObject.setLastError(1);
|
|
3703
4372
|
}
|
|
3704
4373
|
var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
|
|
3705
4374
|
if (handle.value !== ret) {
|
|
4375
|
+
arraybuffer_or_view >>>= 0;
|
|
3706
4376
|
v = envObject.ensureHandleId(ret);
|
|
3707
|
-
|
|
4377
|
+
GET_HEAP_DATA_VIEW().setUint32(arraybuffer_or_view, v, true);
|
|
3708
4378
|
}
|
|
3709
4379
|
return envObject.getReturnStatus();
|
|
3710
4380
|
}
|
|
@@ -3754,17 +4424,20 @@ function createNapiModule(options) {
|
|
|
3754
4424
|
var handle = envObject.ctx.handleStore.get(arraybuffer_or_view);
|
|
3755
4425
|
info = $emnapiGetMemoryAddress(handle.value);
|
|
3756
4426
|
p = info.address;
|
|
3757
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4427
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
3758
4428
|
if (address) {
|
|
3759
|
-
|
|
4429
|
+
address >>>= 0;
|
|
4430
|
+
GET_HEAP_DATA_VIEW().setUint32(address, p, true);
|
|
3760
4431
|
}
|
|
3761
4432
|
if (ownership) {
|
|
4433
|
+
ownership >>>= 0;
|
|
3762
4434
|
ownershipOut = info.ownership;
|
|
3763
|
-
|
|
4435
|
+
GET_HEAP_DATA_VIEW().setInt32(ownership, ownershipOut, true);
|
|
3764
4436
|
}
|
|
3765
4437
|
if (runtime_allocated) {
|
|
4438
|
+
runtime_allocated >>>= 0;
|
|
3766
4439
|
runtimeAllocated = info.runtimeAllocated;
|
|
3767
|
-
|
|
4440
|
+
GET_HEAP_DATA_VIEW().setInt8(runtime_allocated, runtimeAllocated, true);
|
|
3768
4441
|
}
|
|
3769
4442
|
return envObject.getReturnStatus();
|
|
3770
4443
|
}
|
|
@@ -3788,22 +4461,102 @@ function createNapiModule(options) {
|
|
|
3788
4461
|
}
|
|
3789
4462
|
var versions = runtimeVersion.split('.')
|
|
3790
4463
|
.map(function (n) { return Number(n); });
|
|
3791
|
-
|
|
3792
|
-
HEAP_DATA_VIEW.
|
|
3793
|
-
|
|
3794
|
-
|
|
4464
|
+
version >>>= 0;
|
|
4465
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4466
|
+
GET_HEAP_DATA_VIEW().setUint32(version, versions[0], true);
|
|
4467
|
+
GET_HEAP_DATA_VIEW().setUint32(version + 4, versions[1], true);
|
|
4468
|
+
GET_HEAP_DATA_VIEW().setUint32(version + 8, versions[2], true);
|
|
3795
4469
|
return envObject.clearLastError();
|
|
3796
4470
|
}
|
|
4471
|
+
function emnapi_get_external_sharedarraybuffer_handle(env, sharedarraybuffer, handle) {
|
|
4472
|
+
if (!env)
|
|
4473
|
+
return 1;
|
|
4474
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4475
|
+
envObject.checkGCAccess();
|
|
4476
|
+
if (!envObject.tryCatch.isEmpty())
|
|
4477
|
+
return envObject.setLastError(10);
|
|
4478
|
+
if (!envObject.canCallIntoJs())
|
|
4479
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
|
|
4480
|
+
envObject.clearLastError();
|
|
4481
|
+
try {
|
|
4482
|
+
if (!sharedarraybuffer)
|
|
4483
|
+
return envObject.setLastError(1);
|
|
4484
|
+
if (!handle)
|
|
4485
|
+
return envObject.setLastError(1);
|
|
4486
|
+
handle >>>= 0;
|
|
4487
|
+
var jsValue = emnapiCtx.handleStore.get(sharedarraybuffer).value;
|
|
4488
|
+
if (!emnapiExternalMemory.isSharedArrayBuffer(jsValue)) {
|
|
4489
|
+
return envObject.setLastError(1);
|
|
4490
|
+
}
|
|
4491
|
+
var metaPtr = emnapiExternalSAB.handleTable.get(jsValue);
|
|
4492
|
+
if (metaPtr === undefined) {
|
|
4493
|
+
return envObject.setLastError(1);
|
|
4494
|
+
}
|
|
4495
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4496
|
+
GET_HEAP_DATA_VIEW().setUint32(handle, metaPtr, true);
|
|
4497
|
+
return envObject.getReturnStatus();
|
|
4498
|
+
}
|
|
4499
|
+
catch (err) {
|
|
4500
|
+
envObject.tryCatch.setError(err);
|
|
4501
|
+
return envObject.setLastError(10);
|
|
4502
|
+
}
|
|
4503
|
+
}
|
|
4504
|
+
function emnapi_acquire_external_sharedarraybuffer(handle) {
|
|
4505
|
+
handle >>>= 0;
|
|
4506
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, handle, 1), 0, 1);
|
|
4507
|
+
}
|
|
4508
|
+
function emnapi_release_external_sharedarraybuffer(handle) {
|
|
4509
|
+
handle >>>= 0;
|
|
4510
|
+
emnapiExternalSAB.release(handle);
|
|
4511
|
+
}
|
|
4512
|
+
function $emnapiAcquireExternalSharedArrayBuffer(handle, sab) {
|
|
4513
|
+
if (sab != null && !emnapiExternalMemory.isSharedArrayBuffer(sab)) {
|
|
4514
|
+
throw new TypeError('Expected a SharedArrayBuffer');
|
|
4515
|
+
}
|
|
4516
|
+
if (!emnapiExternalSAB.registry) {
|
|
4517
|
+
throw new Error('FinalizationRegistry is not supported in this environment');
|
|
4518
|
+
}
|
|
4519
|
+
handle >>>= 0;
|
|
4520
|
+
var meta = emnapiExternalSAB.readMeta(handle);
|
|
4521
|
+
var external_data = meta.external_data;
|
|
4522
|
+
external_data >>>= 0;
|
|
4523
|
+
if (sab == null) {
|
|
4524
|
+
sab = new SharedArrayBuffer(meta.byte_length);
|
|
4525
|
+
new Uint8Array(sab).set(new Uint8Array(wasmMemory.buffer, external_data, meta.byte_length));
|
|
4526
|
+
}
|
|
4527
|
+
else {
|
|
4528
|
+
if (emnapiExternalSAB.handleTable.has(sab)) {
|
|
4529
|
+
return sab;
|
|
4530
|
+
}
|
|
4531
|
+
}
|
|
4532
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, handle, 1), 0, 1);
|
|
4533
|
+
if (!emnapiExternalMemory.table.has(sab)) {
|
|
4534
|
+
if (external_data) {
|
|
4535
|
+
emnapiExternalMemory.table.set(sab, {
|
|
4536
|
+
address: external_data,
|
|
4537
|
+
ownership: 1,
|
|
4538
|
+
runtimeAllocated: 0
|
|
4539
|
+
});
|
|
4540
|
+
}
|
|
4541
|
+
}
|
|
4542
|
+
emnapiExternalSAB.handleTable.set(sab, handle);
|
|
4543
|
+
emnapiExternalSAB.registry.register(sab, handle);
|
|
4544
|
+
return sab;
|
|
4545
|
+
}
|
|
3797
4546
|
var emnapiMod = Object.freeze({
|
|
3798
4547
|
__proto__: null,
|
|
4548
|
+
$emnapiAcquireExternalSharedArrayBuffer: $emnapiAcquireExternalSharedArrayBuffer,
|
|
3799
4549
|
$emnapiGetMemoryAddress: $emnapiGetMemoryAddress,
|
|
3800
4550
|
$emnapiSyncMemory: $emnapiSyncMemory,
|
|
4551
|
+
emnapi_acquire_external_sharedarraybuffer: emnapi_acquire_external_sharedarraybuffer,
|
|
3801
4552
|
emnapi_create_memory_view: emnapi_create_memory_view,
|
|
4553
|
+
emnapi_get_external_sharedarraybuffer_handle: emnapi_get_external_sharedarraybuffer_handle,
|
|
3802
4554
|
emnapi_get_memory_address: emnapi_get_memory_address,
|
|
3803
4555
|
emnapi_get_runtime_version: emnapi_get_runtime_version,
|
|
3804
4556
|
emnapi_is_node_binding_available: emnapi_is_node_binding_available,
|
|
3805
4557
|
emnapi_is_support_bigint: emnapi_is_support_bigint,
|
|
3806
4558
|
emnapi_is_support_weakref: emnapi_is_support_weakref,
|
|
4559
|
+
emnapi_release_external_sharedarraybuffer: emnapi_release_external_sharedarraybuffer,
|
|
3807
4560
|
emnapi_sync_memory: emnapi_sync_memory
|
|
3808
4561
|
});
|
|
3809
4562
|
function napi_create_array(env, result) {
|
|
@@ -3813,9 +4566,10 @@ function createNapiModule(options) {
|
|
|
3813
4566
|
envObject.checkGCAccess();
|
|
3814
4567
|
if (!result)
|
|
3815
4568
|
return envObject.setLastError(1);
|
|
4569
|
+
result >>>= 0;
|
|
3816
4570
|
var value = emnapiCtx.addToCurrentScope([]).id;
|
|
3817
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3818
|
-
|
|
4571
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4572
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
3819
4573
|
return envObject.clearLastError();
|
|
3820
4574
|
}
|
|
3821
4575
|
function napi_create_array_with_length(env, length, result) {
|
|
@@ -3825,19 +4579,23 @@ function createNapiModule(options) {
|
|
|
3825
4579
|
envObject.checkGCAccess();
|
|
3826
4580
|
if (!result)
|
|
3827
4581
|
return envObject.setLastError(1);
|
|
4582
|
+
length >>>= 0;
|
|
4583
|
+
result >>>= 0;
|
|
3828
4584
|
length = length >>> 0;
|
|
3829
4585
|
var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
|
|
3830
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3831
|
-
|
|
4586
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4587
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
3832
4588
|
return envObject.clearLastError();
|
|
3833
4589
|
}
|
|
3834
4590
|
function emnapiCreateArrayBuffer(byte_length, data, shared) {
|
|
4591
|
+
byte_length >>>= 0;
|
|
3835
4592
|
byte_length = byte_length >>> 0;
|
|
3836
4593
|
var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
|
|
3837
4594
|
if (data) {
|
|
4595
|
+
data >>>= 0;
|
|
3838
4596
|
var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
|
|
3839
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3840
|
-
|
|
4597
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4598
|
+
GET_HEAP_DATA_VIEW().setUint32(data, p, true);
|
|
3841
4599
|
}
|
|
3842
4600
|
return arrayBuffer;
|
|
3843
4601
|
}
|
|
@@ -3855,10 +4613,11 @@ function createNapiModule(options) {
|
|
|
3855
4613
|
try {
|
|
3856
4614
|
if (!result)
|
|
3857
4615
|
return envObject.setLastError(1);
|
|
4616
|
+
result >>>= 0;
|
|
3858
4617
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
|
|
3859
4618
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
3860
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3861
|
-
|
|
4619
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4620
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
3862
4621
|
return envObject.getReturnStatus();
|
|
3863
4622
|
}
|
|
3864
4623
|
catch (err) {
|
|
@@ -3880,10 +4639,11 @@ function createNapiModule(options) {
|
|
|
3880
4639
|
try {
|
|
3881
4640
|
if (!result)
|
|
3882
4641
|
return envObject.setLastError(1);
|
|
4642
|
+
result >>>= 0;
|
|
3883
4643
|
var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
|
|
3884
4644
|
value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
|
|
3885
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3886
|
-
|
|
4645
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4646
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
3887
4647
|
return envObject.getReturnStatus();
|
|
3888
4648
|
}
|
|
3889
4649
|
catch (err) {
|
|
@@ -3905,9 +4665,10 @@ function createNapiModule(options) {
|
|
|
3905
4665
|
try {
|
|
3906
4666
|
if (!result)
|
|
3907
4667
|
return envObject.setLastError(1);
|
|
4668
|
+
result >>>= 0;
|
|
3908
4669
|
value = emnapiCtx.addToCurrentScope(new Date(time)).id;
|
|
3909
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3910
|
-
|
|
4670
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4671
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
3911
4672
|
return envObject.getReturnStatus();
|
|
3912
4673
|
}
|
|
3913
4674
|
catch (err) {
|
|
@@ -3936,9 +4697,10 @@ function createNapiModule(options) {
|
|
|
3936
4697
|
if (finalize_cb) {
|
|
3937
4698
|
emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0, finalize_cb, data, finalize_hint);
|
|
3938
4699
|
}
|
|
4700
|
+
result >>>= 0;
|
|
3939
4701
|
value = externalHandle.id;
|
|
3940
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
3941
|
-
|
|
4702
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4703
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
3942
4704
|
return envObject.clearLastError();
|
|
3943
4705
|
}
|
|
3944
4706
|
catch (err) {
|
|
@@ -3960,6 +4722,9 @@ function createNapiModule(options) {
|
|
|
3960
4722
|
try {
|
|
3961
4723
|
if (!result)
|
|
3962
4724
|
return envObject.setLastError(1);
|
|
4725
|
+
byte_length >>>= 0;
|
|
4726
|
+
external_data >>>= 0;
|
|
4727
|
+
result >>>= 0;
|
|
3963
4728
|
byte_length = byte_length >>> 0;
|
|
3964
4729
|
if (!external_data) {
|
|
3965
4730
|
byte_length = 0;
|
|
@@ -4001,8 +4766,62 @@ function createNapiModule(options) {
|
|
|
4001
4766
|
}
|
|
4002
4767
|
}
|
|
4003
4768
|
value = handle.id;
|
|
4004
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4005
|
-
|
|
4769
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4770
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4771
|
+
return envObject.getReturnStatus();
|
|
4772
|
+
}
|
|
4773
|
+
catch (err) {
|
|
4774
|
+
envObject.tryCatch.setError(err);
|
|
4775
|
+
return envObject.setLastError(10);
|
|
4776
|
+
}
|
|
4777
|
+
}
|
|
4778
|
+
function node_api_create_external_sharedarraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result) {
|
|
4779
|
+
var value;
|
|
4780
|
+
if (!env)
|
|
4781
|
+
return 1;
|
|
4782
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4783
|
+
envObject.checkGCAccess();
|
|
4784
|
+
if (!envObject.tryCatch.isEmpty())
|
|
4785
|
+
return envObject.setLastError(10);
|
|
4786
|
+
if (!envObject.canCallIntoJs())
|
|
4787
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
|
|
4788
|
+
envObject.clearLastError();
|
|
4789
|
+
try {
|
|
4790
|
+
if (!result)
|
|
4791
|
+
return envObject.setLastError(1);
|
|
4792
|
+
byte_length >>>= 0;
|
|
4793
|
+
external_data >>>= 0;
|
|
4794
|
+
result >>>= 0;
|
|
4795
|
+
byte_length = byte_length >>> 0;
|
|
4796
|
+
if (!external_data) {
|
|
4797
|
+
byte_length = 0;
|
|
4798
|
+
}
|
|
4799
|
+
if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
|
|
4800
|
+
throw new RangeError('Memory out of range');
|
|
4801
|
+
}
|
|
4802
|
+
if (!emnapiExternalSAB.registry && finalize_cb) {
|
|
4803
|
+
throw emnapiCtx.createNotSupportWeakRefError('node_api_create_external_sharedarraybuffer', 'Parameter "finalize_cb" must be 0(NULL)');
|
|
4804
|
+
}
|
|
4805
|
+
var sharedArrayBuffer = new SharedArrayBuffer(byte_length);
|
|
4806
|
+
if (byte_length !== 0) {
|
|
4807
|
+
var u8arr = new Uint8Array(sharedArrayBuffer);
|
|
4808
|
+
u8arr.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
|
|
4809
|
+
emnapiExternalMemory.table.set(sharedArrayBuffer, {
|
|
4810
|
+
address: external_data,
|
|
4811
|
+
ownership: 1,
|
|
4812
|
+
runtimeAllocated: 0
|
|
4813
|
+
});
|
|
4814
|
+
}
|
|
4815
|
+
value = emnapiCtx.addToCurrentScope(sharedArrayBuffer).id;
|
|
4816
|
+
if (finalize_cb) {
|
|
4817
|
+
finalize_cb >>>= 0;
|
|
4818
|
+
finalize_hint >>>= 0;
|
|
4819
|
+
var metaPtr = emnapiExternalSAB.allocMeta(external_data, byte_length, finalize_cb, external_data, finalize_hint);
|
|
4820
|
+
emnapiExternalSAB.handleTable.set(sharedArrayBuffer, metaPtr);
|
|
4821
|
+
emnapiExternalSAB.registry.register(sharedArrayBuffer, metaPtr);
|
|
4822
|
+
}
|
|
4823
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4824
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4006
4825
|
return envObject.getReturnStatus();
|
|
4007
4826
|
}
|
|
4008
4827
|
catch (err) {
|
|
@@ -4017,18 +4836,20 @@ function createNapiModule(options) {
|
|
|
4017
4836
|
envObject.checkGCAccess();
|
|
4018
4837
|
if (!result)
|
|
4019
4838
|
return envObject.setLastError(1);
|
|
4839
|
+
result >>>= 0;
|
|
4020
4840
|
var value = emnapiCtx.addToCurrentScope({}).id;
|
|
4021
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4022
|
-
|
|
4841
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4842
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4023
4843
|
return envObject.clearLastError();
|
|
4024
4844
|
}
|
|
4025
|
-
function
|
|
4845
|
+
function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
|
|
4026
4846
|
if (!env)
|
|
4027
4847
|
return 1;
|
|
4028
4848
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4029
4849
|
envObject.checkGCAccess();
|
|
4030
4850
|
if (!result)
|
|
4031
4851
|
return envObject.setLastError(1);
|
|
4852
|
+
property_count >>>= 0;
|
|
4032
4853
|
property_count = property_count >>> 0;
|
|
4033
4854
|
if (property_count > 0) {
|
|
4034
4855
|
if (!property_names)
|
|
@@ -4040,13 +4861,15 @@ function createNapiModule(options) {
|
|
|
4040
4861
|
? emnapiCtx.handleStore.get(prototype_or_null).value
|
|
4041
4862
|
: null;
|
|
4042
4863
|
var properties = {};
|
|
4043
|
-
|
|
4864
|
+
property_names >>>= 0;
|
|
4865
|
+
property_values >>>= 0;
|
|
4866
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4044
4867
|
for (var i = 0; i < property_count; i++) {
|
|
4045
|
-
var name_value = emnapiCtx.handleStore.get(
|
|
4868
|
+
var name_value = emnapiCtx.handleStore.get(GET_HEAP_DATA_VIEW().getUint32(property_names + i * 4, true)).value;
|
|
4046
4869
|
if (!(typeof name_value === "string" || typeof name_value === "symbol"))
|
|
4047
4870
|
return envObject.setLastError(4);
|
|
4048
4871
|
properties[name_value] = {
|
|
4049
|
-
value: emnapiCtx.handleStore.get(
|
|
4872
|
+
value: emnapiCtx.handleStore.get(GET_HEAP_DATA_VIEW().getUint32(property_values + i * 4, true)).value,
|
|
4050
4873
|
writable: true,
|
|
4051
4874
|
enumerable: true,
|
|
4052
4875
|
configurable: true
|
|
@@ -4060,7 +4883,8 @@ function createNapiModule(options) {
|
|
|
4060
4883
|
return envObject.setLastError(9);
|
|
4061
4884
|
}
|
|
4062
4885
|
var value = emnapiCtx.addToCurrentScope(obj).id;
|
|
4063
|
-
|
|
4886
|
+
result >>>= 0;
|
|
4887
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4064
4888
|
return envObject.clearLastError();
|
|
4065
4889
|
}
|
|
4066
4890
|
function napi_create_symbol(env, description, result) {
|
|
@@ -4070,10 +4894,11 @@ function createNapiModule(options) {
|
|
|
4070
4894
|
envObject.checkGCAccess();
|
|
4071
4895
|
if (!result)
|
|
4072
4896
|
return envObject.setLastError(1);
|
|
4073
|
-
|
|
4897
|
+
result >>>= 0;
|
|
4898
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4074
4899
|
if (!description) {
|
|
4075
4900
|
var value = emnapiCtx.addToCurrentScope(Symbol()).id;
|
|
4076
|
-
|
|
4901
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4077
4902
|
}
|
|
4078
4903
|
else {
|
|
4079
4904
|
var handle = emnapiCtx.handleStore.get(description);
|
|
@@ -4082,7 +4907,7 @@ function createNapiModule(options) {
|
|
|
4082
4907
|
return envObject.setLastError(3);
|
|
4083
4908
|
}
|
|
4084
4909
|
var v = emnapiCtx.addToCurrentScope(Symbol(desc)).id;
|
|
4085
|
-
|
|
4910
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
4086
4911
|
}
|
|
4087
4912
|
return envObject.clearLastError();
|
|
4088
4913
|
}
|
|
@@ -4103,10 +4928,9 @@ function createNapiModule(options) {
|
|
|
4103
4928
|
if (!result)
|
|
4104
4929
|
return envObject.setLastError(1);
|
|
4105
4930
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
4106
|
-
if (!handle.isArrayBuffer()) {
|
|
4107
|
-
return envObject.setLastError(1);
|
|
4108
|
-
}
|
|
4109
4931
|
var buffer = handle.value;
|
|
4932
|
+
byte_offset >>>= 0;
|
|
4933
|
+
length >>>= 0;
|
|
4110
4934
|
var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
|
|
4111
4935
|
var _a;
|
|
4112
4936
|
byte_offset = byte_offset >>> 0;
|
|
@@ -4137,36 +4961,47 @@ function createNapiModule(options) {
|
|
|
4137
4961
|
});
|
|
4138
4962
|
}
|
|
4139
4963
|
}
|
|
4964
|
+
result >>>= 0;
|
|
4140
4965
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4141
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4142
|
-
|
|
4966
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4967
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4143
4968
|
return envObject.getReturnStatus();
|
|
4144
4969
|
};
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4970
|
+
if (buffer instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(buffer)) {
|
|
4971
|
+
switch (type) {
|
|
4972
|
+
case 0:
|
|
4973
|
+
return createTypedArray(envObject, Int8Array, 1, buffer, byte_offset, length);
|
|
4974
|
+
case 1:
|
|
4975
|
+
return createTypedArray(envObject, Uint8Array, 1, buffer, byte_offset, length);
|
|
4976
|
+
case 2:
|
|
4977
|
+
return createTypedArray(envObject, Uint8ClampedArray, 1, buffer, byte_offset, length);
|
|
4978
|
+
case 3:
|
|
4979
|
+
return createTypedArray(envObject, Int16Array, 2, buffer, byte_offset, length);
|
|
4980
|
+
case 4:
|
|
4981
|
+
return createTypedArray(envObject, Uint16Array, 2, buffer, byte_offset, length);
|
|
4982
|
+
case 5:
|
|
4983
|
+
return createTypedArray(envObject, Int32Array, 4, buffer, byte_offset, length);
|
|
4984
|
+
case 6:
|
|
4985
|
+
return createTypedArray(envObject, Uint32Array, 4, buffer, byte_offset, length);
|
|
4986
|
+
case 7:
|
|
4987
|
+
return createTypedArray(envObject, Float32Array, 4, buffer, byte_offset, length);
|
|
4988
|
+
case 8:
|
|
4989
|
+
return createTypedArray(envObject, Float64Array, 8, buffer, byte_offset, length);
|
|
4990
|
+
case 9:
|
|
4991
|
+
return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
|
|
4992
|
+
case 10:
|
|
4993
|
+
return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
|
|
4994
|
+
case 11:
|
|
4995
|
+
if (typeof Float16Array !== 'function') {
|
|
4996
|
+
return envObject.setLastError(1);
|
|
4997
|
+
}
|
|
4998
|
+
return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
|
|
4999
|
+
default:
|
|
5000
|
+
return envObject.setLastError(1);
|
|
5001
|
+
}
|
|
5002
|
+
}
|
|
5003
|
+
else {
|
|
5004
|
+
return envObject.setLastError(1);
|
|
4170
5005
|
}
|
|
4171
5006
|
}
|
|
4172
5007
|
catch (err) {
|
|
@@ -4193,20 +5028,23 @@ function createNapiModule(options) {
|
|
|
4193
5028
|
if (!Buffer) {
|
|
4194
5029
|
throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
|
|
4195
5030
|
}
|
|
5031
|
+
result >>>= 0;
|
|
4196
5032
|
var buffer = void 0;
|
|
5033
|
+
size >>>= 0;
|
|
4197
5034
|
size = size >>> 0;
|
|
4198
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5035
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4199
5036
|
if (!data || (size === 0)) {
|
|
4200
5037
|
buffer = Buffer.alloc(size);
|
|
4201
5038
|
value = emnapiCtx.addToCurrentScope(buffer).id;
|
|
4202
|
-
|
|
5039
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4203
5040
|
}
|
|
4204
5041
|
else {
|
|
4205
5042
|
pointer = _malloc(size);
|
|
4206
5043
|
if (!pointer)
|
|
4207
5044
|
throw new Error('Out of memory');
|
|
5045
|
+
pointer >>>= 0;
|
|
4208
5046
|
new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
|
|
4209
|
-
var buffer_1 =
|
|
5047
|
+
var buffer_1 = emnapiExternalMemory.getBufferFrom()(wasmMemory.buffer, pointer, size);
|
|
4210
5048
|
var viewDescriptor = {
|
|
4211
5049
|
Ctor: Buffer,
|
|
4212
5050
|
address: pointer,
|
|
@@ -4217,8 +5055,9 @@ function createNapiModule(options) {
|
|
|
4217
5055
|
emnapiExternalMemory.wasmMemoryViewTable.set(buffer_1, viewDescriptor);
|
|
4218
5056
|
(_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
|
|
4219
5057
|
value = emnapiCtx.addToCurrentScope(buffer_1).id;
|
|
4220
|
-
|
|
4221
|
-
|
|
5058
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
5059
|
+
data >>>= 0;
|
|
5060
|
+
GET_HEAP_DATA_VIEW().setUint32(data, pointer, true);
|
|
4222
5061
|
}
|
|
4223
5062
|
return envObject.getReturnStatus();
|
|
4224
5063
|
}
|
|
@@ -4247,10 +5086,13 @@ function createNapiModule(options) {
|
|
|
4247
5086
|
}
|
|
4248
5087
|
var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
|
|
4249
5088
|
var buffer = Buffer.from(arrayBuffer);
|
|
5089
|
+
data >>>= 0;
|
|
5090
|
+
length >>>= 0;
|
|
4250
5091
|
buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
|
|
4251
5092
|
value = emnapiCtx.addToCurrentScope(buffer).id;
|
|
4252
|
-
|
|
4253
|
-
HEAP_DATA_VIEW.
|
|
5093
|
+
result >>>= 0;
|
|
5094
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5095
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4254
5096
|
return envObject.getReturnStatus();
|
|
4255
5097
|
}
|
|
4256
5098
|
catch (err) {
|
|
@@ -4277,6 +5119,8 @@ function createNapiModule(options) {
|
|
|
4277
5119
|
return envObject.setLastError(1);
|
|
4278
5120
|
if (!result)
|
|
4279
5121
|
return envObject.setLastError(1);
|
|
5122
|
+
byte_offset >>>= 0;
|
|
5123
|
+
byte_length >>>= 0;
|
|
4280
5124
|
byte_offset = byte_offset >>> 0;
|
|
4281
5125
|
byte_length = byte_length >>> 0;
|
|
4282
5126
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
@@ -4293,7 +5137,7 @@ function createNapiModule(options) {
|
|
|
4293
5137
|
if (!Buffer) {
|
|
4294
5138
|
throw emnapiCtx.createNotSupportBufferError('node_api_create_buffer_from_arraybuffer', '');
|
|
4295
5139
|
}
|
|
4296
|
-
var out =
|
|
5140
|
+
var out = emnapiExternalMemory.getBufferFrom()(buffer, byte_offset, byte_length);
|
|
4297
5141
|
if (buffer === wasmMemory.buffer) {
|
|
4298
5142
|
if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
|
|
4299
5143
|
emnapiExternalMemory.wasmMemoryViewTable.set(out, {
|
|
@@ -4305,9 +5149,10 @@ function createNapiModule(options) {
|
|
|
4305
5149
|
});
|
|
4306
5150
|
}
|
|
4307
5151
|
}
|
|
5152
|
+
result >>>= 0;
|
|
4308
5153
|
value = emnapiCtx.addToCurrentScope(out).id;
|
|
4309
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4310
|
-
|
|
5154
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5155
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4311
5156
|
return envObject.getReturnStatus();
|
|
4312
5157
|
}
|
|
4313
5158
|
catch (err) {
|
|
@@ -4330,6 +5175,8 @@ function createNapiModule(options) {
|
|
|
4330
5175
|
return envObject.setLastError(1);
|
|
4331
5176
|
if (!result)
|
|
4332
5177
|
return envObject.setLastError(1);
|
|
5178
|
+
byte_length >>>= 0;
|
|
5179
|
+
byte_offset >>>= 0;
|
|
4333
5180
|
byte_length = byte_length >>> 0;
|
|
4334
5181
|
byte_offset = byte_offset >>> 0;
|
|
4335
5182
|
var value = emnapiCtx.handleStore.get(arraybuffer).value;
|
|
@@ -4351,9 +5198,10 @@ function createNapiModule(options) {
|
|
|
4351
5198
|
});
|
|
4352
5199
|
}
|
|
4353
5200
|
}
|
|
5201
|
+
result >>>= 0;
|
|
4354
5202
|
var v = emnapiCtx.addToCurrentScope(dataview).id;
|
|
4355
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4356
|
-
|
|
5203
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5204
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
4357
5205
|
return envObject.getReturnStatus();
|
|
4358
5206
|
};
|
|
4359
5207
|
if (value instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(value)) {
|
|
@@ -4375,7 +5223,10 @@ function createNapiModule(options) {
|
|
|
4375
5223
|
envObject.checkGCAccess();
|
|
4376
5224
|
if (!result)
|
|
4377
5225
|
return envObject.setLastError(1);
|
|
4378
|
-
|
|
5226
|
+
length >>>= 0;
|
|
5227
|
+
utf8description >>>= 0;
|
|
5228
|
+
result >>>= 0;
|
|
5229
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
4379
5230
|
var sizelength = length >>> 0;
|
|
4380
5231
|
if (length !== 0) {
|
|
4381
5232
|
if (!utf8description)
|
|
@@ -4386,8 +5237,8 @@ function createNapiModule(options) {
|
|
|
4386
5237
|
}
|
|
4387
5238
|
var descriptionString = emnapiString.UTF8ToString(utf8description, length);
|
|
4388
5239
|
var value = emnapiCtx.addToCurrentScope(Symbol.for(descriptionString)).id;
|
|
4389
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4390
|
-
|
|
5240
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5241
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4391
5242
|
return envObject.clearLastError();
|
|
4392
5243
|
}
|
|
4393
5244
|
var createMod = Object.freeze({
|
|
@@ -4403,10 +5254,11 @@ function createNapiModule(options) {
|
|
|
4403
5254
|
napi_create_external_arraybuffer: napi_create_external_arraybuffer,
|
|
4404
5255
|
napi_create_external_buffer: napi_create_external_buffer,
|
|
4405
5256
|
napi_create_object: napi_create_object,
|
|
4406
|
-
napi_create_object_with_properties: napi_create_object_with_properties,
|
|
4407
5257
|
napi_create_symbol: napi_create_symbol,
|
|
4408
5258
|
napi_create_typedarray: napi_create_typedarray,
|
|
4409
5259
|
node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
|
|
5260
|
+
node_api_create_external_sharedarraybuffer: node_api_create_external_sharedarraybuffer,
|
|
5261
|
+
node_api_create_object_with_properties: node_api_create_object_with_properties,
|
|
4410
5262
|
node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
|
|
4411
5263
|
node_api_symbol_for: node_api_symbol_for
|
|
4412
5264
|
});
|
|
@@ -4417,9 +5269,10 @@ function createNapiModule(options) {
|
|
|
4417
5269
|
envObject.checkGCAccess();
|
|
4418
5270
|
if (!result)
|
|
4419
5271
|
return envObject.setLastError(1);
|
|
5272
|
+
result >>>= 0;
|
|
4420
5273
|
var v = value === 0 ? 3 : 4;
|
|
4421
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4422
|
-
|
|
5274
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5275
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
4423
5276
|
return envObject.clearLastError();
|
|
4424
5277
|
}
|
|
4425
5278
|
function napi_get_global(env, result) {
|
|
@@ -4429,9 +5282,10 @@ function createNapiModule(options) {
|
|
|
4429
5282
|
envObject.checkGCAccess();
|
|
4430
5283
|
if (!result)
|
|
4431
5284
|
return envObject.setLastError(1);
|
|
5285
|
+
result >>>= 0;
|
|
4432
5286
|
var value = 5;
|
|
4433
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4434
|
-
|
|
5287
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5288
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4435
5289
|
return envObject.clearLastError();
|
|
4436
5290
|
}
|
|
4437
5291
|
function napi_get_null(env, result) {
|
|
@@ -4441,9 +5295,10 @@ function createNapiModule(options) {
|
|
|
4441
5295
|
envObject.checkGCAccess();
|
|
4442
5296
|
if (!result)
|
|
4443
5297
|
return envObject.setLastError(1);
|
|
5298
|
+
result >>>= 0;
|
|
4444
5299
|
var value = 2;
|
|
4445
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4446
|
-
|
|
5300
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5301
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4447
5302
|
return envObject.clearLastError();
|
|
4448
5303
|
}
|
|
4449
5304
|
function napi_get_undefined(env, result) {
|
|
@@ -4453,9 +5308,10 @@ function createNapiModule(options) {
|
|
|
4453
5308
|
envObject.checkGCAccess();
|
|
4454
5309
|
if (!result)
|
|
4455
5310
|
return envObject.setLastError(1);
|
|
5311
|
+
result >>>= 0;
|
|
4456
5312
|
var value = 1;
|
|
4457
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4458
|
-
|
|
5313
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5314
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4459
5315
|
return envObject.clearLastError();
|
|
4460
5316
|
}
|
|
4461
5317
|
var globalMod = Object.freeze({
|
|
@@ -4469,6 +5325,9 @@ function createNapiModule(options) {
|
|
|
4469
5325
|
if (!env)
|
|
4470
5326
|
return 1;
|
|
4471
5327
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5328
|
+
data >>>= 0;
|
|
5329
|
+
finalize_cb >>>= 0;
|
|
5330
|
+
finalize_hint >>>= 0;
|
|
4472
5331
|
envObject.setInstanceData(data, finalize_cb, finalize_hint);
|
|
4473
5332
|
return envObject.clearLastError();
|
|
4474
5333
|
}
|
|
@@ -4478,9 +5337,10 @@ function createNapiModule(options) {
|
|
|
4478
5337
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4479
5338
|
if (!data)
|
|
4480
5339
|
return envObject.setLastError(1);
|
|
5340
|
+
data >>>= 0;
|
|
4481
5341
|
var value = envObject.getInstanceData();
|
|
4482
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4483
|
-
|
|
5342
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5343
|
+
GET_HEAP_DATA_VIEW().setUint32(data, value, true);
|
|
4484
5344
|
return envObject.clearLastError();
|
|
4485
5345
|
}
|
|
4486
5346
|
var envMod = Object.freeze({
|
|
@@ -4489,15 +5349,19 @@ function createNapiModule(options) {
|
|
|
4489
5349
|
napi_set_instance_data: napi_set_instance_data
|
|
4490
5350
|
});
|
|
4491
5351
|
function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
|
|
5352
|
+
error_code >>>= 0;
|
|
5353
|
+
engine_error_code >>>= 0;
|
|
5354
|
+
engine_reserved >>>= 0;
|
|
4492
5355
|
var envObject = emnapiCtx.envStore.get(env);
|
|
4493
5356
|
var lastError = envObject.lastError;
|
|
4494
5357
|
var errorCode = lastError.errorCode;
|
|
4495
5358
|
var engineErrorCode = lastError.engineErrorCode >>> 0;
|
|
4496
5359
|
var engineReserved = lastError.engineReserved;
|
|
4497
|
-
|
|
4498
|
-
HEAP_DATA_VIEW.
|
|
4499
|
-
|
|
4500
|
-
|
|
5360
|
+
engineReserved >>>= 0;
|
|
5361
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5362
|
+
GET_HEAP_DATA_VIEW().setInt32(error_code, errorCode, true);
|
|
5363
|
+
GET_HEAP_DATA_VIEW().setUint32(engine_error_code, engineErrorCode, true);
|
|
5364
|
+
GET_HEAP_DATA_VIEW().setUint32(engine_reserved, engineReserved, true);
|
|
4501
5365
|
}
|
|
4502
5366
|
function napi_throw(env, error) {
|
|
4503
5367
|
if (!env)
|
|
@@ -4533,6 +5397,8 @@ function createNapiModule(options) {
|
|
|
4533
5397
|
try {
|
|
4534
5398
|
if (!msg)
|
|
4535
5399
|
return envObject.setLastError(1);
|
|
5400
|
+
code >>>= 0;
|
|
5401
|
+
msg >>>= 0;
|
|
4536
5402
|
var error = new Error(emnapiString.UTF8ToString(msg, -1));
|
|
4537
5403
|
if (code)
|
|
4538
5404
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4557,6 +5423,8 @@ function createNapiModule(options) {
|
|
|
4557
5423
|
try {
|
|
4558
5424
|
if (!msg)
|
|
4559
5425
|
return envObject.setLastError(1);
|
|
5426
|
+
code >>>= 0;
|
|
5427
|
+
msg >>>= 0;
|
|
4560
5428
|
var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
|
|
4561
5429
|
if (code)
|
|
4562
5430
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4581,6 +5449,8 @@ function createNapiModule(options) {
|
|
|
4581
5449
|
try {
|
|
4582
5450
|
if (!msg)
|
|
4583
5451
|
return envObject.setLastError(1);
|
|
5452
|
+
code >>>= 0;
|
|
5453
|
+
msg >>>= 0;
|
|
4584
5454
|
var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
|
|
4585
5455
|
if (code)
|
|
4586
5456
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4605,6 +5475,8 @@ function createNapiModule(options) {
|
|
|
4605
5475
|
try {
|
|
4606
5476
|
if (!msg)
|
|
4607
5477
|
return envObject.setLastError(1);
|
|
5478
|
+
code >>>= 0;
|
|
5479
|
+
msg >>>= 0;
|
|
4608
5480
|
var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
|
|
4609
5481
|
if (code)
|
|
4610
5482
|
error.code = emnapiString.UTF8ToString(code, -1);
|
|
@@ -4624,8 +5496,9 @@ function createNapiModule(options) {
|
|
|
4624
5496
|
if (!result)
|
|
4625
5497
|
return envObject.setLastError(1);
|
|
4626
5498
|
var r = envObject.tryCatch.hasCaught();
|
|
4627
|
-
|
|
4628
|
-
HEAP_DATA_VIEW.
|
|
5499
|
+
result >>>= 0;
|
|
5500
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5501
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r ? 1 : 0, true);
|
|
4629
5502
|
return envObject.clearLastError();
|
|
4630
5503
|
}
|
|
4631
5504
|
function napi_create_error(env, code, msg, result) {
|
|
@@ -4649,9 +5522,10 @@ function createNapiModule(options) {
|
|
|
4649
5522
|
}
|
|
4650
5523
|
error.code = codeValue;
|
|
4651
5524
|
}
|
|
5525
|
+
result >>>= 0;
|
|
4652
5526
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4653
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4654
|
-
|
|
5527
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5528
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4655
5529
|
return envObject.clearLastError();
|
|
4656
5530
|
}
|
|
4657
5531
|
function napi_create_type_error(env, code, msg, result) {
|
|
@@ -4675,9 +5549,10 @@ function createNapiModule(options) {
|
|
|
4675
5549
|
}
|
|
4676
5550
|
error.code = codeValue;
|
|
4677
5551
|
}
|
|
5552
|
+
result >>>= 0;
|
|
4678
5553
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4679
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4680
|
-
|
|
5554
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5555
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4681
5556
|
return envObject.clearLastError();
|
|
4682
5557
|
}
|
|
4683
5558
|
function napi_create_range_error(env, code, msg, result) {
|
|
@@ -4701,9 +5576,10 @@ function createNapiModule(options) {
|
|
|
4701
5576
|
}
|
|
4702
5577
|
error.code = codeValue;
|
|
4703
5578
|
}
|
|
5579
|
+
result >>>= 0;
|
|
4704
5580
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4705
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4706
|
-
|
|
5581
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5582
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4707
5583
|
return envObject.clearLastError();
|
|
4708
5584
|
}
|
|
4709
5585
|
function node_api_create_syntax_error(env, code, msg, result) {
|
|
@@ -4727,9 +5603,10 @@ function createNapiModule(options) {
|
|
|
4727
5603
|
}
|
|
4728
5604
|
error.code = codeValue;
|
|
4729
5605
|
}
|
|
5606
|
+
result >>>= 0;
|
|
4730
5607
|
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
4731
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4732
|
-
|
|
5608
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5609
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4733
5610
|
return envObject.clearLastError();
|
|
4734
5611
|
}
|
|
4735
5612
|
function napi_get_and_clear_last_exception(env, result) {
|
|
@@ -4739,20 +5616,25 @@ function createNapiModule(options) {
|
|
|
4739
5616
|
envObject.checkGCAccess();
|
|
4740
5617
|
if (!result)
|
|
4741
5618
|
return envObject.setLastError(1);
|
|
4742
|
-
|
|
5619
|
+
result >>>= 0;
|
|
5620
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4743
5621
|
if (!envObject.tryCatch.hasCaught()) {
|
|
4744
|
-
|
|
5622
|
+
GET_HEAP_DATA_VIEW().setUint32(result, 1, true);
|
|
4745
5623
|
return envObject.clearLastError();
|
|
4746
5624
|
}
|
|
4747
5625
|
else {
|
|
4748
5626
|
var err = envObject.tryCatch.exception();
|
|
4749
5627
|
var value = envObject.ensureHandleId(err);
|
|
4750
|
-
|
|
5628
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4751
5629
|
envObject.tryCatch.reset();
|
|
4752
5630
|
}
|
|
4753
5631
|
return envObject.clearLastError();
|
|
4754
5632
|
}
|
|
4755
5633
|
function napi_fatal_error(location, location_len, message, message_len) {
|
|
5634
|
+
location >>>= 0;
|
|
5635
|
+
location_len >>>= 0;
|
|
5636
|
+
message >>>= 0;
|
|
5637
|
+
message_len >>>= 0;
|
|
4756
5638
|
var locationStr = emnapiString.UTF8ToString(location, location_len);
|
|
4757
5639
|
var messageStr = emnapiString.UTF8ToString(message, message_len);
|
|
4758
5640
|
if (emnapiNodeBinding) {
|
|
@@ -4806,8 +5688,21 @@ function createNapiModule(options) {
|
|
|
4806
5688
|
node_api_create_syntax_error: node_api_create_syntax_error,
|
|
4807
5689
|
node_api_throw_syntax_error: node_api_throw_syntax_error
|
|
4808
5690
|
});
|
|
5691
|
+
function _emnapi_create_function(env, utf8name, length, cb, data, result) {
|
|
5692
|
+
length >>>= 0;
|
|
5693
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
5694
|
+
var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
|
|
5695
|
+
if (fresult.status !== 0)
|
|
5696
|
+
return envObject.setLastError(fresult.status);
|
|
5697
|
+
var f = fresult.f;
|
|
5698
|
+
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
5699
|
+
result >>>= 0;
|
|
5700
|
+
var value = valueHandle.id;
|
|
5701
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5702
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
5703
|
+
return envObject.getReturnStatus();
|
|
5704
|
+
}
|
|
4809
5705
|
function napi_create_function(env, utf8name, length, cb, data, result) {
|
|
4810
|
-
var value;
|
|
4811
5706
|
if (!env)
|
|
4812
5707
|
return 1;
|
|
4813
5708
|
var envObject = emnapiCtx.envStore.get(env);
|
|
@@ -4822,15 +5717,7 @@ function createNapiModule(options) {
|
|
|
4822
5717
|
return envObject.setLastError(1);
|
|
4823
5718
|
if (!cb)
|
|
4824
5719
|
return envObject.setLastError(1);
|
|
4825
|
-
|
|
4826
|
-
if (fresult.status !== 0)
|
|
4827
|
-
return envObject.setLastError(fresult.status);
|
|
4828
|
-
var f = fresult.f;
|
|
4829
|
-
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
4830
|
-
value = valueHandle.id;
|
|
4831
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4832
|
-
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
4833
|
-
return envObject.getReturnStatus();
|
|
5720
|
+
return _emnapi_create_function(env, utf8name, length, cb, data, result);
|
|
4834
5721
|
}
|
|
4835
5722
|
catch (err) {
|
|
4836
5723
|
envObject.tryCatch.setError(err);
|
|
@@ -4844,33 +5731,38 @@ function createNapiModule(options) {
|
|
|
4844
5731
|
if (!cbinfo)
|
|
4845
5732
|
return envObject.setLastError(1);
|
|
4846
5733
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
4847
|
-
|
|
5734
|
+
argc >>>= 0;
|
|
5735
|
+
argv >>>= 0;
|
|
5736
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4848
5737
|
if (argv) {
|
|
4849
5738
|
if (!argc)
|
|
4850
5739
|
return envObject.setLastError(1);
|
|
4851
|
-
var argcValue =
|
|
5740
|
+
var argcValue = GET_HEAP_DATA_VIEW().getUint32(argc, true);
|
|
5741
|
+
argcValue >>>= 0;
|
|
4852
5742
|
var len = cbinfoValue.args.length;
|
|
4853
5743
|
var arrlen = argcValue < len ? argcValue : len;
|
|
4854
5744
|
var i = 0;
|
|
4855
5745
|
for (; i < arrlen; i++) {
|
|
4856
5746
|
var argVal = envObject.ensureHandleId(cbinfoValue.args[i]);
|
|
4857
|
-
|
|
5747
|
+
GET_HEAP_DATA_VIEW().setUint32(argv + i * 4, argVal, true);
|
|
4858
5748
|
}
|
|
4859
5749
|
if (i < argcValue) {
|
|
4860
5750
|
for (; i < argcValue; i++) {
|
|
4861
|
-
|
|
5751
|
+
GET_HEAP_DATA_VIEW().setUint32(argv + i * 4, 1, true);
|
|
4862
5752
|
}
|
|
4863
5753
|
}
|
|
4864
5754
|
}
|
|
4865
5755
|
if (argc) {
|
|
4866
|
-
|
|
5756
|
+
GET_HEAP_DATA_VIEW().setUint32(argc, cbinfoValue.args.length, true);
|
|
4867
5757
|
}
|
|
4868
5758
|
if (this_arg) {
|
|
5759
|
+
this_arg >>>= 0;
|
|
4869
5760
|
var v = envObject.ensureHandleId(cbinfoValue.thiz);
|
|
4870
|
-
|
|
5761
|
+
GET_HEAP_DATA_VIEW().setUint32(this_arg, v, true);
|
|
4871
5762
|
}
|
|
4872
5763
|
if (data) {
|
|
4873
|
-
|
|
5764
|
+
data >>>= 0;
|
|
5765
|
+
GET_HEAP_DATA_VIEW().setUint32(data, cbinfoValue.data, true);
|
|
4874
5766
|
}
|
|
4875
5767
|
return envObject.clearLastError();
|
|
4876
5768
|
}
|
|
@@ -4889,6 +5781,9 @@ function createNapiModule(options) {
|
|
|
4889
5781
|
try {
|
|
4890
5782
|
if (!recv)
|
|
4891
5783
|
return envObject.setLastError(1);
|
|
5784
|
+
argc >>>= 0;
|
|
5785
|
+
argv >>>= 0;
|
|
5786
|
+
result >>>= 0;
|
|
4892
5787
|
argc = argc >>> 0;
|
|
4893
5788
|
if (argc > 0) {
|
|
4894
5789
|
if (!argv)
|
|
@@ -4901,15 +5796,15 @@ function createNapiModule(options) {
|
|
|
4901
5796
|
if (typeof v8func !== 'function')
|
|
4902
5797
|
return envObject.setLastError(1);
|
|
4903
5798
|
var args = [];
|
|
4904
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5799
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4905
5800
|
for (; i < argc; i++) {
|
|
4906
|
-
var argVal =
|
|
5801
|
+
var argVal = GET_HEAP_DATA_VIEW().getUint32(argv + i * 4, true);
|
|
4907
5802
|
args.push(emnapiCtx.handleStore.get(argVal).value);
|
|
4908
5803
|
}
|
|
4909
5804
|
var ret = v8func.apply(v8recv, args);
|
|
4910
5805
|
if (result) {
|
|
4911
5806
|
v = envObject.ensureHandleId(ret);
|
|
4912
|
-
|
|
5807
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
4913
5808
|
}
|
|
4914
5809
|
return envObject.clearLastError();
|
|
4915
5810
|
}
|
|
@@ -4933,6 +5828,9 @@ function createNapiModule(options) {
|
|
|
4933
5828
|
try {
|
|
4934
5829
|
if (!constructor)
|
|
4935
5830
|
return envObject.setLastError(1);
|
|
5831
|
+
argc >>>= 0;
|
|
5832
|
+
argv >>>= 0;
|
|
5833
|
+
result >>>= 0;
|
|
4936
5834
|
argc = argc >>> 0;
|
|
4937
5835
|
if (argc > 0) {
|
|
4938
5836
|
if (!argv)
|
|
@@ -4944,11 +5842,11 @@ function createNapiModule(options) {
|
|
|
4944
5842
|
if (typeof Ctor !== 'function')
|
|
4945
5843
|
return envObject.setLastError(1);
|
|
4946
5844
|
var ret = void 0;
|
|
4947
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5845
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
4948
5846
|
if (emnapiCtx.feature.supportReflect) {
|
|
4949
5847
|
var argList = Array(argc);
|
|
4950
5848
|
for (i = 0; i < argc; i++) {
|
|
4951
|
-
var argVal =
|
|
5849
|
+
var argVal = GET_HEAP_DATA_VIEW().getUint32(argv + i * 4, true);
|
|
4952
5850
|
argList[i] = emnapiCtx.handleStore.get(argVal).value;
|
|
4953
5851
|
}
|
|
4954
5852
|
ret = Reflect.construct(Ctor, argList, Ctor);
|
|
@@ -4957,7 +5855,7 @@ function createNapiModule(options) {
|
|
|
4957
5855
|
var args = Array(argc + 1);
|
|
4958
5856
|
args[0] = undefined;
|
|
4959
5857
|
for (i = 0; i < argc; i++) {
|
|
4960
|
-
var argVal =
|
|
5858
|
+
var argVal = GET_HEAP_DATA_VIEW().getUint32(argv + i * 4, true);
|
|
4961
5859
|
args[i + 1] = emnapiCtx.handleStore.get(argVal).value;
|
|
4962
5860
|
}
|
|
4963
5861
|
var BoundCtor = Ctor.bind.apply(Ctor, args);
|
|
@@ -4965,7 +5863,7 @@ function createNapiModule(options) {
|
|
|
4965
5863
|
}
|
|
4966
5864
|
if (result) {
|
|
4967
5865
|
v = envObject.ensureHandleId(ret);
|
|
4968
|
-
|
|
5866
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
4969
5867
|
}
|
|
4970
5868
|
return envObject.getReturnStatus();
|
|
4971
5869
|
}
|
|
@@ -4983,6 +5881,7 @@ function createNapiModule(options) {
|
|
|
4983
5881
|
return envObject.setLastError(1);
|
|
4984
5882
|
if (!result)
|
|
4985
5883
|
return envObject.setLastError(1);
|
|
5884
|
+
result >>>= 0;
|
|
4986
5885
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
4987
5886
|
var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
|
|
4988
5887
|
var value = thiz == null || thiz.constructor == null
|
|
@@ -4990,12 +5889,13 @@ function createNapiModule(options) {
|
|
|
4990
5889
|
: thiz instanceof fn
|
|
4991
5890
|
? envObject.ensureHandleId(thiz.constructor)
|
|
4992
5891
|
: 0;
|
|
4993
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4994
|
-
|
|
5892
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5893
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
4995
5894
|
return envObject.clearLastError();
|
|
4996
5895
|
}
|
|
4997
5896
|
var functionMod = Object.freeze({
|
|
4998
5897
|
__proto__: null,
|
|
5898
|
+
_emnapi_create_function: _emnapi_create_function,
|
|
4999
5899
|
napi_call_function: napi_call_function,
|
|
5000
5900
|
napi_create_function: napi_create_function,
|
|
5001
5901
|
napi_get_cb_info: napi_get_cb_info,
|
|
@@ -5010,8 +5910,9 @@ function createNapiModule(options) {
|
|
|
5010
5910
|
if (!result)
|
|
5011
5911
|
return envObject.setLastError(1);
|
|
5012
5912
|
var scope = emnapiCtx.openScope(envObject);
|
|
5013
|
-
|
|
5014
|
-
HEAP_DATA_VIEW.
|
|
5913
|
+
result >>>= 0;
|
|
5914
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5915
|
+
GET_HEAP_DATA_VIEW().setUint32(result, scope.id, true);
|
|
5015
5916
|
return envObject.clearLastError();
|
|
5016
5917
|
}
|
|
5017
5918
|
function napi_close_handle_scope(env, scope) {
|
|
@@ -5035,8 +5936,9 @@ function createNapiModule(options) {
|
|
|
5035
5936
|
if (!result)
|
|
5036
5937
|
return envObject.setLastError(1);
|
|
5037
5938
|
var scope = emnapiCtx.openScope(envObject);
|
|
5038
|
-
|
|
5039
|
-
HEAP_DATA_VIEW.
|
|
5939
|
+
result >>>= 0;
|
|
5940
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5941
|
+
GET_HEAP_DATA_VIEW().setUint32(result, scope.id, true);
|
|
5040
5942
|
return envObject.clearLastError();
|
|
5041
5943
|
}
|
|
5042
5944
|
function napi_close_escapable_handle_scope(env, scope) {
|
|
@@ -5065,10 +5967,12 @@ function createNapiModule(options) {
|
|
|
5065
5967
|
return envObject.setLastError(1);
|
|
5066
5968
|
var scopeObject = emnapiCtx.scopeStore.get(scope);
|
|
5067
5969
|
if (!scopeObject.escapeCalled()) {
|
|
5970
|
+
escapee >>>= 0;
|
|
5971
|
+
result >>>= 0;
|
|
5068
5972
|
var newHandle = scopeObject.escape(escapee);
|
|
5069
5973
|
var value = newHandle ? newHandle.id : 0;
|
|
5070
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5071
|
-
|
|
5974
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5975
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
5072
5976
|
return envObject.clearLastError();
|
|
5073
5977
|
}
|
|
5074
5978
|
return envObject.setLastError(12);
|
|
@@ -5089,8 +5993,9 @@ function createNapiModule(options) {
|
|
|
5089
5993
|
}
|
|
5090
5994
|
}
|
|
5091
5995
|
var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1);
|
|
5092
|
-
|
|
5093
|
-
HEAP_DATA_VIEW.
|
|
5996
|
+
result >>>= 0;
|
|
5997
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5998
|
+
GET_HEAP_DATA_VIEW().setUint32(result, ref.id, true);
|
|
5094
5999
|
return envObject.clearLastError();
|
|
5095
6000
|
}
|
|
5096
6001
|
function napi_delete_reference(env, ref) {
|
|
@@ -5111,8 +6016,9 @@ function createNapiModule(options) {
|
|
|
5111
6016
|
return envObject.setLastError(1);
|
|
5112
6017
|
var count = emnapiCtx.refStore.get(ref).ref();
|
|
5113
6018
|
if (result) {
|
|
5114
|
-
|
|
5115
|
-
HEAP_DATA_VIEW.
|
|
6019
|
+
result >>>= 0;
|
|
6020
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6021
|
+
GET_HEAP_DATA_VIEW().setUint32(result, count, true);
|
|
5116
6022
|
}
|
|
5117
6023
|
return envObject.clearLastError();
|
|
5118
6024
|
}
|
|
@@ -5130,8 +6036,9 @@ function createNapiModule(options) {
|
|
|
5130
6036
|
}
|
|
5131
6037
|
var count = reference.unref();
|
|
5132
6038
|
if (result) {
|
|
5133
|
-
|
|
5134
|
-
HEAP_DATA_VIEW.
|
|
6039
|
+
result >>>= 0;
|
|
6040
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6041
|
+
GET_HEAP_DATA_VIEW().setUint32(result, count, true);
|
|
5135
6042
|
}
|
|
5136
6043
|
return envObject.clearLastError();
|
|
5137
6044
|
}
|
|
@@ -5146,8 +6053,9 @@ function createNapiModule(options) {
|
|
|
5146
6053
|
return envObject.setLastError(1);
|
|
5147
6054
|
var reference = emnapiCtx.refStore.get(ref);
|
|
5148
6055
|
var handleId = reference.get(envObject);
|
|
5149
|
-
|
|
5150
|
-
HEAP_DATA_VIEW.
|
|
6056
|
+
result >>>= 0;
|
|
6057
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6058
|
+
GET_HEAP_DATA_VIEW().setUint32(result, handleId, true);
|
|
5151
6059
|
return envObject.clearLastError();
|
|
5152
6060
|
}
|
|
5153
6061
|
function napi_add_env_cleanup_hook(env, fun, arg) {
|
|
@@ -5156,6 +6064,8 @@ function createNapiModule(options) {
|
|
|
5156
6064
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5157
6065
|
if (!fun)
|
|
5158
6066
|
return envObject.setLastError(1);
|
|
6067
|
+
fun >>>= 0;
|
|
6068
|
+
arg >>>= 0;
|
|
5159
6069
|
emnapiCtx.addCleanupHook(envObject, fun, arg);
|
|
5160
6070
|
return 0;
|
|
5161
6071
|
}
|
|
@@ -5165,6 +6075,8 @@ function createNapiModule(options) {
|
|
|
5165
6075
|
var envObject = emnapiCtx.envStore.get(env);
|
|
5166
6076
|
if (!fun)
|
|
5167
6077
|
return envObject.setLastError(1);
|
|
6078
|
+
fun >>>= 0;
|
|
6079
|
+
arg >>>= 0;
|
|
5168
6080
|
emnapiCtx.removeCleanupHook(envObject, fun, arg);
|
|
5169
6081
|
return 0;
|
|
5170
6082
|
}
|
|
@@ -5221,14 +6133,16 @@ function createNapiModule(options) {
|
|
|
5221
6133
|
return envObject.setLastError(1);
|
|
5222
6134
|
if (!promise)
|
|
5223
6135
|
return envObject.setLastError(1);
|
|
5224
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6136
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5225
6137
|
var p = new Promise(function (resolve, reject) {
|
|
5226
6138
|
var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
|
|
5227
6139
|
deferredObjectId = deferredObject.id;
|
|
5228
|
-
|
|
6140
|
+
deferred >>>= 0;
|
|
6141
|
+
GET_HEAP_DATA_VIEW().setUint32(deferred, deferredObjectId, true);
|
|
5229
6142
|
});
|
|
6143
|
+
promise >>>= 0;
|
|
5230
6144
|
value = emnapiCtx.addToCurrentScope(p).id;
|
|
5231
|
-
|
|
6145
|
+
GET_HEAP_DATA_VIEW().setUint32(promise, value, true);
|
|
5232
6146
|
return envObject.getReturnStatus();
|
|
5233
6147
|
}
|
|
5234
6148
|
catch (err) {
|
|
@@ -5294,9 +6208,10 @@ function createNapiModule(options) {
|
|
|
5294
6208
|
if (!is_promise)
|
|
5295
6209
|
return envObject.setLastError(1);
|
|
5296
6210
|
var h = emnapiCtx.handleStore.get(value);
|
|
6211
|
+
is_promise >>>= 0;
|
|
5297
6212
|
var r = h.isPromise() ? 1 : 0;
|
|
5298
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5299
|
-
|
|
6213
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6214
|
+
GET_HEAP_DATA_VIEW().setInt8(is_promise, r, true);
|
|
5300
6215
|
return envObject.clearLastError();
|
|
5301
6216
|
}
|
|
5302
6217
|
var promiseMod = Object.freeze({
|
|
@@ -5437,9 +6352,10 @@ function createNapiModule(options) {
|
|
|
5437
6352
|
}
|
|
5438
6353
|
}
|
|
5439
6354
|
}
|
|
6355
|
+
result >>>= 0;
|
|
5440
6356
|
value = emnapiCtx.addToCurrentScope(ret).id;
|
|
5441
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5442
|
-
|
|
6357
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6358
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
5443
6359
|
return envObject.getReturnStatus();
|
|
5444
6360
|
}
|
|
5445
6361
|
catch (err) {
|
|
@@ -5508,9 +6424,10 @@ function createNapiModule(options) {
|
|
|
5508
6424
|
catch (_) {
|
|
5509
6425
|
return envObject.setLastError(2);
|
|
5510
6426
|
}
|
|
6427
|
+
result >>>= 0;
|
|
5511
6428
|
r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
|
|
5512
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5513
|
-
|
|
6429
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6430
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
5514
6431
|
return envObject.getReturnStatus();
|
|
5515
6432
|
}
|
|
5516
6433
|
catch (err) {
|
|
@@ -5547,9 +6464,10 @@ function createNapiModule(options) {
|
|
|
5547
6464
|
catch (_) {
|
|
5548
6465
|
return envObject.setLastError(2);
|
|
5549
6466
|
}
|
|
6467
|
+
result >>>= 0;
|
|
5550
6468
|
value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
|
|
5551
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5552
|
-
|
|
6469
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6470
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
5553
6471
|
return envObject.getReturnStatus();
|
|
5554
6472
|
}
|
|
5555
6473
|
catch (err) {
|
|
@@ -5590,8 +6508,9 @@ function createNapiModule(options) {
|
|
|
5590
6508
|
}
|
|
5591
6509
|
}
|
|
5592
6510
|
if (result) {
|
|
5593
|
-
|
|
5594
|
-
HEAP_DATA_VIEW.
|
|
6511
|
+
result >>>= 0;
|
|
6512
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6513
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r ? 1 : 0, true);
|
|
5595
6514
|
}
|
|
5596
6515
|
return envObject.getReturnStatus();
|
|
5597
6516
|
}
|
|
@@ -5634,8 +6553,9 @@ function createNapiModule(options) {
|
|
|
5634
6553
|
return envObject.setLastError(4);
|
|
5635
6554
|
}
|
|
5636
6555
|
r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
|
|
5637
|
-
|
|
5638
|
-
HEAP_DATA_VIEW.
|
|
6556
|
+
result >>>= 0;
|
|
6557
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6558
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r ? 1 : 0, true);
|
|
5639
6559
|
return envObject.getReturnStatus();
|
|
5640
6560
|
}
|
|
5641
6561
|
catch (err) {
|
|
@@ -5665,6 +6585,7 @@ function createNapiModule(options) {
|
|
|
5665
6585
|
if (!cname) {
|
|
5666
6586
|
return envObject.setLastError(1);
|
|
5667
6587
|
}
|
|
6588
|
+
cname >>>= 0;
|
|
5668
6589
|
emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
|
|
5669
6590
|
return envObject.getReturnStatus();
|
|
5670
6591
|
}
|
|
@@ -5703,9 +6624,11 @@ function createNapiModule(options) {
|
|
|
5703
6624
|
catch (_) {
|
|
5704
6625
|
return envObject.setLastError(2);
|
|
5705
6626
|
}
|
|
6627
|
+
utf8name >>>= 0;
|
|
6628
|
+
result >>>= 0;
|
|
5706
6629
|
r = emnapiString.UTF8ToString(utf8name, -1) in v;
|
|
5707
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5708
|
-
|
|
6630
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6631
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r ? 1 : 0, true);
|
|
5709
6632
|
return envObject.getReturnStatus();
|
|
5710
6633
|
}
|
|
5711
6634
|
catch (err) {
|
|
@@ -5743,9 +6666,11 @@ function createNapiModule(options) {
|
|
|
5743
6666
|
catch (_) {
|
|
5744
6667
|
return envObject.setLastError(2);
|
|
5745
6668
|
}
|
|
6669
|
+
utf8name >>>= 0;
|
|
6670
|
+
result >>>= 0;
|
|
5746
6671
|
value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
|
|
5747
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5748
|
-
|
|
6672
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6673
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
5749
6674
|
return envObject.getReturnStatus();
|
|
5750
6675
|
}
|
|
5751
6676
|
catch (err) {
|
|
@@ -5807,9 +6732,10 @@ function createNapiModule(options) {
|
|
|
5807
6732
|
catch (_) {
|
|
5808
6733
|
return envObject.setLastError(2);
|
|
5809
6734
|
}
|
|
6735
|
+
result >>>= 0;
|
|
5810
6736
|
r = ((index >>> 0) in v) ? 1 : 0;
|
|
5811
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5812
|
-
|
|
6737
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6738
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
5813
6739
|
return envObject.getReturnStatus();
|
|
5814
6740
|
}
|
|
5815
6741
|
catch (err) {
|
|
@@ -5844,9 +6770,10 @@ function createNapiModule(options) {
|
|
|
5844
6770
|
catch (_) {
|
|
5845
6771
|
return envObject.setLastError(2);
|
|
5846
6772
|
}
|
|
6773
|
+
result >>>= 0;
|
|
5847
6774
|
value = envObject.ensureHandleId(v[index >>> 0]);
|
|
5848
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5849
|
-
|
|
6775
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6776
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
5850
6777
|
return envObject.getReturnStatus();
|
|
5851
6778
|
}
|
|
5852
6779
|
catch (err) {
|
|
@@ -5884,8 +6811,9 @@ function createNapiModule(options) {
|
|
|
5884
6811
|
}
|
|
5885
6812
|
}
|
|
5886
6813
|
if (result) {
|
|
5887
|
-
|
|
5888
|
-
HEAP_DATA_VIEW.
|
|
6814
|
+
result >>>= 0;
|
|
6815
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6816
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r ? 1 : 0, true);
|
|
5889
6817
|
}
|
|
5890
6818
|
return envObject.getReturnStatus();
|
|
5891
6819
|
}
|
|
@@ -5906,6 +6834,8 @@ function createNapiModule(options) {
|
|
|
5906
6834
|
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
|
|
5907
6835
|
envObject.clearLastError();
|
|
5908
6836
|
try {
|
|
6837
|
+
properties >>>= 0;
|
|
6838
|
+
property_count >>>= 0;
|
|
5909
6839
|
property_count = property_count >>> 0;
|
|
5910
6840
|
if (property_count > 0) {
|
|
5911
6841
|
if (!properties)
|
|
@@ -5919,17 +6849,18 @@ function createNapiModule(options) {
|
|
|
5919
6849
|
return envObject.setLastError(2);
|
|
5920
6850
|
}
|
|
5921
6851
|
var propertyName = void 0;
|
|
5922
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6852
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
5923
6853
|
for (var i = 0; i < property_count; i++) {
|
|
5924
6854
|
propPtr = properties + (i * (4 * 8));
|
|
5925
|
-
var utf8Name =
|
|
5926
|
-
var name_2 =
|
|
5927
|
-
var method =
|
|
5928
|
-
var getter =
|
|
5929
|
-
var setter =
|
|
5930
|
-
var value =
|
|
5931
|
-
attributes =
|
|
5932
|
-
|
|
6855
|
+
var utf8Name = GET_HEAP_DATA_VIEW().getUint32(propPtr, true);
|
|
6856
|
+
var name_2 = GET_HEAP_DATA_VIEW().getUint32(propPtr + 4, true);
|
|
6857
|
+
var method = GET_HEAP_DATA_VIEW().getUint32(propPtr + 8, true);
|
|
6858
|
+
var getter = GET_HEAP_DATA_VIEW().getUint32(propPtr + 12, true);
|
|
6859
|
+
var setter = GET_HEAP_DATA_VIEW().getUint32(propPtr + 16, true);
|
|
6860
|
+
var value = GET_HEAP_DATA_VIEW().getUint32(propPtr + 20, true);
|
|
6861
|
+
attributes = GET_HEAP_DATA_VIEW().getInt32(propPtr + 24, true);
|
|
6862
|
+
attributes >>>= 0;
|
|
6863
|
+
var data = GET_HEAP_DATA_VIEW().getUint32(propPtr + 28, true);
|
|
5933
6864
|
if (utf8Name) {
|
|
5934
6865
|
propertyName = emnapiString.UTF8ToString(utf8Name, -1);
|
|
5935
6866
|
}
|
|
@@ -6046,9 +6977,10 @@ function createNapiModule(options) {
|
|
|
6046
6977
|
}
|
|
6047
6978
|
var g = emnapiCtx.handleStore.get(5).value;
|
|
6048
6979
|
var ret = g.eval(v8Script.value);
|
|
6980
|
+
result >>>= 0;
|
|
6049
6981
|
value = envObject.ensureHandleId(ret);
|
|
6050
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6051
|
-
|
|
6982
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6983
|
+
GET_HEAP_DATA_VIEW().setUint32(result, value, true);
|
|
6052
6984
|
status = envObject.getReturnStatus();
|
|
6053
6985
|
}
|
|
6054
6986
|
catch (err) {
|
|
@@ -6071,6 +7003,7 @@ function createNapiModule(options) {
|
|
|
6071
7003
|
if (!result)
|
|
6072
7004
|
return envObject.setLastError(1);
|
|
6073
7005
|
var v = emnapiCtx.handleStore.get(value);
|
|
7006
|
+
result >>>= 0;
|
|
6074
7007
|
var r;
|
|
6075
7008
|
if (v.isNumber()) {
|
|
6076
7009
|
r = 3;
|
|
@@ -6105,8 +7038,8 @@ function createNapiModule(options) {
|
|
|
6105
7038
|
else {
|
|
6106
7039
|
return envObject.setLastError(1);
|
|
6107
7040
|
}
|
|
6108
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6109
|
-
|
|
7041
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7042
|
+
GET_HEAP_DATA_VIEW().setInt32(result, r, true);
|
|
6110
7043
|
return envObject.clearLastError();
|
|
6111
7044
|
}
|
|
6112
7045
|
function napi_coerce_to_bool(env, value, result) {
|
|
@@ -6126,9 +7059,10 @@ function createNapiModule(options) {
|
|
|
6126
7059
|
if (!result)
|
|
6127
7060
|
return envObject.setLastError(1);
|
|
6128
7061
|
var handle = emnapiCtx.handleStore.get(value);
|
|
7062
|
+
result >>>= 0;
|
|
6129
7063
|
v = handle.value ? 4 : 3;
|
|
6130
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6131
|
-
|
|
7064
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7065
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
6132
7066
|
return envObject.getReturnStatus();
|
|
6133
7067
|
}
|
|
6134
7068
|
catch (err) {
|
|
@@ -6156,9 +7090,10 @@ function createNapiModule(options) {
|
|
|
6156
7090
|
if (handle.isBigInt()) {
|
|
6157
7091
|
throw new TypeError('Cannot convert a BigInt value to a number');
|
|
6158
7092
|
}
|
|
7093
|
+
result >>>= 0;
|
|
6159
7094
|
v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
|
|
6160
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6161
|
-
|
|
7095
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7096
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
6162
7097
|
return envObject.getReturnStatus();
|
|
6163
7098
|
}
|
|
6164
7099
|
catch (err) {
|
|
@@ -6186,9 +7121,10 @@ function createNapiModule(options) {
|
|
|
6186
7121
|
if (handle.value == null) {
|
|
6187
7122
|
throw new TypeError('Cannot convert undefined or null to object');
|
|
6188
7123
|
}
|
|
7124
|
+
result >>>= 0;
|
|
6189
7125
|
v = envObject.ensureHandleId(Object(handle.value));
|
|
6190
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6191
|
-
|
|
7126
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7127
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
6192
7128
|
return envObject.getReturnStatus();
|
|
6193
7129
|
}
|
|
6194
7130
|
catch (err) {
|
|
@@ -6216,9 +7152,10 @@ function createNapiModule(options) {
|
|
|
6216
7152
|
if (handle.isSymbol()) {
|
|
6217
7153
|
throw new TypeError('Cannot convert a Symbol value to a string');
|
|
6218
7154
|
}
|
|
7155
|
+
result >>>= 0;
|
|
6219
7156
|
v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
|
|
6220
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6221
|
-
|
|
7157
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7158
|
+
GET_HEAP_DATA_VIEW().setUint32(result, v, true);
|
|
6222
7159
|
return envObject.getReturnStatus();
|
|
6223
7160
|
}
|
|
6224
7161
|
catch (err) {
|
|
@@ -6244,8 +7181,9 @@ function createNapiModule(options) {
|
|
|
6244
7181
|
return envObject.setLastError(1);
|
|
6245
7182
|
if (!constructor)
|
|
6246
7183
|
return envObject.setLastError(1);
|
|
6247
|
-
|
|
6248
|
-
HEAP_DATA_VIEW.
|
|
7184
|
+
result >>>= 0;
|
|
7185
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7186
|
+
GET_HEAP_DATA_VIEW().setInt8(result, 0, true);
|
|
6249
7187
|
var ctor = emnapiCtx.handleStore.get(constructor);
|
|
6250
7188
|
if (!ctor.isFunction()) {
|
|
6251
7189
|
return envObject.setLastError(5);
|
|
@@ -6253,7 +7191,7 @@ function createNapiModule(options) {
|
|
|
6253
7191
|
var val = emnapiCtx.handleStore.get(object).value;
|
|
6254
7192
|
var ret = val instanceof ctor.value;
|
|
6255
7193
|
r = ret ? 1 : 0;
|
|
6256
|
-
|
|
7194
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6257
7195
|
return envObject.getReturnStatus();
|
|
6258
7196
|
}
|
|
6259
7197
|
catch (err) {
|
|
@@ -6271,9 +7209,10 @@ function createNapiModule(options) {
|
|
|
6271
7209
|
if (!result)
|
|
6272
7210
|
return envObject.setLastError(1);
|
|
6273
7211
|
var h = emnapiCtx.handleStore.get(value);
|
|
7212
|
+
result >>>= 0;
|
|
6274
7213
|
var r = h.isArray() ? 1 : 0;
|
|
6275
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6276
|
-
|
|
7214
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7215
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6277
7216
|
return envObject.clearLastError();
|
|
6278
7217
|
}
|
|
6279
7218
|
function napi_is_arraybuffer(env, value, result) {
|
|
@@ -6286,9 +7225,10 @@ function createNapiModule(options) {
|
|
|
6286
7225
|
if (!result)
|
|
6287
7226
|
return envObject.setLastError(1);
|
|
6288
7227
|
var h = emnapiCtx.handleStore.get(value);
|
|
7228
|
+
result >>>= 0;
|
|
6289
7229
|
var r = h.isArrayBuffer() ? 1 : 0;
|
|
6290
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6291
|
-
|
|
7230
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7231
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6292
7232
|
return envObject.clearLastError();
|
|
6293
7233
|
}
|
|
6294
7234
|
function node_api_is_sharedarraybuffer(env, value, result) {
|
|
@@ -6301,12 +7241,13 @@ function createNapiModule(options) {
|
|
|
6301
7241
|
if (!result)
|
|
6302
7242
|
return envObject.setLastError(1);
|
|
6303
7243
|
var h = emnapiCtx.handleStore.get(value);
|
|
7244
|
+
result >>>= 0;
|
|
6304
7245
|
var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
|
|
6305
7246
|
(Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
|
|
6306
7247
|
? 1
|
|
6307
7248
|
: 0;
|
|
6308
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6309
|
-
|
|
7249
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7250
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6310
7251
|
return envObject.clearLastError();
|
|
6311
7252
|
}
|
|
6312
7253
|
function napi_is_date(env, value, result) {
|
|
@@ -6319,9 +7260,10 @@ function createNapiModule(options) {
|
|
|
6319
7260
|
if (!result)
|
|
6320
7261
|
return envObject.setLastError(1);
|
|
6321
7262
|
var h = emnapiCtx.handleStore.get(value);
|
|
7263
|
+
result >>>= 0;
|
|
6322
7264
|
var r = h.isDate() ? 1 : 0;
|
|
6323
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6324
|
-
|
|
7265
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7266
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6325
7267
|
return envObject.clearLastError();
|
|
6326
7268
|
}
|
|
6327
7269
|
function napi_is_error(env, value, result) {
|
|
@@ -6334,9 +7276,10 @@ function createNapiModule(options) {
|
|
|
6334
7276
|
if (!result)
|
|
6335
7277
|
return envObject.setLastError(1);
|
|
6336
7278
|
var val = emnapiCtx.handleStore.get(value).value;
|
|
7279
|
+
result >>>= 0;
|
|
6337
7280
|
var r = (val instanceof Error) ? 1 : 0;
|
|
6338
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6339
|
-
|
|
7281
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7282
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6340
7283
|
return envObject.clearLastError();
|
|
6341
7284
|
}
|
|
6342
7285
|
function napi_is_typedarray(env, value, result) {
|
|
@@ -6349,9 +7292,10 @@ function createNapiModule(options) {
|
|
|
6349
7292
|
if (!result)
|
|
6350
7293
|
return envObject.setLastError(1);
|
|
6351
7294
|
var h = emnapiCtx.handleStore.get(value);
|
|
7295
|
+
result >>>= 0;
|
|
6352
7296
|
var r = h.isTypedArray() ? 1 : 0;
|
|
6353
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6354
|
-
|
|
7297
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7298
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6355
7299
|
return envObject.clearLastError();
|
|
6356
7300
|
}
|
|
6357
7301
|
function napi_is_buffer(env, value, result) {
|
|
@@ -6364,9 +7308,10 @@ function createNapiModule(options) {
|
|
|
6364
7308
|
if (!result)
|
|
6365
7309
|
return envObject.setLastError(1);
|
|
6366
7310
|
var h = emnapiCtx.handleStore.get(value);
|
|
7311
|
+
result >>>= 0;
|
|
6367
7312
|
var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
|
|
6368
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6369
|
-
|
|
7313
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7314
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6370
7315
|
return envObject.clearLastError();
|
|
6371
7316
|
}
|
|
6372
7317
|
function napi_is_dataview(env, value, result) {
|
|
@@ -6379,9 +7324,10 @@ function createNapiModule(options) {
|
|
|
6379
7324
|
if (!result)
|
|
6380
7325
|
return envObject.setLastError(1);
|
|
6381
7326
|
var h = emnapiCtx.handleStore.get(value);
|
|
7327
|
+
result >>>= 0;
|
|
6382
7328
|
var r = h.isDataView() ? 1 : 0;
|
|
6383
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6384
|
-
|
|
7329
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7330
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6385
7331
|
return envObject.clearLastError();
|
|
6386
7332
|
}
|
|
6387
7333
|
function napi_strict_equals(env, lhs, rhs, result) {
|
|
@@ -6404,9 +7350,10 @@ function createNapiModule(options) {
|
|
|
6404
7350
|
return envObject.setLastError(1);
|
|
6405
7351
|
var lv = emnapiCtx.handleStore.get(lhs).value;
|
|
6406
7352
|
var rv = emnapiCtx.handleStore.get(rhs).value;
|
|
7353
|
+
result >>>= 0;
|
|
6407
7354
|
r = (lv === rv) ? 1 : 0;
|
|
6408
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6409
|
-
|
|
7355
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7356
|
+
GET_HEAP_DATA_VIEW().setInt8(result, r, true);
|
|
6410
7357
|
return envObject.getReturnStatus();
|
|
6411
7358
|
}
|
|
6412
7359
|
catch (err) {
|
|
@@ -6454,17 +7401,18 @@ function createNapiModule(options) {
|
|
|
6454
7401
|
if (!result)
|
|
6455
7402
|
return envObject.setLastError(1);
|
|
6456
7403
|
var h = emnapiCtx.handleStore.get(arraybuffer);
|
|
6457
|
-
|
|
7404
|
+
result >>>= 0;
|
|
7405
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
6458
7406
|
if (h.isArrayBuffer() && h.value.byteLength === 0) {
|
|
6459
7407
|
try {
|
|
6460
7408
|
new Uint8Array(h.value);
|
|
6461
7409
|
}
|
|
6462
7410
|
catch (_) {
|
|
6463
|
-
|
|
7411
|
+
GET_HEAP_DATA_VIEW().setInt8(result, 1, true);
|
|
6464
7412
|
return envObject.getReturnStatus();
|
|
6465
7413
|
}
|
|
6466
7414
|
}
|
|
6467
|
-
|
|
7415
|
+
GET_HEAP_DATA_VIEW().setInt8(result, 0, true);
|
|
6468
7416
|
return envObject.getReturnStatus();
|
|
6469
7417
|
}
|
|
6470
7418
|
catch (err) {
|
|
@@ -6499,8 +7447,8 @@ function createNapiModule(options) {
|
|
|
6499
7447
|
if (!result)
|
|
6500
7448
|
return envObject.setLastError(1);
|
|
6501
7449
|
var NODE_API_SUPPORTED_VERSION_MAX = 10;
|
|
6502
|
-
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
6503
|
-
|
|
7450
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer), GET_HEAP_DATA_VIEW = function () { return HEAP_DATA_VIEW.buffer === wasmMemory.buffer ? HEAP_DATA_VIEW : (HEAP_DATA_VIEW = new DataView(wasmMemory.buffer)); };
|
|
7451
|
+
GET_HEAP_DATA_VIEW().setUint32(result, NODE_API_SUPPORTED_VERSION_MAX, true);
|
|
6504
7452
|
return envObject.clearLastError();
|
|
6505
7453
|
}
|
|
6506
7454
|
var versionMod = Object.freeze({
|
|
@@ -6509,11 +7457,13 @@ function createNapiModule(options) {
|
|
|
6509
7457
|
});
|
|
6510
7458
|
emnapiAWST.init();
|
|
6511
7459
|
emnapiExternalMemory.init();
|
|
7460
|
+
emnapiExternalSAB.init();
|
|
6512
7461
|
emnapiString.init();
|
|
6513
7462
|
emnapiTSFN.init();
|
|
6514
7463
|
PThread.init();
|
|
6515
7464
|
napiModule.emnapi.syncMemory = $emnapiSyncMemory;
|
|
6516
7465
|
napiModule.emnapi.getMemoryAddress = $emnapiGetMemoryAddress;
|
|
7466
|
+
napiModule.emnapi.acquireExternalSharedArrayBuffer = $emnapiAcquireExternalSharedArrayBuffer;
|
|
6517
7467
|
function addImports(mod) {
|
|
6518
7468
|
var keys = Object.keys(mod);
|
|
6519
7469
|
for (var i = 0; i < keys.length; ++i) {
|
|
@@ -6641,9 +7591,9 @@ function loadNapiModuleImpl(loadFn, userNapiModule, wasmInput, options) {
|
|
|
6641
7591
|
}
|
|
6642
7592
|
const table = getTable ? getTable(originalExports) : originalExports.__indirect_function_table;
|
|
6643
7593
|
if (wasi && !exportMemory) {
|
|
6644
|
-
const exports
|
|
6645
|
-
Object.assign(exports
|
|
6646
|
-
instance = { exports
|
|
7594
|
+
const exports = Object.create(null);
|
|
7595
|
+
Object.assign(exports, originalExports, { memory });
|
|
7596
|
+
instance = { exports };
|
|
6647
7597
|
}
|
|
6648
7598
|
const module = source.module;
|
|
6649
7599
|
if (wasi) {
|
|
@@ -6768,12 +7718,7 @@ class MessageHandler extends wasiThreads.ThreadMessageHandler {
|
|
|
6768
7718
|
try {
|
|
6769
7719
|
if (type === 'async-worker-init') {
|
|
6770
7720
|
this.handleAfterLoad(e, () => {
|
|
6771
|
-
this.napiModule.initWorker(payload.arg);
|
|
6772
|
-
});
|
|
6773
|
-
}
|
|
6774
|
-
else if (type === 'async-work-execute') {
|
|
6775
|
-
this.handleAfterLoad(e, () => {
|
|
6776
|
-
this.napiModule.executeAsyncWork(payload.work);
|
|
7721
|
+
this.napiModule.initWorker(payload.arg, payload.func);
|
|
6777
7722
|
});
|
|
6778
7723
|
}
|
|
6779
7724
|
}
|
|
@@ -6784,7 +7729,7 @@ class MessageHandler extends wasiThreads.ThreadMessageHandler {
|
|
|
6784
7729
|
}
|
|
6785
7730
|
}
|
|
6786
7731
|
|
|
6787
|
-
const version = "1.
|
|
7732
|
+
const version = "1.11.3";
|
|
6788
7733
|
|
|
6789
7734
|
exports.MessageHandler = MessageHandler;
|
|
6790
7735
|
exports.createNapiModule = createNapiModule;
|