emnapi 1.9.1 → 1.9.2
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/dist/library_napi.js +39 -34
- package/include/node/emnapi.h +1 -1
- package/package.json +1 -1
package/dist/library_napi.js
CHANGED
|
@@ -557,6 +557,7 @@ function _napi_create_async_work(env, resource, resource_name, execute, complete
|
|
|
557
557
|
var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
|
|
558
558
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
559
559
|
var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
|
|
560
|
+
{{{ from64('result') }}};
|
|
560
561
|
{{{ makeSetValue('result', 0, 'id', '*') }}};
|
|
561
562
|
return envObject.clearLastError();
|
|
562
563
|
}
|
|
@@ -728,7 +729,7 @@ var emnapiString = {
|
|
|
728
729
|
ptr >>>= 0;
|
|
729
730
|
var HEAPU8 = new Uint8Array(wasmMemory.buffer);
|
|
730
731
|
var end = ptr;
|
|
731
|
-
if (length === -1) {
|
|
732
|
+
if (length === -1 || length === 4294967295) {
|
|
732
733
|
for (; HEAPU8[end];)
|
|
733
734
|
++end;
|
|
734
735
|
}
|
|
@@ -821,12 +822,12 @@ var emnapiString = {
|
|
|
821
822
|
return '';
|
|
822
823
|
ptr >>>= 0;
|
|
823
824
|
var end = ptr;
|
|
824
|
-
if (length === -1) {
|
|
825
|
-
var idx = end
|
|
825
|
+
if (length === -1 || length === 4294967295) {
|
|
826
|
+
var idx = end >>> 1;
|
|
826
827
|
var HEAPU16 = new Uint16Array(wasmMemory.buffer);
|
|
827
828
|
while (HEAPU16[idx])
|
|
828
829
|
++idx;
|
|
829
|
-
end = idx << 1;
|
|
830
|
+
end = (idx << 1) >>> 0;
|
|
830
831
|
}
|
|
831
832
|
else {
|
|
832
833
|
end = ptr + (length >>> 0) * 2;
|
|
@@ -866,7 +867,7 @@ var emnapiString = {
|
|
|
866
867
|
// @ts-expect-error
|
|
867
868
|
var envObject = emnapiCtx.envStore.get(env);
|
|
868
869
|
envObject.checkGCAccess();
|
|
869
|
-
var autoLength = length === -1;
|
|
870
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
870
871
|
var sizelength = length >>> 0;
|
|
871
872
|
if (length !== 0) {
|
|
872
873
|
if (!str)
|
|
@@ -891,7 +892,7 @@ var emnapiString = {
|
|
|
891
892
|
// @ts-expect-error
|
|
892
893
|
var envObject = emnapiCtx.envStore.get(env);
|
|
893
894
|
envObject.checkGCAccess();
|
|
894
|
-
var autoLength = length === -1;
|
|
895
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
895
896
|
var sizelength = length >>> 0;
|
|
896
897
|
if (length !== 0) {
|
|
897
898
|
if (!str)
|
|
@@ -1041,6 +1042,7 @@ var emnapiExternalMemory = {
|
|
|
1041
1042
|
var pointer = _malloc({{{ to64('arrayBuffer.byteLength') }}});
|
|
1042
1043
|
if (!pointer)
|
|
1043
1044
|
throw new Error('Out of memory');
|
|
1045
|
+
{{{ from64('pointer') }}};
|
|
1044
1046
|
new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
|
|
1045
1047
|
info.address = pointer;
|
|
1046
1048
|
info.ownership = emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
|
|
@@ -2349,7 +2351,7 @@ function _napi_define_class(env, utf8name, length, constructor, callback_data, p
|
|
|
2349
2351
|
if (!properties)
|
|
2350
2352
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2351
2353
|
}
|
|
2352
|
-
if ((length
|
|
2354
|
+
if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
|
|
2353
2355
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2354
2356
|
}
|
|
2355
2357
|
var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
|
|
@@ -2693,7 +2695,7 @@ function emnapiSyncMemory(js_to_wasm, arrayBufferOrView, offset, len) {
|
|
|
2693
2695
|
var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
|
|
2694
2696
|
if (!pointer)
|
|
2695
2697
|
throw new Error('Unknown ArrayBuffer address');
|
|
2696
|
-
if (typeof len !== 'number' || len === -1) {
|
|
2698
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
2697
2699
|
len = arrayBufferOrView.byteLength - offset;
|
|
2698
2700
|
}
|
|
2699
2701
|
len = len >>> 0;
|
|
@@ -2715,7 +2717,7 @@ function emnapiSyncMemory(js_to_wasm, arrayBufferOrView, offset, len) {
|
|
|
2715
2717
|
var pointer = viewPointerInfo.address;
|
|
2716
2718
|
if (!pointer)
|
|
2717
2719
|
throw new Error('Unknown ArrayBuffer address');
|
|
2718
|
-
if (typeof len !== 'number' || len === -1) {
|
|
2720
|
+
if (typeof len !== 'number' || len === -1 || len === 4294967295) {
|
|
2719
2721
|
len = latestView.byteLength - offset;
|
|
2720
2722
|
}
|
|
2721
2723
|
len = len >>> 0;
|
|
@@ -3346,6 +3348,7 @@ function _napi_create_buffer(env, size, data, result) {
|
|
|
3346
3348
|
pointer = _malloc({{{ to64('size') }}});
|
|
3347
3349
|
if (!pointer)
|
|
3348
3350
|
throw new Error('Out of memory');
|
|
3351
|
+
{{{ from64('pointer') }}};
|
|
3349
3352
|
new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
|
|
3350
3353
|
var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
|
|
3351
3354
|
var viewDescriptor = {
|
|
@@ -3549,7 +3552,7 @@ function _node_api_symbol_for(env, utf8description, length, result) {
|
|
|
3549
3552
|
{{{ from64('length') }}};
|
|
3550
3553
|
{{{ from64('utf8description') }}};
|
|
3551
3554
|
{{{ from64('result') }}};
|
|
3552
|
-
var autoLength = length === -1;
|
|
3555
|
+
var autoLength = length === -1 || length === 4294967295;
|
|
3553
3556
|
var sizelength = length >>> 0;
|
|
3554
3557
|
if (length !== 0) {
|
|
3555
3558
|
if (!utf8description)
|
|
@@ -5658,6 +5661,7 @@ var emnapiTSFN = {
|
|
|
5658
5661
|
var queue = _malloc({{{ to64('size') }}});
|
|
5659
5662
|
if (!queue)
|
|
5660
5663
|
return false;
|
|
5664
|
+
{{{ from64('queue') }}};
|
|
5661
5665
|
new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
|
|
5662
5666
|
emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
|
|
5663
5667
|
return true;
|
|
@@ -5677,6 +5681,7 @@ var emnapiTSFN = {
|
|
|
5677
5681
|
var node = _malloc({{{ to64('size') }}});
|
|
5678
5682
|
if (!node)
|
|
5679
5683
|
throw new Error('OOM');
|
|
5684
|
+
{{{ from64('node') }}};
|
|
5680
5685
|
emnapiTSFN.storeSizeTypeValue(node, data, false);
|
|
5681
5686
|
emnapiTSFN.storeSizeTypeValue(node + {{{ POINTER_SIZE }}}, 0, false);
|
|
5682
5687
|
if (head === 0 && tail === 0) {
|
|
@@ -5860,10 +5865,10 @@ var emnapiTSFN = {
|
|
|
5860
5865
|
var arr, index;
|
|
5861
5866
|
#if MEMORY64
|
|
5862
5867
|
arr = new BigUint64Array(wasmMemory.buffer);
|
|
5863
|
-
index = (func + offset)
|
|
5868
|
+
index = (func + offset) >>> 3;
|
|
5864
5869
|
#else
|
|
5865
5870
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
5866
|
-
index = (func + offset)
|
|
5871
|
+
index = (func + offset) >>> 2;
|
|
5867
5872
|
#endif
|
|
5868
5873
|
Atomics.add(arr, index, {{{ to64('1') }}});
|
|
5869
5874
|
},
|
|
@@ -5872,10 +5877,10 @@ var emnapiTSFN = {
|
|
|
5872
5877
|
var arr, index;
|
|
5873
5878
|
#if MEMORY64
|
|
5874
5879
|
arr = new BigUint64Array(wasmMemory.buffer);
|
|
5875
|
-
index = (func + offset)
|
|
5880
|
+
index = (func + offset) >>> 3;
|
|
5876
5881
|
#else
|
|
5877
5882
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
5878
|
-
index = (func + offset)
|
|
5883
|
+
index = (func + offset) >>> 2;
|
|
5879
5884
|
#endif
|
|
5880
5885
|
Atomics.sub(arr, index, {{{ to64('1') }}});
|
|
5881
5886
|
},
|
|
@@ -5887,10 +5892,10 @@ var emnapiTSFN = {
|
|
|
5887
5892
|
var arr, index;
|
|
5888
5893
|
#if MEMORY64
|
|
5889
5894
|
arr = new BigUint64Array(wasmMemory.buffer);
|
|
5890
|
-
index = (func + offset)
|
|
5895
|
+
index = (func + offset) >>> 3;
|
|
5891
5896
|
#else
|
|
5892
5897
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
5893
|
-
index = (func + offset)
|
|
5898
|
+
index = (func + offset) >>> 2;
|
|
5894
5899
|
#endif
|
|
5895
5900
|
Atomics.add(arr, index, {{{ to64('1') }}});
|
|
5896
5901
|
},
|
|
@@ -5899,18 +5904,18 @@ var emnapiTSFN = {
|
|
|
5899
5904
|
var arr, index;
|
|
5900
5905
|
#if MEMORY64
|
|
5901
5906
|
arr = new BigUint64Array(wasmMemory.buffer);
|
|
5902
|
-
index = (func + offset)
|
|
5907
|
+
index = (func + offset) >>> 3;
|
|
5903
5908
|
#else
|
|
5904
5909
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
5905
|
-
index = (func + offset)
|
|
5910
|
+
index = (func + offset) >>> 2;
|
|
5906
5911
|
#endif
|
|
5907
5912
|
Atomics.sub(arr, index, {{{ to64('1') }}});
|
|
5908
5913
|
},
|
|
5909
5914
|
getState: function (func) {
|
|
5910
|
-
return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state)
|
|
5915
|
+
return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
|
|
5911
5916
|
},
|
|
5912
5917
|
setState: function (func, value) {
|
|
5913
|
-
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state)
|
|
5918
|
+
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
|
|
5914
5919
|
},
|
|
5915
5920
|
getHandlesClosing: function (func) {
|
|
5916
5921
|
return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
|
|
@@ -5919,7 +5924,7 @@ var emnapiTSFN = {
|
|
|
5919
5924
|
Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
|
|
5920
5925
|
},
|
|
5921
5926
|
getDispatchState: function (func) {
|
|
5922
|
-
return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state)
|
|
5927
|
+
return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
|
|
5923
5928
|
},
|
|
5924
5929
|
getContext: function (func) {
|
|
5925
5930
|
return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
|
|
@@ -5951,20 +5956,20 @@ var emnapiTSFN = {
|
|
|
5951
5956
|
if (unsigned) {
|
|
5952
5957
|
#if MEMORY64
|
|
5953
5958
|
arr = new BigUint64Array(wasmMemory.buffer);
|
|
5954
|
-
ret = Number(Atomics.load(arr, offset
|
|
5959
|
+
ret = Number(Atomics.load(arr, offset >>> 3));
|
|
5955
5960
|
#else
|
|
5956
5961
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
5957
|
-
ret = Atomics.load(arr, offset
|
|
5962
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
5958
5963
|
#endif
|
|
5959
5964
|
return ret;
|
|
5960
5965
|
}
|
|
5961
5966
|
else {
|
|
5962
5967
|
#if MEMORY64
|
|
5963
5968
|
arr = new BigInt64Array(wasmMemory.buffer);
|
|
5964
|
-
ret = Number(Atomics.load(arr, offset
|
|
5969
|
+
ret = Number(Atomics.load(arr, offset >>> 3));
|
|
5965
5970
|
#else
|
|
5966
5971
|
arr = new Int32Array(wasmMemory.buffer);
|
|
5967
|
-
ret = Atomics.load(arr, offset
|
|
5972
|
+
ret = Atomics.load(arr, offset >>> 2);
|
|
5968
5973
|
#endif
|
|
5969
5974
|
return ret;
|
|
5970
5975
|
}
|
|
@@ -5974,20 +5979,20 @@ var emnapiTSFN = {
|
|
|
5974
5979
|
if (unsigned) {
|
|
5975
5980
|
#if MEMORY64
|
|
5976
5981
|
arr = new BigUint64Array(wasmMemory.buffer);
|
|
5977
|
-
Atomics.store(arr, offset
|
|
5982
|
+
Atomics.store(arr, offset >>> 3, BigInt(value));
|
|
5978
5983
|
#else
|
|
5979
5984
|
arr = new Uint32Array(wasmMemory.buffer);
|
|
5980
|
-
Atomics.store(arr, offset
|
|
5985
|
+
Atomics.store(arr, offset >>> 2, value);
|
|
5981
5986
|
#endif
|
|
5982
5987
|
return undefined;
|
|
5983
5988
|
}
|
|
5984
5989
|
else {
|
|
5985
5990
|
#if MEMORY64
|
|
5986
5991
|
arr = new BigInt64Array(wasmMemory.buffer);
|
|
5987
|
-
Atomics.store(arr, offset
|
|
5992
|
+
Atomics.store(arr, offset >>> 3, BigInt(value >>> 0));
|
|
5988
5993
|
#else
|
|
5989
5994
|
arr = new Int32Array(wasmMemory.buffer);
|
|
5990
|
-
Atomics.store(arr, offset
|
|
5995
|
+
Atomics.store(arr, offset >>> 2, value >>> 0);
|
|
5991
5996
|
#endif
|
|
5992
5997
|
return undefined;
|
|
5993
5998
|
}
|
|
@@ -6006,7 +6011,7 @@ var emnapiTSFN = {
|
|
|
6006
6011
|
{{{ makeSetValue('func', 'emnapiTSFN.offset.is_some', '0', 'i8') }}};
|
|
6007
6012
|
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
6008
6013
|
envObject.unref();
|
|
6009
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref)
|
|
6014
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
6010
6015
|
var arr = new Uint32Array(wasmMemory.buffer);
|
|
6011
6016
|
if (Atomics.load(arr, asyncRefOffset) > 0) {
|
|
6012
6017
|
Atomics.store(arr, asyncRefOffset, 0);
|
|
@@ -6207,7 +6212,7 @@ var emnapiTSFN = {
|
|
|
6207
6212
|
var has_more = true;
|
|
6208
6213
|
var iterations_left = 1000;
|
|
6209
6214
|
var ui32a = new Uint32Array(wasmMemory.buffer);
|
|
6210
|
-
var index = (func + emnapiTSFN.offset.dispatch_state)
|
|
6215
|
+
var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
|
|
6211
6216
|
while (has_more && --iterations_left !== 0) {
|
|
6212
6217
|
Atomics.store(ui32a, index, 1);
|
|
6213
6218
|
has_more = emnapiTSFN.dispatchOne(func);
|
|
@@ -6220,7 +6225,7 @@ var emnapiTSFN = {
|
|
|
6220
6225
|
}
|
|
6221
6226
|
},
|
|
6222
6227
|
send: function (func) {
|
|
6223
|
-
var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state)
|
|
6228
|
+
var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
|
|
6224
6229
|
if ((current_state & 1) === 1) {
|
|
6225
6230
|
return;
|
|
6226
6231
|
}
|
|
@@ -6415,7 +6420,7 @@ function _napi_unref_threadsafe_function(env, func) {
|
|
|
6415
6420
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
6416
6421
|
}
|
|
6417
6422
|
{{{ from64('func') }}};
|
|
6418
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref)
|
|
6423
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
6419
6424
|
var arr = new Uint32Array(wasmMemory.buffer);
|
|
6420
6425
|
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
6421
6426
|
if (currentValue > 0) {
|
|
@@ -6434,7 +6439,7 @@ function _napi_ref_threadsafe_function(env, func) {
|
|
|
6434
6439
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
6435
6440
|
}
|
|
6436
6441
|
{{{ from64('func') }}};
|
|
6437
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref)
|
|
6442
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
|
|
6438
6443
|
var arr = new Uint32Array(wasmMemory.buffer);
|
|
6439
6444
|
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
6440
6445
|
if (!currentValue) {
|
package/include/node/emnapi.h
CHANGED