emnapi 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +160 -0
- package/LICENSE +21 -0
- package/README.md +875 -0
- package/cmake/wasm32.cmake +32 -0
- package/dist/library_napi.js +4784 -0
- package/include/common.h +26 -0
- package/include/emnapi.h +81 -0
- package/include/js_native_api.h +560 -0
- package/include/js_native_api_types.h +159 -0
- package/include/napi-inl.deprecated.h +186 -0
- package/include/napi-inl.h +6299 -0
- package/include/napi.h +3127 -0
- package/include/node_api.h +226 -0
- package/include/node_api_types.h +56 -0
- package/include/uv/threadpool.h +41 -0
- package/include/uv/unix.h +21 -0
- package/include/uv.h +134 -0
- package/index.d.ts +4 -0
- package/index.js +22 -0
- package/lib/wasm32/libdlmalloc.a +0 -0
- package/lib/wasm32/libemmalloc.a +0 -0
- package/lib/wasm32/libemnapi.a +0 -0
- package/lib/wasm32-emscripten/libemnapi-mt.a +0 -0
- package/lib/wasm32-emscripten/libemnapi.a +0 -0
- package/lib/wasm32-emscripten.txt +5 -0
- package/lib/wasm32-wasi/libemnapi.a +0 -0
- package/lib/wasm32-wasi.txt +4 -0
- package/lib/wasm32.txt +4 -0
- package/package.json +43 -0
- package/src/emnapi.c +1344 -0
- package/src/malloc/dlmalloc/dlmalloc.c +92 -0
- package/src/malloc/dlmalloc/malloc.c +6395 -0
- package/src/malloc/emmalloc/emmalloc.c +1551 -0
- package/src/malloc/memcpy.c +136 -0
- package/src/malloc/memset.c +98 -0
- package/src/malloc/sbrk.c +29 -0
- package/src/uv/queue.h +108 -0
- package/src/uv/threadpool.c +408 -0
- package/src/uv/unix/async.c +206 -0
- package/src/uv/unix/core.c +35 -0
- package/src/uv/unix/loop.c +36 -0
- package/src/uv/unix/thread.c +118 -0
- package/src/uv/uv-common.c +51 -0
- package/src/uv/uv-common.h +68 -0
|
@@ -0,0 +1,4784 @@
|
|
|
1
|
+
{{{ ((DEFAULT_LIBRARY_FUNCS_TO_INCLUDE.indexOf("$emnapiInit") === -1 ? DEFAULT_LIBRARY_FUNCS_TO_INCLUDE.push("$emnapiInit") : undefined), "") }}}
|
|
2
|
+
{{{ ((EXPORTED_RUNTIME_METHODS.indexOf("emnapiInit") === -1 ? EXPORTED_RUNTIME_METHODS.push("emnapiInit") : undefined), "") }}}
|
|
3
|
+
function _emnapi_create_memory_view(env, typedarray_type, external_data, byte_length, finalize_cb, finalize_hint, result
|
|
4
|
+
// @ts-expect-error
|
|
5
|
+
) {
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7
|
+
var value;
|
|
8
|
+
if (env == 0)
|
|
9
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
10
|
+
var envObject_1 = emnapiCtx.envStore.get(env);
|
|
11
|
+
if (envObject_1.tryCatch.hasCaught())
|
|
12
|
+
return envObject_1.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
13
|
+
envObject_1.clearLastError();
|
|
14
|
+
try {
|
|
15
|
+
if (result == 0)
|
|
16
|
+
return envObject_1.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
17
|
+
{{{ from64("byte_length") }}};
|
|
18
|
+
{{{ from64("external_data") }}};
|
|
19
|
+
{{{ from64("result") }}};
|
|
20
|
+
byte_length = byte_length >>> 0;
|
|
21
|
+
if (!external_data) {
|
|
22
|
+
byte_length = 0;
|
|
23
|
+
}
|
|
24
|
+
if (byte_length > 2147483647) {
|
|
25
|
+
throw new RangeError("Cannot create a memory view larger than 2147483647 bytes");
|
|
26
|
+
}
|
|
27
|
+
if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
|
|
28
|
+
throw new RangeError("Memory out of range");
|
|
29
|
+
}
|
|
30
|
+
if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
|
|
31
|
+
throw emnapiCtx.createNotSupportWeakRefError("emnapi_create_memory_view", "Parameter \"finalize_cb\" must be 0(NULL)");
|
|
32
|
+
}
|
|
33
|
+
var viewDescriptor_1 = void 0;
|
|
34
|
+
switch (typedarray_type) {
|
|
35
|
+
case 0 /* emnapi_memory_view_type.emnapi_int8_array */:
|
|
36
|
+
viewDescriptor_1 = { Ctor: Int8Array, address: external_data, length: byte_length, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
37
|
+
break;
|
|
38
|
+
case 1 /* emnapi_memory_view_type.emnapi_uint8_array */:
|
|
39
|
+
viewDescriptor_1 = { Ctor: Uint8Array, address: external_data, length: byte_length, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
40
|
+
break;
|
|
41
|
+
case 2 /* emnapi_memory_view_type.emnapi_uint8_clamped_array */:
|
|
42
|
+
viewDescriptor_1 = { Ctor: Uint8ClampedArray, address: external_data, length: byte_length, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
43
|
+
break;
|
|
44
|
+
case 3 /* emnapi_memory_view_type.emnapi_int16_array */:
|
|
45
|
+
viewDescriptor_1 = { Ctor: Int16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
46
|
+
break;
|
|
47
|
+
case 4 /* emnapi_memory_view_type.emnapi_uint16_array */:
|
|
48
|
+
viewDescriptor_1 = { Ctor: Uint16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
49
|
+
break;
|
|
50
|
+
case 5 /* emnapi_memory_view_type.emnapi_int32_array */:
|
|
51
|
+
viewDescriptor_1 = { Ctor: Int32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
52
|
+
break;
|
|
53
|
+
case 6 /* emnapi_memory_view_type.emnapi_uint32_array */:
|
|
54
|
+
viewDescriptor_1 = { Ctor: Uint32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
55
|
+
break;
|
|
56
|
+
case 7 /* emnapi_memory_view_type.emnapi_float32_array */:
|
|
57
|
+
viewDescriptor_1 = { Ctor: Float32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
58
|
+
break;
|
|
59
|
+
case 8 /* emnapi_memory_view_type.emnapi_float64_array */:
|
|
60
|
+
viewDescriptor_1 = { Ctor: Float64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
61
|
+
break;
|
|
62
|
+
case 9 /* emnapi_memory_view_type.emnapi_bigint64_array */:
|
|
63
|
+
viewDescriptor_1 = { Ctor: BigInt64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
64
|
+
break;
|
|
65
|
+
case 10 /* emnapi_memory_view_type.emnapi_biguint64_array */:
|
|
66
|
+
viewDescriptor_1 = { Ctor: BigUint64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
67
|
+
break;
|
|
68
|
+
case -1 /* emnapi_memory_view_type.emnapi_data_view */:
|
|
69
|
+
viewDescriptor_1 = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
70
|
+
break;
|
|
71
|
+
case -2 /* emnapi_memory_view_type.emnapi_buffer */:
|
|
72
|
+
viewDescriptor_1 = { Ctor: emnapiCtx.feature.Buffer, address: external_data, length: byte_length, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0 };
|
|
73
|
+
break;
|
|
74
|
+
default: return envObject_1.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
75
|
+
}
|
|
76
|
+
var Ctor_1 = viewDescriptor_1.Ctor;
|
|
77
|
+
var typedArray_1 = typedarray_type === -2 /* emnapi_memory_view_type.emnapi_buffer */ ? emnapiCtx.feature.Buffer.from(wasmMemory.buffer, viewDescriptor_1.address, viewDescriptor_1.length) : new Ctor_1(wasmMemory.buffer, viewDescriptor_1.address, viewDescriptor_1.length);
|
|
78
|
+
var handle_1 = emnapiCtx.addToCurrentScope(typedArray_1);
|
|
79
|
+
emnapiExternalMemory.wasmMemoryViewTable.set(typedArray_1, viewDescriptor_1);
|
|
80
|
+
if (finalize_cb) {
|
|
81
|
+
var status_1 = _napi_add_finalizer(env, handle_1.id, external_data, finalize_cb, finalize_hint, 0);
|
|
82
|
+
if (status_1 === 10 /* napi_status.napi_pending_exception */) {
|
|
83
|
+
var err_1 = envObject_1.tryCatch.extractException();
|
|
84
|
+
envObject_1.clearLastError();
|
|
85
|
+
throw err_1;
|
|
86
|
+
}
|
|
87
|
+
else if (status_1 !== 0 /* napi_status.napi_ok */) {
|
|
88
|
+
return envObject_1.setLastError(status_1);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
value = handle_1.id;
|
|
92
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
93
|
+
return envObject_1.getReturnStatus();
|
|
94
|
+
}
|
|
95
|
+
catch (err_2) {
|
|
96
|
+
envObject_1.tryCatch.setError(err_2);
|
|
97
|
+
return envObject_1.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function emnapi_is_support_weakref() {
|
|
101
|
+
return emnapiCtx.feature.supportFinalizer ? 1 : 0;
|
|
102
|
+
}
|
|
103
|
+
function emnapi_is_support_bigint() {
|
|
104
|
+
return emnapiCtx.feature.supportBigInt ? 1 : 0;
|
|
105
|
+
}
|
|
106
|
+
function emnapi_is_node_binding_available() {
|
|
107
|
+
return emnapiNodeBinding ? 1 : 0;
|
|
108
|
+
}
|
|
109
|
+
function emnapiSyncMemory(js_to_wasm, arrayBufferOrView, offset, len) {
|
|
110
|
+
offset = offset !== null && offset !== void 0 ? offset : 0;
|
|
111
|
+
offset = offset >>> 0;
|
|
112
|
+
var view;
|
|
113
|
+
if (arrayBufferOrView instanceof ArrayBuffer) {
|
|
114
|
+
var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
|
|
115
|
+
if (!pointer)
|
|
116
|
+
throw new Error('Unknown ArrayBuffer address');
|
|
117
|
+
if (typeof len !== 'number' || len === -1) {
|
|
118
|
+
len = arrayBufferOrView.byteLength - offset;
|
|
119
|
+
}
|
|
120
|
+
len = len >>> 0;
|
|
121
|
+
if (len === 0)
|
|
122
|
+
return arrayBufferOrView;
|
|
123
|
+
view = new Uint8Array(arrayBufferOrView, offset, len);
|
|
124
|
+
var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
|
|
125
|
+
if (!js_to_wasm) {
|
|
126
|
+
view.set(wasmMemoryU8.subarray(pointer, pointer + len));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
wasmMemoryU8.set(view, pointer);
|
|
130
|
+
}
|
|
131
|
+
return arrayBufferOrView;
|
|
132
|
+
}
|
|
133
|
+
if (ArrayBuffer.isView(arrayBufferOrView)) {
|
|
134
|
+
var viewPointerInfo = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
|
|
135
|
+
var latestView = viewPointerInfo.view;
|
|
136
|
+
var pointer = viewPointerInfo.address;
|
|
137
|
+
if (!pointer)
|
|
138
|
+
throw new Error('Unknown ArrayBuffer address');
|
|
139
|
+
if (typeof len !== 'number' || len === -1) {
|
|
140
|
+
len = latestView.byteLength - offset;
|
|
141
|
+
}
|
|
142
|
+
len = len >>> 0;
|
|
143
|
+
if (len === 0)
|
|
144
|
+
return latestView;
|
|
145
|
+
view = new Uint8Array(latestView.buffer, latestView.byteOffset + offset, len);
|
|
146
|
+
var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
|
|
147
|
+
if (!js_to_wasm) {
|
|
148
|
+
view.set(wasmMemoryU8.subarray(pointer, pointer + len));
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
wasmMemoryU8.set(view, pointer);
|
|
152
|
+
}
|
|
153
|
+
return latestView;
|
|
154
|
+
}
|
|
155
|
+
throw new TypeError('emnapiSyncMemory expect ArrayBuffer or ArrayBufferView as first parameter');
|
|
156
|
+
}
|
|
157
|
+
// @ts-expect-error
|
|
158
|
+
function emnapi_sync_memory(env, js_to_wasm, arraybuffer_or_view, offset, len) {
|
|
159
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
160
|
+
var v;
|
|
161
|
+
if (env == 0)
|
|
162
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
163
|
+
var envObject_2 = emnapiCtx.envStore.get(env);
|
|
164
|
+
if (envObject_2.tryCatch.hasCaught())
|
|
165
|
+
return envObject_2.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
166
|
+
envObject_2.clearLastError();
|
|
167
|
+
try {
|
|
168
|
+
if (arraybuffer_or_view == 0)
|
|
169
|
+
return envObject_2.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
170
|
+
{{{ from64("arraybuffer_or_view") }}};
|
|
171
|
+
{{{ from64("offset") }}};
|
|
172
|
+
{{{ from64("len") }}};
|
|
173
|
+
var handleId_1 = {{{ makeGetValue("arraybuffer_or_view", 0, "*") }}};
|
|
174
|
+
var handle_2 = envObject_2.ctx.handleStore.get(handleId_1);
|
|
175
|
+
if (!handle_2.isArrayBuffer() && !handle_2.isTypedArray() && !handle_2.isDataView()) {
|
|
176
|
+
return envObject_2.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
177
|
+
}
|
|
178
|
+
var ret_1 = emnapiSyncMemory(Boolean(js_to_wasm), handle_2.value, offset, len);
|
|
179
|
+
if (handle_2.value !== ret_1) {
|
|
180
|
+
{{{ from64("arraybuffer_or_view") }}};
|
|
181
|
+
v = envObject_2.ensureHandleId(ret_1);
|
|
182
|
+
{{{ makeSetValue("arraybuffer_or_view", 0, "v", "*") }}};
|
|
183
|
+
}
|
|
184
|
+
return envObject_2.getReturnStatus();
|
|
185
|
+
}
|
|
186
|
+
catch (err_3) {
|
|
187
|
+
envObject_2.tryCatch.setError(err_3);
|
|
188
|
+
return envObject_2.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function emnapiGetMemoryAddress(arrayBufferOrView) {
|
|
192
|
+
var isArrayBuffer = arrayBufferOrView instanceof ArrayBuffer;
|
|
193
|
+
var isDataView = arrayBufferOrView instanceof DataView;
|
|
194
|
+
var isTypedArray = ArrayBuffer.isView(arrayBufferOrView) && !isDataView;
|
|
195
|
+
if (!isArrayBuffer && !isTypedArray && !isDataView) {
|
|
196
|
+
throw new TypeError('emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter');
|
|
197
|
+
}
|
|
198
|
+
var info;
|
|
199
|
+
if (isArrayBuffer) {
|
|
200
|
+
info = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
info = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
address: info.address,
|
|
207
|
+
ownership: info.ownership,
|
|
208
|
+
runtimeAllocated: info.runtimeAllocated
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
// @ts-expect-error
|
|
212
|
+
function emnapi_get_memory_address(env, arraybuffer_or_view, address, ownership, runtime_allocated) {
|
|
213
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
214
|
+
var p, runtimeAllocated, ownershipOut;
|
|
215
|
+
var info;
|
|
216
|
+
if (env == 0)
|
|
217
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
218
|
+
var envObject_3 = emnapiCtx.envStore.get(env);
|
|
219
|
+
if (envObject_3.tryCatch.hasCaught())
|
|
220
|
+
return envObject_3.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
221
|
+
envObject_3.clearLastError();
|
|
222
|
+
try {
|
|
223
|
+
if (arraybuffer_or_view == 0)
|
|
224
|
+
return envObject_3.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
225
|
+
if (!address && !ownership && !runtime_allocated) {
|
|
226
|
+
return envObject_3.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
227
|
+
}
|
|
228
|
+
var handle_3 = envObject_3.ctx.handleStore.get(arraybuffer_or_view);
|
|
229
|
+
info = emnapiGetMemoryAddress(handle_3.value);
|
|
230
|
+
p = info.address;
|
|
231
|
+
if (address) {
|
|
232
|
+
{{{ from64("address") }}};
|
|
233
|
+
{{{ makeSetValue("address", 0, "p", "*") }}};
|
|
234
|
+
}
|
|
235
|
+
if (ownership) {
|
|
236
|
+
{{{ from64("ownership") }}};
|
|
237
|
+
ownershipOut = info.ownership;
|
|
238
|
+
{{{ makeSetValue("ownership", 0, "ownershipOut", "i32") }}};
|
|
239
|
+
}
|
|
240
|
+
if (runtime_allocated) {
|
|
241
|
+
{{{ from64("runtime_allocated") }}};
|
|
242
|
+
runtimeAllocated = info.runtimeAllocated;
|
|
243
|
+
{{{ makeSetValue("runtime_allocated", 0, "runtimeAllocated", "i8") }}};
|
|
244
|
+
}
|
|
245
|
+
return envObject_3.getReturnStatus();
|
|
246
|
+
}
|
|
247
|
+
catch (err_4) {
|
|
248
|
+
envObject_3.tryCatch.setError(err_4);
|
|
249
|
+
return envObject_3.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
emnapiImplementHelper('$emnapiSyncMemory', undefined, emnapiSyncMemory, ['$emnapiExternalMemory'], 'syncMemory');
|
|
253
|
+
emnapiImplementHelper('$emnapiGetMemoryAddress', undefined, emnapiGetMemoryAddress, ['$emnapiExternalMemory'], 'getMemoryAddress');
|
|
254
|
+
emnapiImplement2('emnapi_is_support_weakref', 'i', emnapi_is_support_weakref);
|
|
255
|
+
emnapiImplement2('emnapi_is_support_bigint', 'i', emnapi_is_support_bigint);
|
|
256
|
+
emnapiImplement2('emnapi_is_node_binding_available', 'i', emnapi_is_node_binding_available);
|
|
257
|
+
emnapiImplement2('emnapi_create_memory_view', 'ipippppp', _emnapi_create_memory_view, ['napi_add_finalizer', '$emnapiExternalMemory']);
|
|
258
|
+
emnapiImplement2('emnapi_sync_memory', 'ipppppi', emnapi_sync_memory, ['$emnapiSyncMemory']);
|
|
259
|
+
emnapiImplement2('emnapi_get_memory_address', 'ipppp', emnapi_get_memory_address, ['$emnapiGetMemoryAddress']);
|
|
260
|
+
function napi_set_instance_data(env, data, finalize_cb, finalize_hint) {
|
|
261
|
+
if (env == 0)
|
|
262
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
263
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
264
|
+
{{{ from64('data') }}};
|
|
265
|
+
{{{ from64('finalize_cb') }}};
|
|
266
|
+
{{{ from64('finalize_hint') }}};
|
|
267
|
+
envObject.setInstanceData(data, finalize_cb, finalize_hint);
|
|
268
|
+
return envObject.clearLastError();
|
|
269
|
+
}
|
|
270
|
+
function napi_get_instance_data(env, data) {
|
|
271
|
+
if (env == 0)
|
|
272
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
273
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
274
|
+
if (data == 0)
|
|
275
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
276
|
+
{{{ from64('data') }}};
|
|
277
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
278
|
+
var value = envObject.getInstanceData();
|
|
279
|
+
{{{ makeSetValue('data', 0, 'value', '*') }}};
|
|
280
|
+
return envObject.clearLastError();
|
|
281
|
+
}
|
|
282
|
+
emnapiImplement('napi_set_instance_data', 'ipppp', napi_set_instance_data);
|
|
283
|
+
emnapiImplement('napi_get_instance_data', 'ipp', napi_get_instance_data);
|
|
284
|
+
function __emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
|
|
285
|
+
{{{ from64('error_code') }}};
|
|
286
|
+
{{{ from64('engine_error_code') }}};
|
|
287
|
+
{{{ from64('engine_reserved') }}};
|
|
288
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
289
|
+
var lastError = envObject.lastError;
|
|
290
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
291
|
+
var errorCode = lastError.errorCode;
|
|
292
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
293
|
+
var engineErrorCode = lastError.engineErrorCode >>> 0;
|
|
294
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
295
|
+
var engineReserved = lastError.engineReserved;
|
|
296
|
+
{{{ from64('engineReserved') }}};
|
|
297
|
+
{{{ makeSetValue('error_code', 0, 'errorCode', 'i32') }}};
|
|
298
|
+
{{{ makeSetValue('engine_error_code', 0, 'engineErrorCode', 'u32') }}};
|
|
299
|
+
{{{ makeSetValue('engine_reserved', 0, 'engineReserved', '*') }}};
|
|
300
|
+
}
|
|
301
|
+
// @ts-expect-error
|
|
302
|
+
function napi_throw(env, error) {
|
|
303
|
+
if (env == 0)
|
|
304
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
305
|
+
var envObject_4 = emnapiCtx.envStore.get(env);
|
|
306
|
+
if (envObject_4.tryCatch.hasCaught())
|
|
307
|
+
return envObject_4.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
308
|
+
envObject_4.clearLastError();
|
|
309
|
+
try {
|
|
310
|
+
if (error == 0)
|
|
311
|
+
return envObject_4.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
312
|
+
envObject_4.tryCatch.setError(emnapiCtx.handleStore.get(error).value);
|
|
313
|
+
return envObject_4.clearLastError();
|
|
314
|
+
} // @ts-expect-error
|
|
315
|
+
catch (err_5) {
|
|
316
|
+
envObject_4.tryCatch.setError(err_5);
|
|
317
|
+
return envObject_4.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
// @ts-expect-error
|
|
321
|
+
function napi_throw_error(env, code, msg) {
|
|
322
|
+
if (env == 0)
|
|
323
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
324
|
+
var envObject_5 = emnapiCtx.envStore.get(env);
|
|
325
|
+
if (envObject_5.tryCatch.hasCaught())
|
|
326
|
+
return envObject_5.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
327
|
+
envObject_5.clearLastError();
|
|
328
|
+
try {
|
|
329
|
+
if (msg == 0)
|
|
330
|
+
return envObject_5.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
331
|
+
{{{ from64("code") }}};
|
|
332
|
+
{{{ from64("msg") }}};
|
|
333
|
+
var error_1 = new Error(UTF8ToString(msg));
|
|
334
|
+
if (code) {
|
|
335
|
+
error_1.code = UTF8ToString(code);
|
|
336
|
+
}
|
|
337
|
+
envObject_5.tryCatch.setError(error_1);
|
|
338
|
+
return envObject_5.clearLastError();
|
|
339
|
+
} // @ts-expect-error
|
|
340
|
+
catch (err_6) {
|
|
341
|
+
envObject_5.tryCatch.setError(err_6);
|
|
342
|
+
return envObject_5.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
// @ts-expect-error
|
|
346
|
+
function napi_throw_type_error(env, code, msg) {
|
|
347
|
+
if (env == 0)
|
|
348
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
349
|
+
var envObject_6 = emnapiCtx.envStore.get(env);
|
|
350
|
+
if (envObject_6.tryCatch.hasCaught())
|
|
351
|
+
return envObject_6.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
352
|
+
envObject_6.clearLastError();
|
|
353
|
+
try {
|
|
354
|
+
if (msg == 0)
|
|
355
|
+
return envObject_6.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
356
|
+
{{{ from64("code") }}};
|
|
357
|
+
{{{ from64("msg") }}};
|
|
358
|
+
var error_2 = new TypeError(UTF8ToString(msg));
|
|
359
|
+
if (code) {
|
|
360
|
+
error_2.code = UTF8ToString(code);
|
|
361
|
+
}
|
|
362
|
+
envObject_6.tryCatch.setError(error_2);
|
|
363
|
+
return envObject_6.clearLastError();
|
|
364
|
+
} // @ts-expect-error
|
|
365
|
+
catch (err_7) {
|
|
366
|
+
envObject_6.tryCatch.setError(err_7);
|
|
367
|
+
return envObject_6.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
// @ts-expect-error
|
|
371
|
+
function napi_throw_range_error(env, code, msg) {
|
|
372
|
+
if (env == 0)
|
|
373
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
374
|
+
var envObject_7 = emnapiCtx.envStore.get(env);
|
|
375
|
+
if (envObject_7.tryCatch.hasCaught())
|
|
376
|
+
return envObject_7.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
377
|
+
envObject_7.clearLastError();
|
|
378
|
+
try {
|
|
379
|
+
if (msg == 0)
|
|
380
|
+
return envObject_7.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
381
|
+
{{{ from64("code") }}};
|
|
382
|
+
{{{ from64("msg") }}};
|
|
383
|
+
var error_3 = new RangeError(UTF8ToString(msg));
|
|
384
|
+
if (code) {
|
|
385
|
+
error_3.code = UTF8ToString(code);
|
|
386
|
+
}
|
|
387
|
+
envObject_7.tryCatch.setError(error_3);
|
|
388
|
+
return envObject_7.clearLastError();
|
|
389
|
+
} // @ts-expect-error
|
|
390
|
+
catch (err_8) {
|
|
391
|
+
envObject_7.tryCatch.setError(err_8);
|
|
392
|
+
return envObject_7.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
// @ts-expect-error
|
|
396
|
+
function node_api_throw_syntax_error(env, code, msg) {
|
|
397
|
+
if (env == 0)
|
|
398
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
399
|
+
var envObject_8 = emnapiCtx.envStore.get(env);
|
|
400
|
+
if (envObject_8.tryCatch.hasCaught())
|
|
401
|
+
return envObject_8.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
402
|
+
envObject_8.clearLastError();
|
|
403
|
+
try {
|
|
404
|
+
if (msg == 0)
|
|
405
|
+
return envObject_8.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
406
|
+
{{{ from64("code") }}};
|
|
407
|
+
{{{ from64("msg") }}};
|
|
408
|
+
var error_4 = new SyntaxError(UTF8ToString(msg));
|
|
409
|
+
if (code) {
|
|
410
|
+
error_4.code = UTF8ToString(code);
|
|
411
|
+
}
|
|
412
|
+
envObject_8.tryCatch.setError(error_4);
|
|
413
|
+
return envObject_8.clearLastError();
|
|
414
|
+
} // @ts-expect-error
|
|
415
|
+
catch (err_9) {
|
|
416
|
+
envObject_8.tryCatch.setError(err_9);
|
|
417
|
+
return envObject_8.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
function napi_is_exception_pending(env, result) {
|
|
421
|
+
if (env == 0)
|
|
422
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
423
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
424
|
+
if (result == 0)
|
|
425
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
426
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
427
|
+
var r = envObject.tryCatch.hasCaught();
|
|
428
|
+
{{{ from64('result') }}};
|
|
429
|
+
{{{ makeSetValue('result', 0, 'r ? 1 : 0', 'i8') }}};
|
|
430
|
+
return envObject.clearLastError();
|
|
431
|
+
}
|
|
432
|
+
function napi_create_error(env, code, msg, result) {
|
|
433
|
+
if (env == 0)
|
|
434
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
435
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
436
|
+
if (msg == 0)
|
|
437
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
438
|
+
if (result == 0)
|
|
439
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
440
|
+
var msgValue = emnapiCtx.handleStore.get(msg).value;
|
|
441
|
+
if (typeof msgValue !== 'string') {
|
|
442
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
443
|
+
}
|
|
444
|
+
var error = new Error(msgValue);
|
|
445
|
+
if (code) {
|
|
446
|
+
var codeValue_1 = emnapiCtx.handleStore.get(code).value;
|
|
447
|
+
if (typeof codeValue_1 !== "string") {
|
|
448
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
449
|
+
}
|
|
450
|
+
error.code = codeValue_1;
|
|
451
|
+
}
|
|
452
|
+
{{{ from64('result') }}};
|
|
453
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
454
|
+
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
455
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
456
|
+
return envObject.clearLastError();
|
|
457
|
+
}
|
|
458
|
+
function napi_create_type_error(env, code, msg, result) {
|
|
459
|
+
if (env == 0)
|
|
460
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
461
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
462
|
+
if (msg == 0)
|
|
463
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
464
|
+
if (result == 0)
|
|
465
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
466
|
+
var msgValue = emnapiCtx.handleStore.get(msg).value;
|
|
467
|
+
if (typeof msgValue !== 'string') {
|
|
468
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
469
|
+
}
|
|
470
|
+
var error = new TypeError(msgValue);
|
|
471
|
+
if (code) {
|
|
472
|
+
var codeValue_2 = emnapiCtx.handleStore.get(code).value;
|
|
473
|
+
if (typeof codeValue_2 !== "string") {
|
|
474
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
475
|
+
}
|
|
476
|
+
error.code = codeValue_2;
|
|
477
|
+
}
|
|
478
|
+
{{{ from64('result') }}};
|
|
479
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
480
|
+
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
481
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
482
|
+
return envObject.clearLastError();
|
|
483
|
+
}
|
|
484
|
+
function napi_create_range_error(env, code, msg, result) {
|
|
485
|
+
if (env == 0)
|
|
486
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
487
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
488
|
+
if (msg == 0)
|
|
489
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
490
|
+
if (result == 0)
|
|
491
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
492
|
+
var msgValue = emnapiCtx.handleStore.get(msg).value;
|
|
493
|
+
if (typeof msgValue !== 'string') {
|
|
494
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
495
|
+
}
|
|
496
|
+
var error = new RangeError(msgValue);
|
|
497
|
+
if (code) {
|
|
498
|
+
var codeValue_3 = emnapiCtx.handleStore.get(code).value;
|
|
499
|
+
if (typeof codeValue_3 !== "string") {
|
|
500
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
501
|
+
}
|
|
502
|
+
error.code = codeValue_3;
|
|
503
|
+
}
|
|
504
|
+
{{{ from64('result') }}};
|
|
505
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
506
|
+
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
507
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
508
|
+
return envObject.clearLastError();
|
|
509
|
+
}
|
|
510
|
+
function node_api_create_syntax_error(env, code, msg, result) {
|
|
511
|
+
if (env == 0)
|
|
512
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
513
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
514
|
+
if (msg == 0)
|
|
515
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
516
|
+
if (result == 0)
|
|
517
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
518
|
+
var msgValue = emnapiCtx.handleStore.get(msg).value;
|
|
519
|
+
if (typeof msgValue !== 'string') {
|
|
520
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
521
|
+
}
|
|
522
|
+
var error = new SyntaxError(msgValue);
|
|
523
|
+
if (code) {
|
|
524
|
+
var codeValue_4 = emnapiCtx.handleStore.get(code).value;
|
|
525
|
+
if (typeof codeValue_4 !== "string") {
|
|
526
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
527
|
+
}
|
|
528
|
+
error.code = codeValue_4;
|
|
529
|
+
}
|
|
530
|
+
{{{ from64('result') }}};
|
|
531
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
532
|
+
var value = emnapiCtx.addToCurrentScope(error).id;
|
|
533
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
534
|
+
return envObject.clearLastError();
|
|
535
|
+
}
|
|
536
|
+
function napi_get_and_clear_last_exception(env, result) {
|
|
537
|
+
if (env == 0)
|
|
538
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
539
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
540
|
+
if (result == 0)
|
|
541
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
542
|
+
{{{ from64('result') }}};
|
|
543
|
+
if (!envObject.tryCatch.hasCaught()) {
|
|
544
|
+
{{{ makeSetValue('result', 0, '1', '*') }}}; // ID_UNDEFINED
|
|
545
|
+
return envObject.clearLastError();
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
var err = envObject.tryCatch.exception();
|
|
549
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
550
|
+
var value = envObject.ensureHandleId(err);
|
|
551
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
552
|
+
envObject.tryCatch.reset();
|
|
553
|
+
}
|
|
554
|
+
return envObject.clearLastError();
|
|
555
|
+
}
|
|
556
|
+
function napi_fatal_error(location, location_len, message, message_len) {
|
|
557
|
+
{{{ from64('location') }}};
|
|
558
|
+
{{{ from64('location_len') }}};
|
|
559
|
+
{{{ from64('message') }}};
|
|
560
|
+
{{{ from64('message_len') }}};
|
|
561
|
+
abort('FATAL ERROR: ' +
|
|
562
|
+
emnapiUtf8ToString(location, location_len) +
|
|
563
|
+
' ' +
|
|
564
|
+
emnapiUtf8ToString(message, message_len));
|
|
565
|
+
}
|
|
566
|
+
// @ts-expect-error
|
|
567
|
+
function napi_fatal_exception(env, err) {
|
|
568
|
+
if (env == 0)
|
|
569
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
570
|
+
var envObject_9 = emnapiCtx.envStore.get(env);
|
|
571
|
+
if (envObject_9.tryCatch.hasCaught())
|
|
572
|
+
return envObject_9.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
573
|
+
envObject_9.clearLastError();
|
|
574
|
+
try {
|
|
575
|
+
if (err == 0)
|
|
576
|
+
return envObject_9.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
577
|
+
if (typeof process === "object" && process !== null && typeof process._fatalException === "function") {
|
|
578
|
+
var error_5 = envObject_9.ctx.handleStore.get(err);
|
|
579
|
+
process._fatalException(error_5.value);
|
|
580
|
+
return envObject_9.clearLastError();
|
|
581
|
+
}
|
|
582
|
+
return envObject_9.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
583
|
+
} // @ts-expect-error
|
|
584
|
+
catch (err_10) {
|
|
585
|
+
envObject_9.tryCatch.setError(err_10);
|
|
586
|
+
return envObject_9.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
emnapiImplementInternal('_emnapi_get_last_error_info', 'vpppp', __emnapi_get_last_error_info);
|
|
590
|
+
emnapiImplement('napi_get_and_clear_last_exception', 'ipp', napi_get_and_clear_last_exception);
|
|
591
|
+
emnapiImplement('napi_throw', 'ipp', napi_throw);
|
|
592
|
+
emnapiImplement('napi_throw_error', 'ippp', napi_throw_error);
|
|
593
|
+
emnapiImplement('napi_throw_type_error', 'ippp', napi_throw_type_error);
|
|
594
|
+
emnapiImplement('napi_throw_range_error', 'ippp', napi_throw_range_error);
|
|
595
|
+
emnapiImplement('node_api_throw_syntax_error', 'ippp', node_api_throw_syntax_error);
|
|
596
|
+
emnapiImplement('napi_create_error', 'ipppp', napi_create_error);
|
|
597
|
+
emnapiImplement('napi_create_type_error', 'ipppp', napi_create_type_error);
|
|
598
|
+
emnapiImplement('napi_create_range_error', 'ipppp', napi_create_range_error);
|
|
599
|
+
emnapiImplement('node_api_create_syntax_error', 'ipppp', node_api_create_syntax_error);
|
|
600
|
+
emnapiImplement('napi_is_exception_pending', 'ipp', napi_is_exception_pending);
|
|
601
|
+
emnapiImplement('napi_fatal_error', 'vpppp', napi_fatal_error, ['$emnapiUtf8ToString']);
|
|
602
|
+
emnapiImplement('napi_fatal_exception', 'ipp', napi_fatal_exception);
|
|
603
|
+
/* eslint-disable @typescript-eslint/restrict-plus-operands */
|
|
604
|
+
// @ts-expect-error
|
|
605
|
+
function napi_create_function(env, utf8name, length, cb, data, result) {
|
|
606
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
607
|
+
var value;
|
|
608
|
+
if (env == 0)
|
|
609
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
610
|
+
var envObject_10 = emnapiCtx.envStore.get(env);
|
|
611
|
+
if (envObject_10.tryCatch.hasCaught())
|
|
612
|
+
return envObject_10.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
613
|
+
envObject_10.clearLastError();
|
|
614
|
+
try {
|
|
615
|
+
if (result == 0)
|
|
616
|
+
return envObject_10.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
617
|
+
if (cb == 0)
|
|
618
|
+
return envObject_10.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
619
|
+
{{{ from64("length") }}};
|
|
620
|
+
var fresult_1 = emnapiCreateFunction(envObject_10, utf8name, length, cb, data);
|
|
621
|
+
if (fresult_1.status !== 0 /* napi_status.napi_ok */)
|
|
622
|
+
return envObject_10.setLastError(fresult_1.status);
|
|
623
|
+
var f_1 = fresult_1.f;
|
|
624
|
+
var valueHandle_1 = emnapiCtx.addToCurrentScope(f_1);
|
|
625
|
+
{{{ from64("result") }}};
|
|
626
|
+
value = valueHandle_1.id;
|
|
627
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
628
|
+
return envObject_10.getReturnStatus();
|
|
629
|
+
}
|
|
630
|
+
catch (err_11) {
|
|
631
|
+
envObject_10.tryCatch.setError(err_11);
|
|
632
|
+
return envObject_10.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
function napi_get_cb_info(env, _cbinfo, argc, argv, this_arg, data) {
|
|
636
|
+
if (env == 0)
|
|
637
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
638
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
639
|
+
var cbinfoValue = emnapiCtx.cbinfoStack.current;
|
|
640
|
+
{{{ from64('argc') }}};
|
|
641
|
+
{{{ from64('argv') }}};
|
|
642
|
+
if (argv) {
|
|
643
|
+
if (argc == 0)
|
|
644
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
645
|
+
var argcValue = {{{ makeGetValue('argc', 0, SIZE_TYPE) }}};
|
|
646
|
+
{{{ from64('argcValue') }}};
|
|
647
|
+
var len = cbinfoValue.args.length;
|
|
648
|
+
var arrlen = argcValue < len ? argcValue : len;
|
|
649
|
+
var i = 0;
|
|
650
|
+
for (; i < arrlen; i++) {
|
|
651
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
652
|
+
var argVal = envObject.ensureHandleId(cbinfoValue.args[i]);
|
|
653
|
+
{{{ makeSetValue('argv', 'i * ' + POINTER_SIZE, 'argVal', '*') }}};
|
|
654
|
+
}
|
|
655
|
+
if (i < argcValue) {
|
|
656
|
+
for (; i < argcValue; i++) {
|
|
657
|
+
{{{ makeSetValue('argv', 'i * ' + POINTER_SIZE, '1', '*') }}};
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
if (argc) {
|
|
662
|
+
{{{ makeSetValue('argc', 0, 'cbinfoValue.args.length', SIZE_TYPE) }}};
|
|
663
|
+
}
|
|
664
|
+
if (this_arg) {
|
|
665
|
+
{{{ from64('this_arg') }}};
|
|
666
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
667
|
+
var v = envObject.ensureHandleId(cbinfoValue.thiz);
|
|
668
|
+
{{{ makeSetValue('this_arg', 0, 'v', '*') }}};
|
|
669
|
+
}
|
|
670
|
+
if (data) {
|
|
671
|
+
{{{ from64('data') }}};
|
|
672
|
+
{{{ makeSetValue('data', 0, 'cbinfoValue.data', '*') }}};
|
|
673
|
+
}
|
|
674
|
+
return envObject.clearLastError();
|
|
675
|
+
}
|
|
676
|
+
function napi_call_function(env, recv, func, argc, argv, result
|
|
677
|
+
// @ts-expect-error
|
|
678
|
+
) {
|
|
679
|
+
var i = 0;
|
|
680
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
681
|
+
var v;
|
|
682
|
+
if (env == 0)
|
|
683
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
684
|
+
var envObject_11 = emnapiCtx.envStore.get(env);
|
|
685
|
+
if (envObject_11.tryCatch.hasCaught())
|
|
686
|
+
return envObject_11.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
687
|
+
envObject_11.clearLastError();
|
|
688
|
+
try {
|
|
689
|
+
if (recv == 0)
|
|
690
|
+
return envObject_11.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
691
|
+
{{{ from64("argc") }}};
|
|
692
|
+
{{{ from64("argv") }}};
|
|
693
|
+
{{{ from64("result") }}};
|
|
694
|
+
argc = argc >>> 0;
|
|
695
|
+
if (argc > 0) {
|
|
696
|
+
if (!argv)
|
|
697
|
+
return envObject_11.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
698
|
+
}
|
|
699
|
+
var v8recv_1 = emnapiCtx.handleStore.get(recv).value;
|
|
700
|
+
if (!func)
|
|
701
|
+
return envObject_11.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
702
|
+
var v8func_1 = emnapiCtx.handleStore.get(func).value;
|
|
703
|
+
if (typeof v8func_1 !== "function")
|
|
704
|
+
return envObject_11.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
705
|
+
var args_1 = [];
|
|
706
|
+
for (; i < argc; i++) {
|
|
707
|
+
var argVal_1 = {{{ makeGetValue("argv", "i * " + POINTER_SIZE, "*") }}};
|
|
708
|
+
args_1.push(emnapiCtx.handleStore.get(argVal_1).value);
|
|
709
|
+
}
|
|
710
|
+
var ret_2 = v8func_1.apply(v8recv_1, args_1);
|
|
711
|
+
if (result) {
|
|
712
|
+
v = envObject_11.ensureHandleId(ret_2);
|
|
713
|
+
{{{ makeSetValue("result", 0, "v", "*") }}};
|
|
714
|
+
}
|
|
715
|
+
return envObject_11.clearLastError();
|
|
716
|
+
}
|
|
717
|
+
catch (err_12) {
|
|
718
|
+
envObject_11.tryCatch.setError(err_12);
|
|
719
|
+
return envObject_11.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
function napi_new_instance(env, constructor, argc, argv, result
|
|
723
|
+
// @ts-expect-error
|
|
724
|
+
) {
|
|
725
|
+
var i;
|
|
726
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
727
|
+
var v;
|
|
728
|
+
if (env == 0)
|
|
729
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
730
|
+
var envObject_12 = emnapiCtx.envStore.get(env);
|
|
731
|
+
if (envObject_12.tryCatch.hasCaught())
|
|
732
|
+
return envObject_12.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
733
|
+
envObject_12.clearLastError();
|
|
734
|
+
try {
|
|
735
|
+
if (constructor == 0)
|
|
736
|
+
return envObject_12.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
737
|
+
{{{ from64("argc") }}};
|
|
738
|
+
{{{ from64("argv") }}};
|
|
739
|
+
{{{ from64("result") }}};
|
|
740
|
+
argc = argc >>> 0;
|
|
741
|
+
if (argc > 0) {
|
|
742
|
+
if (!argv)
|
|
743
|
+
return envObject_12.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
744
|
+
}
|
|
745
|
+
if (!result)
|
|
746
|
+
return envObject_12.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
747
|
+
var Ctor_2 = emnapiCtx.handleStore.get(constructor).value;
|
|
748
|
+
if (typeof Ctor_2 !== "function")
|
|
749
|
+
return envObject_12.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
750
|
+
var ret_3 = void 0;
|
|
751
|
+
if (emnapiCtx.feature.supportReflect) {
|
|
752
|
+
var argList_1 = Array(argc);
|
|
753
|
+
for (i = 0; i < argc; i++) {
|
|
754
|
+
var argVal_2 = {{{ makeGetValue("argv", "i * " + POINTER_SIZE, "*") }}};
|
|
755
|
+
argList_1[i] = emnapiCtx.handleStore.get(argVal_2).value;
|
|
756
|
+
}
|
|
757
|
+
ret_3 = Reflect.construct(Ctor_2, argList_1, Ctor_2);
|
|
758
|
+
}
|
|
759
|
+
else {
|
|
760
|
+
var args_2 = Array(argc + 1);
|
|
761
|
+
args_2[0] = undefined;
|
|
762
|
+
for (i = 0; i < argc; i++) {
|
|
763
|
+
var argVal_3 = {{{ makeGetValue("argv", "i * " + POINTER_SIZE, "*") }}};
|
|
764
|
+
args_2[i + 1] = emnapiCtx.handleStore.get(argVal_3).value;
|
|
765
|
+
}
|
|
766
|
+
var BoundCtor_1 = Ctor_2.bind.apply(Ctor_2, args_2);
|
|
767
|
+
ret_3 = new BoundCtor_1();
|
|
768
|
+
}
|
|
769
|
+
if (result) {
|
|
770
|
+
v = envObject_12.ensureHandleId(ret_3);
|
|
771
|
+
{{{ makeSetValue("result", 0, "v", "*") }}};
|
|
772
|
+
}
|
|
773
|
+
return envObject_12.getReturnStatus();
|
|
774
|
+
}
|
|
775
|
+
catch (err_13) {
|
|
776
|
+
envObject_12.tryCatch.setError(err_13);
|
|
777
|
+
return envObject_12.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
function napi_get_new_target(env, _cbinfo, result) {
|
|
781
|
+
if (env == 0)
|
|
782
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
783
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
784
|
+
if (result == 0)
|
|
785
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
786
|
+
{{{ from64('result') }}};
|
|
787
|
+
var cbinfoValue = emnapiCtx.cbinfoStack.current;
|
|
788
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
789
|
+
var value = cbinfoValue.getNewTarget(envObject);
|
|
790
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
791
|
+
return envObject.clearLastError();
|
|
792
|
+
}
|
|
793
|
+
emnapiImplement('napi_create_function', 'ipppppp', napi_create_function, ['$emnapiCreateFunction']);
|
|
794
|
+
emnapiImplement('napi_get_cb_info', 'ipppppp', napi_get_cb_info);
|
|
795
|
+
emnapiImplement('napi_call_function', 'ipppppp', napi_call_function);
|
|
796
|
+
emnapiImplement('napi_new_instance', 'ippppp', napi_new_instance);
|
|
797
|
+
emnapiImplement('napi_get_new_target', 'ippp', napi_get_new_target);
|
|
798
|
+
/* eslint-disable @typescript-eslint/indent */
|
|
799
|
+
/* eslint-disable no-new-func */
|
|
800
|
+
/* eslint-disable @typescript-eslint/no-implied-eval */
|
|
801
|
+
function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
|
|
802
|
+
{{{ from64('utf8name') }}};
|
|
803
|
+
var functionName = (!utf8name || !length) ? '' : (emnapiUtf8ToString(utf8name, length));
|
|
804
|
+
var f;
|
|
805
|
+
var makeFunction = function () { return function () {
|
|
806
|
+
'use strict';
|
|
807
|
+
emnapiCtx.cbinfoStack.push(this, data, arguments, f);
|
|
808
|
+
var scope = emnapiCtx.openScope(envObject);
|
|
809
|
+
try {
|
|
810
|
+
return envObject.callIntoModule(function (envObject) {
|
|
811
|
+
var napiValue = {{{ makeDynCall('ppp', 'cb') }}}(envObject.id, 0);
|
|
812
|
+
return (!napiValue) ? undefined : emnapiCtx.handleStore.get(napiValue).value;
|
|
813
|
+
});
|
|
814
|
+
}
|
|
815
|
+
finally {
|
|
816
|
+
emnapiCtx.cbinfoStack.pop();
|
|
817
|
+
emnapiCtx.closeScope(envObject, scope);
|
|
818
|
+
}
|
|
819
|
+
}; };
|
|
820
|
+
if (functionName === '') {
|
|
821
|
+
f = makeFunction();
|
|
822
|
+
return { status: 0 /* napi_status.napi_ok */, f: f };
|
|
823
|
+
}
|
|
824
|
+
if (!(/^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(functionName))) {
|
|
825
|
+
return { status: 1 /* napi_status.napi_invalid_arg */, f: undefined };
|
|
826
|
+
}
|
|
827
|
+
#if DYNAMIC_EXECUTION
|
|
828
|
+
if (emnapiCtx.feature.supportNewFunction) {
|
|
829
|
+
f = (new Function('_', 'return function ' + functionName + '(){' +
|
|
830
|
+
'"use strict";' +
|
|
831
|
+
'return _.apply(this,arguments);' +
|
|
832
|
+
'};'))(makeFunction());
|
|
833
|
+
}
|
|
834
|
+
else {
|
|
835
|
+
f = makeFunction();
|
|
836
|
+
if (emnapiCtx.feature.canSetFunctionName)
|
|
837
|
+
Object.defineProperty(f, 'name', { value: functionName });
|
|
838
|
+
}
|
|
839
|
+
#else
|
|
840
|
+
f = makeFunction();
|
|
841
|
+
if (emnapiCtx.feature.canSetFunctionName)
|
|
842
|
+
Object.defineProperty(f, 'name', { value: functionName });
|
|
843
|
+
#endif
|
|
844
|
+
return { status: 0 /* napi_status.napi_ok */, f: f };
|
|
845
|
+
}
|
|
846
|
+
function emnapiDefineProperty(envObject, obj, propertyName, method, getter, setter, value, attributes, data) {
|
|
847
|
+
if (getter || setter) {
|
|
848
|
+
var localGetter = void 0;
|
|
849
|
+
var localSetter = void 0;
|
|
850
|
+
if (getter) {
|
|
851
|
+
localGetter = emnapiCreateFunction(envObject, 0, 0, getter, data).f;
|
|
852
|
+
}
|
|
853
|
+
if (setter) {
|
|
854
|
+
localSetter = emnapiCreateFunction(envObject, 0, 0, setter, data).f;
|
|
855
|
+
}
|
|
856
|
+
var desc = {
|
|
857
|
+
configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
|
|
858
|
+
enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
|
|
859
|
+
get: localGetter,
|
|
860
|
+
set: localSetter
|
|
861
|
+
};
|
|
862
|
+
Object.defineProperty(obj, propertyName, desc);
|
|
863
|
+
}
|
|
864
|
+
else if (method) {
|
|
865
|
+
var localMethod = emnapiCreateFunction(envObject, 0, 0, method, data).f;
|
|
866
|
+
var desc = {
|
|
867
|
+
configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
|
|
868
|
+
enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
|
|
869
|
+
writable: (attributes & 1 /* napi_property_attributes.napi_writable */) !== 0,
|
|
870
|
+
value: localMethod
|
|
871
|
+
};
|
|
872
|
+
Object.defineProperty(obj, propertyName, desc);
|
|
873
|
+
}
|
|
874
|
+
else {
|
|
875
|
+
var desc = {
|
|
876
|
+
configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
|
|
877
|
+
enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
|
|
878
|
+
writable: (attributes & 1 /* napi_property_attributes.napi_writable */) !== 0,
|
|
879
|
+
value: emnapiCtx.handleStore.get(value).value
|
|
880
|
+
};
|
|
881
|
+
Object.defineProperty(obj, propertyName, desc);
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
function emnapiGetHandle(js_object) {
|
|
885
|
+
var handle = emnapiCtx.handleStore.get(js_object);
|
|
886
|
+
if (!(handle.isObject() || handle.isFunction())) {
|
|
887
|
+
return { status: 1 /* napi_status.napi_invalid_arg */ };
|
|
888
|
+
}
|
|
889
|
+
if (typeof emnapiExternalMemory !== 'undefined' && ArrayBuffer.isView(handle.value)) {
|
|
890
|
+
if (emnapiExternalMemory.wasmMemoryViewTable.has(handle.value)) {
|
|
891
|
+
handle = emnapiCtx.addToCurrentScope(emnapiExternalMemory.wasmMemoryViewTable.get(handle.value));
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
return { status: 0 /* napi_status.napi_ok */, handle: handle };
|
|
895
|
+
}
|
|
896
|
+
// @ts-expect-error
|
|
897
|
+
function emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
|
|
898
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
899
|
+
var referenceId;
|
|
900
|
+
if (env == 0)
|
|
901
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
902
|
+
var envObject_13 = emnapiCtx.envStore.get(env);
|
|
903
|
+
if (envObject_13.tryCatch.hasCaught())
|
|
904
|
+
return envObject_13.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
905
|
+
envObject_13.clearLastError();
|
|
906
|
+
try {
|
|
907
|
+
if (js_object == 0)
|
|
908
|
+
return envObject_13.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
909
|
+
var handleResult_1 = emnapiGetHandle(js_object);
|
|
910
|
+
if (handleResult_1.status !== 0 /* napi_status.napi_ok */) {
|
|
911
|
+
return envObject_13.setLastError(handleResult_1.status);
|
|
912
|
+
}
|
|
913
|
+
var handle_4 = handleResult_1.handle;
|
|
914
|
+
if (envObject_13.getObjectBinding(handle_4.value).wrapped !== 0) {
|
|
915
|
+
return envObject_13.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
916
|
+
}
|
|
917
|
+
var reference_1 = void 0;
|
|
918
|
+
if (result) {
|
|
919
|
+
if (!finalize_cb)
|
|
920
|
+
return envObject_13.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
921
|
+
reference_1 = emnapiCtx.createReference(envObject_13, handle_4.id, 0, 1 /* Ownership.kUserland */, finalize_cb, native_object, finalize_hint);
|
|
922
|
+
{{{ from64("result") }}};
|
|
923
|
+
referenceId = reference_1.id;
|
|
924
|
+
{{{ makeSetValue("result", 0, "referenceId", "*") }}};
|
|
925
|
+
}
|
|
926
|
+
else {
|
|
927
|
+
reference_1 = emnapiCtx.createReference(envObject_13, handle_4.id, 0, 0 /* Ownership.kRuntime */, finalize_cb, native_object, !finalize_cb ? finalize_cb : finalize_hint);
|
|
928
|
+
}
|
|
929
|
+
envObject_13.getObjectBinding(handle_4.value).wrapped = reference_1.id;
|
|
930
|
+
return envObject_13.getReturnStatus();
|
|
931
|
+
}
|
|
932
|
+
catch (err_14) {
|
|
933
|
+
envObject_13.tryCatch.setError(err_14);
|
|
934
|
+
return envObject_13.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
// @ts-expect-error
|
|
938
|
+
function emnapiUnwrap(env, js_object, result, action) {
|
|
939
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
940
|
+
var data;
|
|
941
|
+
if (env == 0)
|
|
942
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
943
|
+
var envObject_14 = emnapiCtx.envStore.get(env);
|
|
944
|
+
if (envObject_14.tryCatch.hasCaught())
|
|
945
|
+
return envObject_14.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
946
|
+
envObject_14.clearLastError();
|
|
947
|
+
try {
|
|
948
|
+
if (js_object == 0)
|
|
949
|
+
return envObject_14.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
950
|
+
if (action === 0 /* UnwrapAction.KeepWrap */) {
|
|
951
|
+
if (!result)
|
|
952
|
+
return envObject_14.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
953
|
+
}
|
|
954
|
+
var value_1 = emnapiCtx.handleStore.get(js_object);
|
|
955
|
+
if (!(value_1.isObject() || value_1.isFunction())) {
|
|
956
|
+
return envObject_14.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
957
|
+
}
|
|
958
|
+
var binding_1 = envObject_14.getObjectBinding(value_1.value);
|
|
959
|
+
var referenceId_1 = binding_1.wrapped;
|
|
960
|
+
var ref_1 = emnapiCtx.refStore.get(referenceId_1);
|
|
961
|
+
if (!ref_1)
|
|
962
|
+
return envObject_14.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
963
|
+
if (result) {
|
|
964
|
+
{{{ from64("result") }}};
|
|
965
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
966
|
+
data = ref_1.data();
|
|
967
|
+
{{{ makeSetValue("result", 0, "data", "*") }}};
|
|
968
|
+
}
|
|
969
|
+
if (action === 1 /* UnwrapAction.RemoveWrap */) {
|
|
970
|
+
binding_1.wrapped = 0;
|
|
971
|
+
if (ref_1.ownership() === 1 /* Ownership.kUserland */) {
|
|
972
|
+
// When the wrap is been removed, the finalizer should be reset.
|
|
973
|
+
ref_1.resetFinalizer();
|
|
974
|
+
}
|
|
975
|
+
else {
|
|
976
|
+
ref_1.dispose();
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
return envObject_14.getReturnStatus();
|
|
980
|
+
}
|
|
981
|
+
catch (err_15) {
|
|
982
|
+
envObject_14.tryCatch.setError(err_15);
|
|
983
|
+
return envObject_14.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
emnapiImplementHelper('$emnapiCreateFunction', undefined, emnapiCreateFunction, ['$emnapiUtf8ToString']);
|
|
987
|
+
emnapiImplementHelper('$emnapiDefineProperty', undefined, emnapiDefineProperty, ['$emnapiCreateFunction']);
|
|
988
|
+
emnapiImplementHelper('$emnapiGetHandle', undefined, emnapiGetHandle);
|
|
989
|
+
emnapiImplementHelper('$emnapiWrap', undefined, emnapiWrap, ['$emnapiGetHandle']);
|
|
990
|
+
emnapiImplementHelper('$emnapiUnwrap', undefined, emnapiUnwrap);
|
|
991
|
+
function napi_open_handle_scope(env, result) {
|
|
992
|
+
if (env == 0)
|
|
993
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
994
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
995
|
+
if (result == 0)
|
|
996
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
997
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
998
|
+
var scope = emnapiCtx.openScope(envObject);
|
|
999
|
+
{{{ from64('result') }}};
|
|
1000
|
+
{{{ makeSetValue('result', 0, 'scope.id', '*') }}};
|
|
1001
|
+
return envObject.clearLastError();
|
|
1002
|
+
}
|
|
1003
|
+
function napi_close_handle_scope(env, scope) {
|
|
1004
|
+
if (env == 0)
|
|
1005
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1006
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1007
|
+
if (scope == 0)
|
|
1008
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1009
|
+
if ((envObject.openHandleScopes === 0)) {
|
|
1010
|
+
return 13 /* napi_status.napi_handle_scope_mismatch */;
|
|
1011
|
+
}
|
|
1012
|
+
emnapiCtx.closeScope(envObject);
|
|
1013
|
+
return envObject.clearLastError();
|
|
1014
|
+
}
|
|
1015
|
+
function napi_open_escapable_handle_scope(env, result) {
|
|
1016
|
+
if (env == 0)
|
|
1017
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1018
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1019
|
+
if (result == 0)
|
|
1020
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1021
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1022
|
+
var scope = emnapiCtx.openScope(envObject);
|
|
1023
|
+
{{{ from64('result') }}};
|
|
1024
|
+
{{{ makeSetValue('result', 0, 'scope.id', '*') }}};
|
|
1025
|
+
return envObject.clearLastError();
|
|
1026
|
+
}
|
|
1027
|
+
function napi_close_escapable_handle_scope(env, scope) {
|
|
1028
|
+
if (env == 0)
|
|
1029
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1030
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1031
|
+
if (scope == 0)
|
|
1032
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1033
|
+
if ((envObject.openHandleScopes === 0)) {
|
|
1034
|
+
return 13 /* napi_status.napi_handle_scope_mismatch */;
|
|
1035
|
+
}
|
|
1036
|
+
emnapiCtx.closeScope(envObject);
|
|
1037
|
+
return envObject.clearLastError();
|
|
1038
|
+
}
|
|
1039
|
+
function napi_escape_handle(env, scope, escapee, result) {
|
|
1040
|
+
if (env == 0)
|
|
1041
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1042
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1043
|
+
if (scope == 0)
|
|
1044
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1045
|
+
if (escapee == 0)
|
|
1046
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1047
|
+
if (result == 0)
|
|
1048
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1049
|
+
var scopeObject = emnapiCtx.scopeStore.get(scope);
|
|
1050
|
+
if (!scopeObject.escapeCalled()) {
|
|
1051
|
+
{{{ from64('escapee') }}};
|
|
1052
|
+
{{{ from64('result') }}};
|
|
1053
|
+
var newHandle = scopeObject.escape(escapee);
|
|
1054
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1055
|
+
var value = newHandle ? newHandle.id : 0;
|
|
1056
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
1057
|
+
return envObject.clearLastError();
|
|
1058
|
+
}
|
|
1059
|
+
return envObject.setLastError(12 /* napi_status.napi_escape_called_twice */);
|
|
1060
|
+
}
|
|
1061
|
+
function napi_create_reference(env, value, initial_refcount, result) {
|
|
1062
|
+
if (env == 0)
|
|
1063
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1064
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1065
|
+
if (value == 0)
|
|
1066
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1067
|
+
if (result == 0)
|
|
1068
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1069
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
1070
|
+
if (!(handle.isObject() || handle.isFunction())) {
|
|
1071
|
+
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1072
|
+
}
|
|
1073
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1074
|
+
var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1 /* Ownership.kUserland */);
|
|
1075
|
+
{{{ from64('result') }}};
|
|
1076
|
+
{{{ makeSetValue('result', 0, 'ref.id', '*') }}};
|
|
1077
|
+
return envObject.clearLastError();
|
|
1078
|
+
}
|
|
1079
|
+
function napi_delete_reference(env, ref) {
|
|
1080
|
+
if (env == 0)
|
|
1081
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1082
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1083
|
+
if (ref == 0)
|
|
1084
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1085
|
+
emnapiCtx.refStore.get(ref).dispose();
|
|
1086
|
+
return envObject.clearLastError();
|
|
1087
|
+
}
|
|
1088
|
+
function napi_reference_ref(env, ref, result) {
|
|
1089
|
+
if (env == 0)
|
|
1090
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1091
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1092
|
+
if (ref == 0)
|
|
1093
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1094
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1095
|
+
var count = emnapiCtx.refStore.get(ref).ref();
|
|
1096
|
+
if (result) {
|
|
1097
|
+
{{{ from64('result') }}};
|
|
1098
|
+
{{{ makeSetValue('result', 0, 'count', 'u32') }}};
|
|
1099
|
+
}
|
|
1100
|
+
return envObject.clearLastError();
|
|
1101
|
+
}
|
|
1102
|
+
function napi_reference_unref(env, ref, result) {
|
|
1103
|
+
if (env == 0)
|
|
1104
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1105
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1106
|
+
if (ref == 0)
|
|
1107
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1108
|
+
var reference = emnapiCtx.refStore.get(ref);
|
|
1109
|
+
var refcount = reference.refCount();
|
|
1110
|
+
if (refcount === 0) {
|
|
1111
|
+
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
1112
|
+
}
|
|
1113
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1114
|
+
var count = reference.unref();
|
|
1115
|
+
if (result) {
|
|
1116
|
+
{{{ from64('result') }}};
|
|
1117
|
+
{{{ makeSetValue('result', 0, 'count', 'u32') }}};
|
|
1118
|
+
}
|
|
1119
|
+
return envObject.clearLastError();
|
|
1120
|
+
}
|
|
1121
|
+
function napi_get_reference_value(env, ref, result) {
|
|
1122
|
+
if (env == 0)
|
|
1123
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1124
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1125
|
+
if (ref == 0)
|
|
1126
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1127
|
+
if (result == 0)
|
|
1128
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1129
|
+
var reference = emnapiCtx.refStore.get(ref);
|
|
1130
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1131
|
+
var handleId = reference.get();
|
|
1132
|
+
{{{ from64('result') }}};
|
|
1133
|
+
{{{ makeSetValue('result', 0, 'handleId', '*') }}};
|
|
1134
|
+
return envObject.clearLastError();
|
|
1135
|
+
}
|
|
1136
|
+
function napi_add_env_cleanup_hook(env, fun, arg) {
|
|
1137
|
+
if (env == 0)
|
|
1138
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1139
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1140
|
+
if (fun == 0)
|
|
1141
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1142
|
+
{{{ from64('fun') }}};
|
|
1143
|
+
{{{ from64('arg') }}};
|
|
1144
|
+
emnapiCtx.addCleanupHook(envObject, fun, arg);
|
|
1145
|
+
return 0 /* napi_status.napi_ok */;
|
|
1146
|
+
}
|
|
1147
|
+
function napi_remove_env_cleanup_hook(env, fun, arg) {
|
|
1148
|
+
if (env == 0)
|
|
1149
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1150
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1151
|
+
if (fun == 0)
|
|
1152
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1153
|
+
{{{ from64('fun') }}};
|
|
1154
|
+
{{{ from64('arg') }}};
|
|
1155
|
+
emnapiCtx.removeCleanupHook(envObject, fun, arg);
|
|
1156
|
+
return 0 /* napi_status.napi_ok */;
|
|
1157
|
+
}
|
|
1158
|
+
function __emnapi_env_ref(env) {
|
|
1159
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1160
|
+
envObject.ref();
|
|
1161
|
+
}
|
|
1162
|
+
function __emnapi_env_unref(env) {
|
|
1163
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1164
|
+
envObject.unref();
|
|
1165
|
+
}
|
|
1166
|
+
emnapiImplement('napi_open_handle_scope', 'ipp', napi_open_handle_scope);
|
|
1167
|
+
emnapiImplement('napi_close_handle_scope', 'ipp', napi_close_handle_scope);
|
|
1168
|
+
emnapiImplement('napi_open_escapable_handle_scope', 'ipp', napi_open_escapable_handle_scope);
|
|
1169
|
+
emnapiImplement('napi_close_escapable_handle_scope', 'ipp', napi_close_escapable_handle_scope);
|
|
1170
|
+
emnapiImplement('napi_escape_handle', 'ipppp', napi_escape_handle);
|
|
1171
|
+
emnapiImplement('napi_create_reference', 'ippip', napi_create_reference);
|
|
1172
|
+
emnapiImplement('napi_delete_reference', 'ipp', napi_delete_reference);
|
|
1173
|
+
emnapiImplement('napi_reference_ref', 'ippp', napi_reference_ref);
|
|
1174
|
+
emnapiImplement('napi_reference_unref', 'ippp', napi_reference_unref);
|
|
1175
|
+
emnapiImplement('napi_get_reference_value', 'ippp', napi_get_reference_value);
|
|
1176
|
+
emnapiImplement('napi_add_env_cleanup_hook', 'ippp', napi_add_env_cleanup_hook);
|
|
1177
|
+
emnapiImplement('napi_remove_env_cleanup_hook', 'ippp', napi_remove_env_cleanup_hook);
|
|
1178
|
+
emnapiImplementInternal('_emnapi_env_ref', 'vp', __emnapi_env_ref);
|
|
1179
|
+
emnapiImplementInternal('_emnapi_env_unref', 'vp', __emnapi_env_unref);
|
|
1180
|
+
var emnapiExternalMemory = {
|
|
1181
|
+
registry: typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free({{{ to64('_pointer') }}}); }) : undefined,
|
|
1182
|
+
table: new WeakMap(),
|
|
1183
|
+
wasmMemoryViewTable: new WeakMap(),
|
|
1184
|
+
init: function () {
|
|
1185
|
+
emnapiExternalMemory.registry = typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free({{{ to64('_pointer') }}}); }) : undefined;
|
|
1186
|
+
emnapiExternalMemory.table = new WeakMap();
|
|
1187
|
+
emnapiExternalMemory.wasmMemoryViewTable = new WeakMap();
|
|
1188
|
+
},
|
|
1189
|
+
isDetachedArrayBuffer: function (arrayBuffer) {
|
|
1190
|
+
if (arrayBuffer.byteLength === 0) {
|
|
1191
|
+
try {
|
|
1192
|
+
// eslint-disable-next-line no-new
|
|
1193
|
+
new Uint8Array(arrayBuffer);
|
|
1194
|
+
}
|
|
1195
|
+
catch (_) {
|
|
1196
|
+
return true;
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1199
|
+
return false;
|
|
1200
|
+
},
|
|
1201
|
+
getArrayBufferPointer: function (arrayBuffer, shouldCopy) {
|
|
1202
|
+
var _a;
|
|
1203
|
+
var info = {
|
|
1204
|
+
address: 0,
|
|
1205
|
+
ownership: 0 /* Ownership.kRuntime */,
|
|
1206
|
+
runtimeAllocated: 0
|
|
1207
|
+
};
|
|
1208
|
+
if (arrayBuffer === wasmMemory.buffer) {
|
|
1209
|
+
return info;
|
|
1210
|
+
}
|
|
1211
|
+
var isDetached = emnapiExternalMemory.isDetachedArrayBuffer(arrayBuffer);
|
|
1212
|
+
if (emnapiExternalMemory.table.has(arrayBuffer)) {
|
|
1213
|
+
var cachedInfo = emnapiExternalMemory.table.get(arrayBuffer);
|
|
1214
|
+
if (isDetached) {
|
|
1215
|
+
cachedInfo.address = 0;
|
|
1216
|
+
return cachedInfo;
|
|
1217
|
+
}
|
|
1218
|
+
if (shouldCopy && cachedInfo.ownership === 0 /* Ownership.kRuntime */ && cachedInfo.runtimeAllocated === 1) {
|
|
1219
|
+
new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), cachedInfo.address);
|
|
1220
|
+
}
|
|
1221
|
+
return cachedInfo;
|
|
1222
|
+
}
|
|
1223
|
+
if (isDetached || (arrayBuffer.byteLength === 0)) {
|
|
1224
|
+
return info;
|
|
1225
|
+
}
|
|
1226
|
+
if (!shouldCopy) {
|
|
1227
|
+
return info;
|
|
1228
|
+
}
|
|
1229
|
+
var pointer = {{{ makeMalloc('$emnapiExternalMemory.getArrayBufferPointer', 'arrayBuffer.byteLength') }}};
|
|
1230
|
+
if (!pointer)
|
|
1231
|
+
throw new Error('Out of memory');
|
|
1232
|
+
new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
|
|
1233
|
+
info.address = pointer;
|
|
1234
|
+
info.ownership = emnapiExternalMemory.registry ? 0 /* Ownership.kRuntime */ : 1 /* Ownership.kUserland */;
|
|
1235
|
+
info.runtimeAllocated = 1;
|
|
1236
|
+
emnapiExternalMemory.table.set(arrayBuffer, info);
|
|
1237
|
+
(_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(arrayBuffer, pointer);
|
|
1238
|
+
return info;
|
|
1239
|
+
},
|
|
1240
|
+
getOrUpdateMemoryView: function (view) {
|
|
1241
|
+
if (view.buffer === wasmMemory.buffer) {
|
|
1242
|
+
if (!emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
1243
|
+
emnapiExternalMemory.wasmMemoryViewTable.set(view, {
|
|
1244
|
+
Ctor: view.constructor,
|
|
1245
|
+
address: view.byteOffset,
|
|
1246
|
+
length: view instanceof DataView ? view.byteLength : view.length,
|
|
1247
|
+
ownership: 1 /* Ownership.kUserland */,
|
|
1248
|
+
runtimeAllocated: 0
|
|
1249
|
+
});
|
|
1250
|
+
}
|
|
1251
|
+
return view;
|
|
1252
|
+
}
|
|
1253
|
+
if (emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
1254
|
+
var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
|
|
1255
|
+
var Ctor = info.Ctor;
|
|
1256
|
+
var newView = void 0;
|
|
1257
|
+
var Buffer = emnapiCtx.feature.Buffer;
|
|
1258
|
+
if (typeof Buffer === 'function' && Ctor === Buffer) {
|
|
1259
|
+
newView = Buffer.from(wasmMemory.buffer, info.address, info.length);
|
|
1260
|
+
}
|
|
1261
|
+
else {
|
|
1262
|
+
newView = new Ctor(wasmMemory.buffer, info.address, info.length);
|
|
1263
|
+
}
|
|
1264
|
+
emnapiExternalMemory.wasmMemoryViewTable.set(newView, info);
|
|
1265
|
+
return newView;
|
|
1266
|
+
}
|
|
1267
|
+
return view;
|
|
1268
|
+
},
|
|
1269
|
+
getViewPointer: function (view, shouldCopy) {
|
|
1270
|
+
view = emnapiExternalMemory.getOrUpdateMemoryView(view);
|
|
1271
|
+
if (view.buffer === wasmMemory.buffer) {
|
|
1272
|
+
if (emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
|
|
1273
|
+
var _a = emnapiExternalMemory.wasmMemoryViewTable.get(view), address_1 = _a.address, ownership_1 = _a.ownership, runtimeAllocated_1 = _a.runtimeAllocated;
|
|
1274
|
+
return { address: address_1, ownership: ownership_1, runtimeAllocated: runtimeAllocated_1, view: view };
|
|
1275
|
+
}
|
|
1276
|
+
return { address: view.byteOffset, ownership: 1 /* Ownership.kUserland */, runtimeAllocated: 0, view: view };
|
|
1277
|
+
}
|
|
1278
|
+
var _b = emnapiExternalMemory.getArrayBufferPointer(view.buffer, shouldCopy), address = _b.address, ownership = _b.ownership, runtimeAllocated = _b.runtimeAllocated;
|
|
1279
|
+
return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
|
|
1280
|
+
}
|
|
1281
|
+
};
|
|
1282
|
+
emnapiDefineVar('$emnapiExternalMemory', emnapiExternalMemory, ['malloc', 'free', '$emnapiInit'], 'emnapiExternalMemory.init();');
|
|
1283
|
+
function __emnapi_node_emit_async_init(async_resource, async_resource_name, trigger_async_id, result) {
|
|
1284
|
+
if (!emnapiNodeBinding)
|
|
1285
|
+
return;
|
|
1286
|
+
var resource = emnapiCtx.handleStore.get(async_resource).value;
|
|
1287
|
+
var resource_name = emnapiCtx.handleStore.get(async_resource_name).value;
|
|
1288
|
+
var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resource_name, trigger_async_id);
|
|
1289
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1290
|
+
var asyncId = asyncContext.asyncId;
|
|
1291
|
+
var triggerAsyncId = asyncContext.triggerAsyncId;
|
|
1292
|
+
if (result) {
|
|
1293
|
+
{{{ from64('result') }}};
|
|
1294
|
+
{{{ makeSetValue('result', 0, 'asyncId', 'double') }}};
|
|
1295
|
+
{{{ makeSetValue('result', 8, 'triggerAsyncId', 'double') }}};
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
function __emnapi_node_emit_async_destroy(async_id, trigger_async_id) {
|
|
1299
|
+
if (!emnapiNodeBinding)
|
|
1300
|
+
return;
|
|
1301
|
+
emnapiNodeBinding.node.emitAsyncDestroy({
|
|
1302
|
+
asyncId: async_id,
|
|
1303
|
+
triggerAsyncId: trigger_async_id
|
|
1304
|
+
});
|
|
1305
|
+
}
|
|
1306
|
+
/* function __emnapi_node_open_callback_scope (async_resource: napi_value, async_id: double, trigger_async_id: double, result: Pointer<int64_t>): void {
|
|
1307
|
+
if (!emnapiNodeBinding || !result) return
|
|
1308
|
+
const resource = emnapiCtx.handleStore.get(async_resource)!.value
|
|
1309
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1310
|
+
const nativeCallbackScopePointer = emnapiNodeBinding.node.openCallbackScope(resource, {
|
|
1311
|
+
asyncId: async_id,
|
|
1312
|
+
triggerAsyncId: trigger_async_id
|
|
1313
|
+
})
|
|
1314
|
+
|
|
1315
|
+
{{{ from64('result') }}}
|
|
1316
|
+
{{{ makeSetValue('result', 0, 'nativeCallbackScopePointer', 'i64') }}}
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
function __emnapi_node_close_callback_scope (scope: Pointer<int64_t>): void {
|
|
1320
|
+
if (!emnapiNodeBinding || !scope) return
|
|
1321
|
+
{{{ from64('scope') }}}
|
|
1322
|
+
const nativeCallbackScopePointer = {{{ makeGetValue('scope', 0, 'i64') }}}
|
|
1323
|
+
emnapiNodeBinding.node.closeCallbackScope(BigInt(nativeCallbackScopePointer))
|
|
1324
|
+
} */
|
|
1325
|
+
function __emnapi_node_make_callback(env, async_resource, cb, argv, size, async_id, trigger_async_id, result) {
|
|
1326
|
+
var i = 0;
|
|
1327
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1328
|
+
var v;
|
|
1329
|
+
if (!emnapiNodeBinding)
|
|
1330
|
+
return;
|
|
1331
|
+
var resource = emnapiCtx.handleStore.get(async_resource).value;
|
|
1332
|
+
var callback = emnapiCtx.handleStore.get(cb).value;
|
|
1333
|
+
{{{ from64('argv') }}};
|
|
1334
|
+
{{{ from64('size') }}};
|
|
1335
|
+
size = size >>> 0;
|
|
1336
|
+
var arr = Array(size);
|
|
1337
|
+
for (; i < size; i++) {
|
|
1338
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/restrict-plus-operands
|
|
1339
|
+
var argVal = {{{ makeGetValue('argv', 'i * ' + POINTER_SIZE, '*') }}};
|
|
1340
|
+
arr[i] = emnapiCtx.handleStore.get(argVal).value;
|
|
1341
|
+
}
|
|
1342
|
+
var ret = emnapiNodeBinding.node.makeCallback(resource, callback, arr, {
|
|
1343
|
+
asyncId: async_id,
|
|
1344
|
+
triggerAsyncId: trigger_async_id
|
|
1345
|
+
});
|
|
1346
|
+
if (result) {
|
|
1347
|
+
{{{ from64('result') }}};
|
|
1348
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1349
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1350
|
+
v = envObject.ensureHandleId(ret);
|
|
1351
|
+
{{{ makeSetValue('result', 0, 'v', '*') }}};
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
function __emnapi_async_init_js(async_resource, async_resource_name, result) {
|
|
1355
|
+
if (!emnapiNodeBinding) {
|
|
1356
|
+
return 9 /* napi_status.napi_generic_failure */;
|
|
1357
|
+
}
|
|
1358
|
+
var resource;
|
|
1359
|
+
if (async_resource) {
|
|
1360
|
+
resource = Object(emnapiCtx.handleStore.get(async_resource).value);
|
|
1361
|
+
}
|
|
1362
|
+
var name = emnapiCtx.handleStore.get(async_resource_name).value;
|
|
1363
|
+
var ret = emnapiNodeBinding.napi.asyncInit(resource, name);
|
|
1364
|
+
if (ret.status !== 0)
|
|
1365
|
+
return ret.status;
|
|
1366
|
+
var numberValue = ret.value;
|
|
1367
|
+
if (!((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63))))) {
|
|
1368
|
+
numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
1369
|
+
if (numberValue >= (BigInt(1) << BigInt(63))) {
|
|
1370
|
+
numberValue = numberValue - (BigInt(1) << BigInt(64));
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1374
|
+
var low = Number(numberValue & BigInt(0xffffffff));
|
|
1375
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1376
|
+
var high = Number(numberValue >> BigInt(32));
|
|
1377
|
+
{{{ from64('result') }}};
|
|
1378
|
+
{{{ makeSetValue('result', 0, 'low', 'i32') }}};
|
|
1379
|
+
{{{ makeSetValue('result', 4, 'high', 'i32') }}};
|
|
1380
|
+
return 0 /* napi_status.napi_ok */;
|
|
1381
|
+
}
|
|
1382
|
+
function __emnapi_async_destroy_js(async_context) {
|
|
1383
|
+
if (!emnapiNodeBinding) {
|
|
1384
|
+
return 9 /* napi_status.napi_generic_failure */;
|
|
1385
|
+
}
|
|
1386
|
+
{{{ from64('async_context') }}};
|
|
1387
|
+
var low = {{{ makeGetValue('async_context', 0, 'i32') }}};
|
|
1388
|
+
var high = {{{ makeGetValue('async_context', 4, 'i32') }}};
|
|
1389
|
+
var pointer = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
|
|
1390
|
+
var ret = emnapiNodeBinding.napi.asyncDestroy(pointer);
|
|
1391
|
+
if (ret.status !== 0)
|
|
1392
|
+
return ret.status;
|
|
1393
|
+
return 0 /* napi_status.napi_ok */;
|
|
1394
|
+
}
|
|
1395
|
+
// https://github.com/nodejs/node-addon-api/pull/1283
|
|
1396
|
+
function napi_open_callback_scope(env, ignored, async_context_handle, result) {
|
|
1397
|
+
throw new Error('napi_open_callback_scope has not been implemented yet');
|
|
1398
|
+
}
|
|
1399
|
+
function napi_close_callback_scope(env, scope) {
|
|
1400
|
+
throw new Error('napi_close_callback_scope has not been implemented yet');
|
|
1401
|
+
}
|
|
1402
|
+
// @ts-expect-error
|
|
1403
|
+
function napi_make_callback(env, async_context, recv, func, argc, argv, result) {
|
|
1404
|
+
var i = 0;
|
|
1405
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1406
|
+
var v;
|
|
1407
|
+
if (env == 0)
|
|
1408
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1409
|
+
var envObject_15 = emnapiCtx.envStore.get(env);
|
|
1410
|
+
if (envObject_15.tryCatch.hasCaught())
|
|
1411
|
+
return envObject_15.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1412
|
+
envObject_15.clearLastError();
|
|
1413
|
+
try {
|
|
1414
|
+
if (recv == 0)
|
|
1415
|
+
return envObject_15.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1416
|
+
if (argc > 0) {
|
|
1417
|
+
if (argv == 0)
|
|
1418
|
+
return envObject_15.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1419
|
+
}
|
|
1420
|
+
var v8recv_2 = Object(emnapiCtx.handleStore.get(recv).value);
|
|
1421
|
+
var v8func_2 = emnapiCtx.handleStore.get(func).value;
|
|
1422
|
+
if (typeof v8func_2 !== "function") {
|
|
1423
|
+
return envObject_15.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1424
|
+
}
|
|
1425
|
+
{{{ from64("async_context") }}};
|
|
1426
|
+
var low_1 = {{{ makeGetValue("async_context", 0, "i32") }}};
|
|
1427
|
+
var high_1 = {{{ makeGetValue("async_context", 4, "i32") }}};
|
|
1428
|
+
var ctx_1 = BigInt((low_1) >>> 0) | (BigInt(high_1) << BigInt(32));
|
|
1429
|
+
{{{ from64("argv") }}};
|
|
1430
|
+
{{{ from64("argc") }}};
|
|
1431
|
+
argc = argc >>> 0;
|
|
1432
|
+
var arr_1 = Array(argc);
|
|
1433
|
+
for (; i < argc; i++) {
|
|
1434
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/restrict-plus-operands
|
|
1435
|
+
var argVal_4 = {{{ makeGetValue("argv", "i * " + POINTER_SIZE, "*") }}};
|
|
1436
|
+
arr_1[i] = emnapiCtx.handleStore.get(argVal_4).value;
|
|
1437
|
+
}
|
|
1438
|
+
var ret_4 = emnapiNodeBinding.napi.makeCallback(ctx_1, v8recv_2, v8func_2, arr_1);
|
|
1439
|
+
if (ret_4.error) {
|
|
1440
|
+
throw ret_4.error;
|
|
1441
|
+
}
|
|
1442
|
+
if (ret_4.status !== 0 /* napi_status.napi_ok */)
|
|
1443
|
+
return envObject_15.setLastError(ret_4.status);
|
|
1444
|
+
if (result) {
|
|
1445
|
+
{{{ from64("result") }}};
|
|
1446
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1447
|
+
v = envObject_15.ensureHandleId(ret_4.value);
|
|
1448
|
+
{{{ makeSetValue("result", 0, "v", "*") }}};
|
|
1449
|
+
}
|
|
1450
|
+
return envObject_15.clearLastError();
|
|
1451
|
+
}
|
|
1452
|
+
catch (err_16) {
|
|
1453
|
+
envObject_15.tryCatch.setError(err_16);
|
|
1454
|
+
return envObject_15.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1457
|
+
emnapiImplementInternal('_emnapi_node_emit_async_init', 'vppdp', __emnapi_node_emit_async_init);
|
|
1458
|
+
emnapiImplementInternal('_emnapi_node_emit_async_destroy', 'vdd', __emnapi_node_emit_async_destroy);
|
|
1459
|
+
// emnapiImplementInternal('_emnapi_node_open_callback_scope', 'vpddp', __emnapi_node_open_callback_scope)
|
|
1460
|
+
// emnapiImplementInternal('_emnapi_node_close_callback_scope', 'vp', __emnapi_node_close_callback_scope)
|
|
1461
|
+
emnapiImplementInternal('_emnapi_node_make_callback', 'ipppppddp', __emnapi_node_make_callback);
|
|
1462
|
+
emnapiImplementInternal('_emnapi_async_init_js', 'ippp', __emnapi_async_init_js);
|
|
1463
|
+
emnapiImplementInternal('_emnapi_async_destroy_js', 'ip', __emnapi_async_destroy_js);
|
|
1464
|
+
emnapiImplement('napi_open_callback_scope', 'ipppp', napi_open_callback_scope);
|
|
1465
|
+
emnapiImplement('napi_close_callback_scope', 'ipp', napi_close_callback_scope);
|
|
1466
|
+
emnapiImplement('napi_make_callback', 'ippppppp', napi_make_callback);
|
|
1467
|
+
// @ts-expect-error
|
|
1468
|
+
function napi_create_promise(env, deferred, promise) {
|
|
1469
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1470
|
+
var deferredObjectId, value;
|
|
1471
|
+
if (env == 0)
|
|
1472
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1473
|
+
var // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1474
|
+
envObject_16 = emnapiCtx.envStore.get(env);
|
|
1475
|
+
if (envObject_16.tryCatch.hasCaught())
|
|
1476
|
+
return envObject_16.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1477
|
+
envObject_16.clearLastError();
|
|
1478
|
+
try {
|
|
1479
|
+
if (deferred == 0)
|
|
1480
|
+
return envObject_16.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1481
|
+
if (promise == 0)
|
|
1482
|
+
return envObject_16.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1483
|
+
var p_1 = new Promise(function (resolve, reject) {
|
|
1484
|
+
var deferredObject_1 = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
|
|
1485
|
+
deferredObjectId = deferredObject_1.id;
|
|
1486
|
+
{{{ from64("deferred") }}};
|
|
1487
|
+
{{{ makeSetValue("deferred", 0, "deferredObjectId", "*") }}};
|
|
1488
|
+
});
|
|
1489
|
+
{{{ from64("promise") }}};
|
|
1490
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1491
|
+
value = emnapiCtx.addToCurrentScope(p_1).id;
|
|
1492
|
+
{{{ makeSetValue("promise", 0, "value", "*") }}};
|
|
1493
|
+
return envObject_16.getReturnStatus();
|
|
1494
|
+
}
|
|
1495
|
+
catch (err_17) {
|
|
1496
|
+
envObject_16.tryCatch.setError(err_17);
|
|
1497
|
+
return envObject_16.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1498
|
+
}
|
|
1499
|
+
}
|
|
1500
|
+
// @ts-expect-error
|
|
1501
|
+
function napi_resolve_deferred(env, deferred, resolution) {
|
|
1502
|
+
if (env == 0)
|
|
1503
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1504
|
+
var // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1505
|
+
envObject_17 = emnapiCtx.envStore.get(env);
|
|
1506
|
+
if (envObject_17.tryCatch.hasCaught())
|
|
1507
|
+
return envObject_17.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1508
|
+
envObject_17.clearLastError();
|
|
1509
|
+
try {
|
|
1510
|
+
if (deferred == 0)
|
|
1511
|
+
return envObject_17.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1512
|
+
if (resolution == 0)
|
|
1513
|
+
return envObject_17.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1514
|
+
var deferredObject_2 = emnapiCtx.deferredStore.get(deferred);
|
|
1515
|
+
deferredObject_2.resolve(emnapiCtx.handleStore.get(resolution).value);
|
|
1516
|
+
return envObject_17.getReturnStatus();
|
|
1517
|
+
}
|
|
1518
|
+
catch (err_18) {
|
|
1519
|
+
envObject_17.tryCatch.setError(err_18);
|
|
1520
|
+
return envObject_17.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
// @ts-expect-error
|
|
1524
|
+
function napi_reject_deferred(env, deferred, resolution) {
|
|
1525
|
+
if (env == 0)
|
|
1526
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1527
|
+
var // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1528
|
+
envObject_18 = emnapiCtx.envStore.get(env);
|
|
1529
|
+
if (envObject_18.tryCatch.hasCaught())
|
|
1530
|
+
return envObject_18.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1531
|
+
envObject_18.clearLastError();
|
|
1532
|
+
try {
|
|
1533
|
+
if (deferred == 0)
|
|
1534
|
+
return envObject_18.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1535
|
+
if (resolution == 0)
|
|
1536
|
+
return envObject_18.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1537
|
+
var deferredObject_3 = emnapiCtx.deferredStore.get(deferred);
|
|
1538
|
+
deferredObject_3.reject(emnapiCtx.handleStore.get(resolution).value);
|
|
1539
|
+
return envObject_18.getReturnStatus();
|
|
1540
|
+
}
|
|
1541
|
+
catch (err_19) {
|
|
1542
|
+
envObject_18.tryCatch.setError(err_19);
|
|
1543
|
+
return envObject_18.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
function napi_is_promise(env, value, is_promise) {
|
|
1547
|
+
if (env == 0)
|
|
1548
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1549
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
1550
|
+
if (value == 0)
|
|
1551
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1552
|
+
if (is_promise == 0)
|
|
1553
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1554
|
+
var h = emnapiCtx.handleStore.get(value);
|
|
1555
|
+
{{{ from64('is_promise') }}};
|
|
1556
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1557
|
+
var r = h.isPromise() ? 1 : 0;
|
|
1558
|
+
{{{ makeSetValue('is_promise', 0, 'r', 'i8') }}};
|
|
1559
|
+
return envObject.clearLastError();
|
|
1560
|
+
}
|
|
1561
|
+
emnapiImplement('napi_create_promise', 'ippp', napi_create_promise);
|
|
1562
|
+
emnapiImplement('napi_resolve_deferred', 'ippp', napi_resolve_deferred);
|
|
1563
|
+
emnapiImplement('napi_reject_deferred', 'ippp', napi_reject_deferred);
|
|
1564
|
+
emnapiImplement('napi_is_promise', 'ippp', napi_is_promise);
|
|
1565
|
+
function _napi_get_all_property_names(env, object, key_mode, key_filter, key_conversion, result
|
|
1566
|
+
// @ts-expect-error
|
|
1567
|
+
) {
|
|
1568
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1569
|
+
var value;
|
|
1570
|
+
if (env == 0)
|
|
1571
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1572
|
+
var envObject_19 = emnapiCtx.envStore.get(env);
|
|
1573
|
+
if (envObject_19.tryCatch.hasCaught())
|
|
1574
|
+
return envObject_19.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1575
|
+
envObject_19.clearLastError();
|
|
1576
|
+
try {
|
|
1577
|
+
if (result == 0)
|
|
1578
|
+
return envObject_19.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1579
|
+
if (object == 0)
|
|
1580
|
+
return envObject_19.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1581
|
+
var h_1 = emnapiCtx.handleStore.get(object);
|
|
1582
|
+
if (h_1.value == null) {
|
|
1583
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
1584
|
+
}
|
|
1585
|
+
var obj_1 = void 0;
|
|
1586
|
+
try {
|
|
1587
|
+
obj_1 = h_1.isObject() || h_1.isFunction() ? h_1.value : Object(h_1.value);
|
|
1588
|
+
}
|
|
1589
|
+
catch (_1) {
|
|
1590
|
+
return envObject_19.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1591
|
+
}
|
|
1592
|
+
if (key_mode !== 0 /* napi_key_collection_mode.napi_key_include_prototypes */ && key_mode !== 1 /* napi_key_collection_mode.napi_key_own_only */) {
|
|
1593
|
+
return envObject_19.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1594
|
+
}
|
|
1595
|
+
if (key_conversion !== 0 /* napi_key_conversion.napi_key_keep_numbers */ && key_conversion !== 1 /* napi_key_conversion.napi_key_numbers_to_strings */) {
|
|
1596
|
+
return envObject_19.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1597
|
+
}
|
|
1598
|
+
var props_1 = [];
|
|
1599
|
+
var names_1 = void 0;
|
|
1600
|
+
var symbols_1 = void 0;
|
|
1601
|
+
var i_1 = void 0;
|
|
1602
|
+
var own_1 = true;
|
|
1603
|
+
var integerIndiceRegex_1 = /^(0|[1-9][0-9]*)$/;
|
|
1604
|
+
do {
|
|
1605
|
+
names_1 = Object.getOwnPropertyNames(obj_1);
|
|
1606
|
+
symbols_1 = Object.getOwnPropertySymbols(obj_1);
|
|
1607
|
+
for (i_1 = 0; i_1 < names_1.length; i_1++) {
|
|
1608
|
+
props_1.push({
|
|
1609
|
+
name: integerIndiceRegex_1.test(names_1[i_1]) ? Number(names_1[i_1]) : names_1[i_1],
|
|
1610
|
+
desc: Object.getOwnPropertyDescriptor(obj_1, names_1[i_1]),
|
|
1611
|
+
own_1: own_1
|
|
1612
|
+
});
|
|
1613
|
+
}
|
|
1614
|
+
for (i_1 = 0; i_1 < symbols_1.length; i_1++) {
|
|
1615
|
+
props_1.push({
|
|
1616
|
+
name: symbols_1[i_1],
|
|
1617
|
+
desc: Object.getOwnPropertyDescriptor(obj_1, symbols_1[i_1]),
|
|
1618
|
+
own_1: own_1
|
|
1619
|
+
});
|
|
1620
|
+
}
|
|
1621
|
+
if (key_mode === 1 /* napi_key_collection_mode.napi_key_own_only */) {
|
|
1622
|
+
break;
|
|
1623
|
+
}
|
|
1624
|
+
obj_1 = Object.getPrototypeOf(obj_1);
|
|
1625
|
+
own_1 = false;
|
|
1626
|
+
} while (obj_1);
|
|
1627
|
+
var ret_5 = [];
|
|
1628
|
+
var addName_1 = function (ret_5, name, key_filter, conversion_mode) {
|
|
1629
|
+
if (ret_5.indexOf(name) !== -1)
|
|
1630
|
+
return;
|
|
1631
|
+
if (conversion_mode === 0 /* napi_key_conversion.napi_key_keep_numbers */) {
|
|
1632
|
+
ret_5.push(name);
|
|
1633
|
+
}
|
|
1634
|
+
else if (conversion_mode === 1 /* napi_key_conversion.napi_key_numbers_to_strings */) {
|
|
1635
|
+
var realName_1 = typeof name === "number" ? String(name) : name;
|
|
1636
|
+
if (typeof realName_1 === "string") {
|
|
1637
|
+
if (!(key_filter & 8 /* napi_key_filter.napi_key_skip_strings */)) {
|
|
1638
|
+
ret_5.push(realName_1);
|
|
1639
|
+
}
|
|
1640
|
+
}
|
|
1641
|
+
else {
|
|
1642
|
+
ret_5.push(realName_1);
|
|
1643
|
+
}
|
|
1644
|
+
}
|
|
1645
|
+
};
|
|
1646
|
+
for (i_1 = 0; i_1 < props_1.length; i_1++) {
|
|
1647
|
+
var prop_1 = props_1[i_1];
|
|
1648
|
+
var name_1 = prop_1.name;
|
|
1649
|
+
var desc_1 = prop_1.desc;
|
|
1650
|
+
if (key_filter === 0 /* napi_key_filter.napi_key_all_properties */) {
|
|
1651
|
+
addName_1(ret_5, name_1, key_filter, key_conversion);
|
|
1652
|
+
}
|
|
1653
|
+
else {
|
|
1654
|
+
if (key_filter & 8 /* napi_key_filter.napi_key_skip_strings */ && typeof name_1 === "string") {
|
|
1655
|
+
continue;
|
|
1656
|
+
}
|
|
1657
|
+
if (key_filter & 16 /* napi_key_filter.napi_key_skip_symbols */ && typeof name_1 === "symbol") {
|
|
1658
|
+
continue;
|
|
1659
|
+
}
|
|
1660
|
+
var shouldAdd_1 = true;
|
|
1661
|
+
switch (key_filter & 7) {
|
|
1662
|
+
case 1 /* napi_key_filter.napi_key_writable */: {
|
|
1663
|
+
shouldAdd_1 = Boolean(desc_1.writable);
|
|
1664
|
+
break;
|
|
1665
|
+
}
|
|
1666
|
+
case 2 /* napi_key_filter.napi_key_enumerable */: {
|
|
1667
|
+
shouldAdd_1 = Boolean(desc_1.enumerable);
|
|
1668
|
+
break;
|
|
1669
|
+
}
|
|
1670
|
+
case (1 /* napi_key_filter.napi_key_writable */ | 2 /* napi_key_filter.napi_key_enumerable */): {
|
|
1671
|
+
shouldAdd_1 = Boolean(desc_1.writable && desc_1.enumerable);
|
|
1672
|
+
break;
|
|
1673
|
+
}
|
|
1674
|
+
case 4 /* napi_key_filter.napi_key_configurable */: {
|
|
1675
|
+
shouldAdd_1 = Boolean(desc_1.configurable);
|
|
1676
|
+
break;
|
|
1677
|
+
}
|
|
1678
|
+
case (4 /* napi_key_filter.napi_key_configurable */ | 1 /* napi_key_filter.napi_key_writable */): {
|
|
1679
|
+
shouldAdd_1 = Boolean(desc_1.configurable && desc_1.writable);
|
|
1680
|
+
break;
|
|
1681
|
+
}
|
|
1682
|
+
case (4 /* napi_key_filter.napi_key_configurable */ | 2 /* napi_key_filter.napi_key_enumerable */): {
|
|
1683
|
+
shouldAdd_1 = Boolean(desc_1.configurable && desc_1.enumerable);
|
|
1684
|
+
break;
|
|
1685
|
+
}
|
|
1686
|
+
case (4 /* napi_key_filter.napi_key_configurable */ | 2 /* napi_key_filter.napi_key_enumerable */ | 1 /* napi_key_filter.napi_key_writable */): {
|
|
1687
|
+
shouldAdd_1 = Boolean(desc_1.configurable && desc_1.enumerable && desc_1.writable);
|
|
1688
|
+
break;
|
|
1689
|
+
}
|
|
1690
|
+
}
|
|
1691
|
+
if (shouldAdd_1) {
|
|
1692
|
+
addName_1(ret_5, name_1, key_filter, key_conversion);
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
}
|
|
1696
|
+
{{{ from64("result") }}};
|
|
1697
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1698
|
+
value = emnapiCtx.addToCurrentScope(ret_5).id;
|
|
1699
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
1700
|
+
return envObject_19.getReturnStatus();
|
|
1701
|
+
}
|
|
1702
|
+
catch (err_20) {
|
|
1703
|
+
envObject_19.tryCatch.setError(err_20);
|
|
1704
|
+
return envObject_19.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1705
|
+
}
|
|
1706
|
+
}
|
|
1707
|
+
function napi_get_property_names(env, object, result) {
|
|
1708
|
+
return _napi_get_all_property_names(env, object, 0 /* napi_key_collection_mode.napi_key_include_prototypes */, 2 /* napi_key_filter.napi_key_enumerable */ | 16 /* napi_key_filter.napi_key_skip_symbols */, 1 /* napi_key_conversion.napi_key_numbers_to_strings */, result);
|
|
1709
|
+
}
|
|
1710
|
+
// @ts-expect-error
|
|
1711
|
+
function napi_set_property(env, object, key, value) {
|
|
1712
|
+
if (env == 0)
|
|
1713
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1714
|
+
var envObject_20 = emnapiCtx.envStore.get(env);
|
|
1715
|
+
if (envObject_20.tryCatch.hasCaught())
|
|
1716
|
+
return envObject_20.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1717
|
+
envObject_20.clearLastError();
|
|
1718
|
+
try {
|
|
1719
|
+
if (key == 0)
|
|
1720
|
+
return envObject_20.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1721
|
+
if (value == 0)
|
|
1722
|
+
return envObject_20.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1723
|
+
if (object == 0)
|
|
1724
|
+
return envObject_20.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1725
|
+
var h_2 = emnapiCtx.handleStore.get(object);
|
|
1726
|
+
if (!(h_2.isObject() || h_2.isFunction())) {
|
|
1727
|
+
return envObject_20.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1728
|
+
}
|
|
1729
|
+
h_2.value[emnapiCtx.handleStore.get(key).value] = emnapiCtx.handleStore.get(value).value;
|
|
1730
|
+
return envObject_20.getReturnStatus();
|
|
1731
|
+
}
|
|
1732
|
+
catch (err_21) {
|
|
1733
|
+
envObject_20.tryCatch.setError(err_21);
|
|
1734
|
+
return envObject_20.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1735
|
+
}
|
|
1736
|
+
}
|
|
1737
|
+
// @ts-expect-error
|
|
1738
|
+
function napi_has_property(env, object, key, result) {
|
|
1739
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1740
|
+
var r;
|
|
1741
|
+
if (env == 0)
|
|
1742
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1743
|
+
var envObject_21 = emnapiCtx.envStore.get(env);
|
|
1744
|
+
if (envObject_21.tryCatch.hasCaught())
|
|
1745
|
+
return envObject_21.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1746
|
+
envObject_21.clearLastError();
|
|
1747
|
+
try {
|
|
1748
|
+
if (key == 0)
|
|
1749
|
+
return envObject_21.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1750
|
+
if (result == 0)
|
|
1751
|
+
return envObject_21.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1752
|
+
if (object == 0)
|
|
1753
|
+
return envObject_21.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1754
|
+
var h_3 = emnapiCtx.handleStore.get(object);
|
|
1755
|
+
if (h_3.value == null) {
|
|
1756
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
1757
|
+
}
|
|
1758
|
+
var v_1 = void 0;
|
|
1759
|
+
try {
|
|
1760
|
+
v_1 = h_3.isObject() || h_3.isFunction() ? h_3.value : Object(h_3.value);
|
|
1761
|
+
}
|
|
1762
|
+
catch (_2) {
|
|
1763
|
+
return envObject_21.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1764
|
+
}
|
|
1765
|
+
{{{ from64("result") }}};
|
|
1766
|
+
r = (emnapiCtx.handleStore.get(key).value in v_1) ? 1 : 0;
|
|
1767
|
+
{{{ makeSetValue("result", 0, "r", "i8") }}};
|
|
1768
|
+
return envObject_21.getReturnStatus();
|
|
1769
|
+
}
|
|
1770
|
+
catch (err_22) {
|
|
1771
|
+
envObject_21.tryCatch.setError(err_22);
|
|
1772
|
+
return envObject_21.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1773
|
+
}
|
|
1774
|
+
}
|
|
1775
|
+
// @ts-expect-error
|
|
1776
|
+
function napi_get_property(env, object, key, result) {
|
|
1777
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1778
|
+
var value;
|
|
1779
|
+
if (env == 0)
|
|
1780
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1781
|
+
var envObject_22 = emnapiCtx.envStore.get(env);
|
|
1782
|
+
if (envObject_22.tryCatch.hasCaught())
|
|
1783
|
+
return envObject_22.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1784
|
+
envObject_22.clearLastError();
|
|
1785
|
+
try {
|
|
1786
|
+
if (key == 0)
|
|
1787
|
+
return envObject_22.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1788
|
+
if (result == 0)
|
|
1789
|
+
return envObject_22.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1790
|
+
if (object == 0)
|
|
1791
|
+
return envObject_22.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1792
|
+
var h_4 = emnapiCtx.handleStore.get(object);
|
|
1793
|
+
if (h_4.value == null) {
|
|
1794
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
1795
|
+
}
|
|
1796
|
+
var v_2 = void 0;
|
|
1797
|
+
try {
|
|
1798
|
+
v_2 = h_4.isObject() || h_4.isFunction() ? h_4.value : Object(h_4.value);
|
|
1799
|
+
}
|
|
1800
|
+
catch (_3) {
|
|
1801
|
+
return envObject_22.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1802
|
+
}
|
|
1803
|
+
{{{ from64("result") }}};
|
|
1804
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1805
|
+
value = envObject_22.ensureHandleId(v_2[emnapiCtx.handleStore.get(key).value]);
|
|
1806
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
1807
|
+
return envObject_22.getReturnStatus();
|
|
1808
|
+
}
|
|
1809
|
+
catch (err_23) {
|
|
1810
|
+
envObject_22.tryCatch.setError(err_23);
|
|
1811
|
+
return envObject_22.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1812
|
+
}
|
|
1813
|
+
}
|
|
1814
|
+
// @ts-expect-error
|
|
1815
|
+
function napi_delete_property(env, object, key, result) {
|
|
1816
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1817
|
+
var r;
|
|
1818
|
+
if (env == 0)
|
|
1819
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1820
|
+
var envObject_23 = emnapiCtx.envStore.get(env);
|
|
1821
|
+
if (envObject_23.tryCatch.hasCaught())
|
|
1822
|
+
return envObject_23.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1823
|
+
envObject_23.clearLastError();
|
|
1824
|
+
try {
|
|
1825
|
+
if (key == 0)
|
|
1826
|
+
return envObject_23.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1827
|
+
if (object == 0)
|
|
1828
|
+
return envObject_23.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1829
|
+
var h_5 = emnapiCtx.handleStore.get(object);
|
|
1830
|
+
if (!(h_5.isObject() || h_5.isFunction())) {
|
|
1831
|
+
return envObject_23.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1832
|
+
}
|
|
1833
|
+
var propertyKey_1 = emnapiCtx.handleStore.get(key).value;
|
|
1834
|
+
if (emnapiCtx.feature.supportReflect) {
|
|
1835
|
+
r = Reflect.deleteProperty(h_5.value, propertyKey_1);
|
|
1836
|
+
}
|
|
1837
|
+
else {
|
|
1838
|
+
try {
|
|
1839
|
+
r = delete h_5.value[propertyKey_1];
|
|
1840
|
+
}
|
|
1841
|
+
catch (_4) {
|
|
1842
|
+
r = false;
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1845
|
+
if (result) {
|
|
1846
|
+
{{{ from64("result") }}};
|
|
1847
|
+
{{{ makeSetValue("result", 0, "r ? 1 : 0", "i8") }}};
|
|
1848
|
+
}
|
|
1849
|
+
return envObject_23.getReturnStatus();
|
|
1850
|
+
}
|
|
1851
|
+
catch (err_24) {
|
|
1852
|
+
envObject_23.tryCatch.setError(err_24);
|
|
1853
|
+
return envObject_23.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1854
|
+
}
|
|
1855
|
+
}
|
|
1856
|
+
// @ts-expect-error
|
|
1857
|
+
function napi_has_own_property(env, object, key, result) {
|
|
1858
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1859
|
+
var value, r;
|
|
1860
|
+
if (env == 0)
|
|
1861
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1862
|
+
var envObject_24 = emnapiCtx.envStore.get(env);
|
|
1863
|
+
if (envObject_24.tryCatch.hasCaught())
|
|
1864
|
+
return envObject_24.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1865
|
+
envObject_24.clearLastError();
|
|
1866
|
+
try {
|
|
1867
|
+
if (key == 0)
|
|
1868
|
+
return envObject_24.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1869
|
+
if (result == 0)
|
|
1870
|
+
return envObject_24.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1871
|
+
if (object == 0)
|
|
1872
|
+
return envObject_24.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1873
|
+
var h_6 = emnapiCtx.handleStore.get(object);
|
|
1874
|
+
if (h_6.value == null) {
|
|
1875
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
1876
|
+
}
|
|
1877
|
+
var v_3 = void 0;
|
|
1878
|
+
try {
|
|
1879
|
+
v_3 = h_6.isObject() || h_6.isFunction() ? h_6.value : Object(h_6.value);
|
|
1880
|
+
}
|
|
1881
|
+
catch (_5) {
|
|
1882
|
+
return envObject_24.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1883
|
+
}
|
|
1884
|
+
var prop_2 = emnapiCtx.handleStore.get(key).value;
|
|
1885
|
+
if (typeof prop_2 !== "string" && typeof prop_2 !== "symbol") {
|
|
1886
|
+
return envObject_24.setLastError(4 /* napi_status.napi_name_expected */);
|
|
1887
|
+
}
|
|
1888
|
+
r = Object.prototype.hasOwnProperty.call(v_3, emnapiCtx.handleStore.get(key).value);
|
|
1889
|
+
{{{ from64("result") }}};
|
|
1890
|
+
{{{ makeSetValue("result", 0, "r ? 1 : 0", "i8") }}};
|
|
1891
|
+
return envObject_24.getReturnStatus();
|
|
1892
|
+
}
|
|
1893
|
+
catch (err_25) {
|
|
1894
|
+
envObject_24.tryCatch.setError(err_25);
|
|
1895
|
+
return envObject_24.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1896
|
+
}
|
|
1897
|
+
}
|
|
1898
|
+
// @ts-expect-error
|
|
1899
|
+
function napi_set_named_property(env, object, cname, value) {
|
|
1900
|
+
if (env == 0)
|
|
1901
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1902
|
+
var envObject_25 = emnapiCtx.envStore.get(env);
|
|
1903
|
+
if (envObject_25.tryCatch.hasCaught())
|
|
1904
|
+
return envObject_25.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1905
|
+
envObject_25.clearLastError();
|
|
1906
|
+
try {
|
|
1907
|
+
if (value == 0)
|
|
1908
|
+
return envObject_25.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1909
|
+
if (object == 0)
|
|
1910
|
+
return envObject_25.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1911
|
+
var h_7 = emnapiCtx.handleStore.get(object);
|
|
1912
|
+
if (!(h_7.isObject() || h_7.isFunction())) {
|
|
1913
|
+
return envObject_25.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1914
|
+
}
|
|
1915
|
+
if (!cname) {
|
|
1916
|
+
return envObject_25.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1917
|
+
}
|
|
1918
|
+
{{{ from64("cname") }}};
|
|
1919
|
+
emnapiCtx.handleStore.get(object).value[UTF8ToString(cname)] = emnapiCtx.handleStore.get(value).value;
|
|
1920
|
+
return 0 /* napi_status.napi_ok */;
|
|
1921
|
+
}
|
|
1922
|
+
catch (err_26) {
|
|
1923
|
+
envObject_25.tryCatch.setError(err_26);
|
|
1924
|
+
return envObject_25.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
// @ts-expect-error
|
|
1928
|
+
function napi_has_named_property(env, object, utf8name, result) {
|
|
1929
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1930
|
+
var r;
|
|
1931
|
+
if (env == 0)
|
|
1932
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1933
|
+
var envObject_26 = emnapiCtx.envStore.get(env);
|
|
1934
|
+
if (envObject_26.tryCatch.hasCaught())
|
|
1935
|
+
return envObject_26.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1936
|
+
envObject_26.clearLastError();
|
|
1937
|
+
try {
|
|
1938
|
+
if (result == 0)
|
|
1939
|
+
return envObject_26.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1940
|
+
if (object == 0)
|
|
1941
|
+
return envObject_26.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1942
|
+
if (!utf8name) {
|
|
1943
|
+
return envObject_26.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1944
|
+
}
|
|
1945
|
+
var h_8 = emnapiCtx.handleStore.get(object);
|
|
1946
|
+
if (h_8.value == null) {
|
|
1947
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
1948
|
+
}
|
|
1949
|
+
var v_4 = void 0;
|
|
1950
|
+
try {
|
|
1951
|
+
v_4 = h_8.isObject() || h_8.isFunction() ? h_8.value : Object(h_8.value);
|
|
1952
|
+
}
|
|
1953
|
+
catch (_6) {
|
|
1954
|
+
return envObject_26.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1955
|
+
}
|
|
1956
|
+
{{{ from64("utf8name") }}};
|
|
1957
|
+
{{{ from64("result") }}};
|
|
1958
|
+
r = UTF8ToString(utf8name) in v_4;
|
|
1959
|
+
{{{ makeSetValue("result", 0, "r ? 1 : 0", "i8") }}};
|
|
1960
|
+
return envObject_26.getReturnStatus();
|
|
1961
|
+
}
|
|
1962
|
+
catch (err_27) {
|
|
1963
|
+
envObject_26.tryCatch.setError(err_27);
|
|
1964
|
+
return envObject_26.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1965
|
+
}
|
|
1966
|
+
}
|
|
1967
|
+
// @ts-expect-error
|
|
1968
|
+
function napi_get_named_property(env, object, utf8name, result) {
|
|
1969
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1970
|
+
var value;
|
|
1971
|
+
if (env == 0)
|
|
1972
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
1973
|
+
var envObject_27 = emnapiCtx.envStore.get(env);
|
|
1974
|
+
if (envObject_27.tryCatch.hasCaught())
|
|
1975
|
+
return envObject_27.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
1976
|
+
envObject_27.clearLastError();
|
|
1977
|
+
try {
|
|
1978
|
+
if (result == 0)
|
|
1979
|
+
return envObject_27.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1980
|
+
if (object == 0)
|
|
1981
|
+
return envObject_27.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1982
|
+
if (!utf8name) {
|
|
1983
|
+
return envObject_27.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
1984
|
+
}
|
|
1985
|
+
var h_9 = emnapiCtx.handleStore.get(object);
|
|
1986
|
+
if (h_9.value == null) {
|
|
1987
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
1988
|
+
}
|
|
1989
|
+
var v_5 = void 0;
|
|
1990
|
+
try {
|
|
1991
|
+
v_5 = h_9.isObject() || h_9.isFunction() ? h_9.value : Object(h_9.value);
|
|
1992
|
+
}
|
|
1993
|
+
catch (_7) {
|
|
1994
|
+
return envObject_27.setLastError(2 /* napi_status.napi_object_expected */);
|
|
1995
|
+
}
|
|
1996
|
+
{{{ from64("utf8name") }}};
|
|
1997
|
+
{{{ from64("result") }}};
|
|
1998
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1999
|
+
value = envObject_27.ensureHandleId(v_5[UTF8ToString(utf8name)]);
|
|
2000
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
2001
|
+
return envObject_27.getReturnStatus();
|
|
2002
|
+
}
|
|
2003
|
+
catch (err_28) {
|
|
2004
|
+
envObject_27.tryCatch.setError(err_28);
|
|
2005
|
+
return envObject_27.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
2008
|
+
// @ts-expect-error
|
|
2009
|
+
function napi_set_element(env, object, index, value) {
|
|
2010
|
+
if (env == 0)
|
|
2011
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2012
|
+
var envObject_28 = emnapiCtx.envStore.get(env);
|
|
2013
|
+
if (envObject_28.tryCatch.hasCaught())
|
|
2014
|
+
return envObject_28.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2015
|
+
envObject_28.clearLastError();
|
|
2016
|
+
try {
|
|
2017
|
+
if (value == 0)
|
|
2018
|
+
return envObject_28.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2019
|
+
if (object == 0)
|
|
2020
|
+
return envObject_28.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2021
|
+
var h_10 = emnapiCtx.handleStore.get(object);
|
|
2022
|
+
if (!(h_10.isObject() || h_10.isFunction())) {
|
|
2023
|
+
return envObject_28.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2024
|
+
}
|
|
2025
|
+
h_10.value[index >>> 0] = emnapiCtx.handleStore.get(value).value;
|
|
2026
|
+
return envObject_28.getReturnStatus();
|
|
2027
|
+
}
|
|
2028
|
+
catch (err_29) {
|
|
2029
|
+
envObject_28.tryCatch.setError(err_29);
|
|
2030
|
+
return envObject_28.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2031
|
+
}
|
|
2032
|
+
}
|
|
2033
|
+
// @ts-expect-error
|
|
2034
|
+
function napi_has_element(env, object, index, result) {
|
|
2035
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2036
|
+
var r;
|
|
2037
|
+
if (env == 0)
|
|
2038
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2039
|
+
var envObject_29 = emnapiCtx.envStore.get(env);
|
|
2040
|
+
if (envObject_29.tryCatch.hasCaught())
|
|
2041
|
+
return envObject_29.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2042
|
+
envObject_29.clearLastError();
|
|
2043
|
+
try {
|
|
2044
|
+
if (result == 0)
|
|
2045
|
+
return envObject_29.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2046
|
+
if (object == 0)
|
|
2047
|
+
return envObject_29.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2048
|
+
var h_11 = emnapiCtx.handleStore.get(object);
|
|
2049
|
+
if (h_11.value == null) {
|
|
2050
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
2051
|
+
}
|
|
2052
|
+
var v_6 = void 0;
|
|
2053
|
+
try {
|
|
2054
|
+
v_6 = h_11.isObject() || h_11.isFunction() ? h_11.value : Object(h_11.value);
|
|
2055
|
+
}
|
|
2056
|
+
catch (_8) {
|
|
2057
|
+
return envObject_29.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2058
|
+
}
|
|
2059
|
+
{{{ from64("result") }}};
|
|
2060
|
+
r = ((index >>> 0) in v_6) ? 1 : 0;
|
|
2061
|
+
{{{ makeSetValue("result", 0, "r", "i8") }}};
|
|
2062
|
+
return envObject_29.getReturnStatus();
|
|
2063
|
+
}
|
|
2064
|
+
catch (err_30) {
|
|
2065
|
+
envObject_29.tryCatch.setError(err_30);
|
|
2066
|
+
return envObject_29.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2067
|
+
}
|
|
2068
|
+
}
|
|
2069
|
+
// @ts-expect-error
|
|
2070
|
+
function napi_get_element(env, object, index, result) {
|
|
2071
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2072
|
+
var value;
|
|
2073
|
+
if (env == 0)
|
|
2074
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2075
|
+
var envObject_30 = emnapiCtx.envStore.get(env);
|
|
2076
|
+
if (envObject_30.tryCatch.hasCaught())
|
|
2077
|
+
return envObject_30.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2078
|
+
envObject_30.clearLastError();
|
|
2079
|
+
try {
|
|
2080
|
+
if (result == 0)
|
|
2081
|
+
return envObject_30.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2082
|
+
if (object == 0)
|
|
2083
|
+
return envObject_30.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2084
|
+
var h_12 = emnapiCtx.handleStore.get(object);
|
|
2085
|
+
if (h_12.value == null) {
|
|
2086
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
2087
|
+
}
|
|
2088
|
+
var v_7 = void 0;
|
|
2089
|
+
try {
|
|
2090
|
+
v_7 = h_12.isObject() || h_12.isFunction() ? h_12.value : Object(h_12.value);
|
|
2091
|
+
}
|
|
2092
|
+
catch (_9) {
|
|
2093
|
+
return envObject_30.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2094
|
+
}
|
|
2095
|
+
{{{ from64("result") }}};
|
|
2096
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2097
|
+
value = envObject_30.ensureHandleId(v_7[index >>> 0]);
|
|
2098
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
2099
|
+
return envObject_30.getReturnStatus();
|
|
2100
|
+
}
|
|
2101
|
+
catch (err_31) {
|
|
2102
|
+
envObject_30.tryCatch.setError(err_31);
|
|
2103
|
+
return envObject_30.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2104
|
+
}
|
|
2105
|
+
}
|
|
2106
|
+
// @ts-expect-error
|
|
2107
|
+
function napi_delete_element(env, object, index, result) {
|
|
2108
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2109
|
+
var r;
|
|
2110
|
+
if (env == 0)
|
|
2111
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2112
|
+
var envObject_31 = emnapiCtx.envStore.get(env);
|
|
2113
|
+
if (envObject_31.tryCatch.hasCaught())
|
|
2114
|
+
return envObject_31.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2115
|
+
envObject_31.clearLastError();
|
|
2116
|
+
try {
|
|
2117
|
+
if (object == 0)
|
|
2118
|
+
return envObject_31.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2119
|
+
var h_13 = emnapiCtx.handleStore.get(object);
|
|
2120
|
+
if (!(h_13.isObject() || h_13.isFunction())) {
|
|
2121
|
+
return envObject_31.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2122
|
+
}
|
|
2123
|
+
if (emnapiCtx.feature.supportReflect) {
|
|
2124
|
+
r = Reflect.deleteProperty(h_13.value, index >>> 0);
|
|
2125
|
+
}
|
|
2126
|
+
else {
|
|
2127
|
+
try {
|
|
2128
|
+
r = delete h_13.value[index >>> 0];
|
|
2129
|
+
}
|
|
2130
|
+
catch (_10) {
|
|
2131
|
+
r = false;
|
|
2132
|
+
}
|
|
2133
|
+
}
|
|
2134
|
+
if (result) {
|
|
2135
|
+
{{{ from64("result") }}};
|
|
2136
|
+
{{{ makeSetValue("result", 0, "r ? 1 : 0", "i8") }}};
|
|
2137
|
+
}
|
|
2138
|
+
return envObject_31.getReturnStatus();
|
|
2139
|
+
}
|
|
2140
|
+
catch (err_32) {
|
|
2141
|
+
envObject_31.tryCatch.setError(err_32);
|
|
2142
|
+
return envObject_31.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2143
|
+
}
|
|
2144
|
+
}
|
|
2145
|
+
function napi_define_properties(env, object, property_count, properties
|
|
2146
|
+
// @ts-expect-error
|
|
2147
|
+
) {
|
|
2148
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2149
|
+
var propPtr, attributes;
|
|
2150
|
+
if (env == 0)
|
|
2151
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2152
|
+
var envObject_32 = emnapiCtx.envStore.get(env);
|
|
2153
|
+
if (envObject_32.tryCatch.hasCaught())
|
|
2154
|
+
return envObject_32.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2155
|
+
envObject_32.clearLastError();
|
|
2156
|
+
try {
|
|
2157
|
+
{{{ from64("properties") }}};
|
|
2158
|
+
{{{ from64("property_count") }}};
|
|
2159
|
+
property_count = property_count >>> 0;
|
|
2160
|
+
if (property_count > 0) {
|
|
2161
|
+
if (!properties)
|
|
2162
|
+
return envObject_32.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2163
|
+
}
|
|
2164
|
+
if (!object)
|
|
2165
|
+
return envObject_32.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2166
|
+
var h_14 = emnapiCtx.handleStore.get(object);
|
|
2167
|
+
var maybeObject_1 = h_14.value;
|
|
2168
|
+
if (!(h_14.isObject() || h_14.isFunction())) {
|
|
2169
|
+
return envObject_32.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2170
|
+
}
|
|
2171
|
+
var propertyName_1 = void 0;
|
|
2172
|
+
for (var i_2 = 0; i_2 < property_count; i_2++) {
|
|
2173
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2174
|
+
propPtr = properties + (i_2 * ({{{ POINTER_SIZE }}} * 8));
|
|
2175
|
+
var utf8Name_1 = {{{ makeGetValue("propPtr", 0, "*") }}};
|
|
2176
|
+
var name_2 = {{{ makeGetValue("propPtr", POINTER_SIZE, "*") }}};
|
|
2177
|
+
var method_1 = {{{ makeGetValue("propPtr", POINTER_SIZE * 2, "*") }}};
|
|
2178
|
+
var getter_1 = {{{ makeGetValue("propPtr", POINTER_SIZE * 3, "*") }}};
|
|
2179
|
+
var setter_1 = {{{ makeGetValue("propPtr", POINTER_SIZE * 4, "*") }}};
|
|
2180
|
+
var value_2 = {{{ makeGetValue("propPtr", POINTER_SIZE * 5, "*") }}};
|
|
2181
|
+
attributes = {{{ makeGetValue("propPtr", POINTER_SIZE * 6, POINTER_WASM_TYPE) }}};
|
|
2182
|
+
{{{ from64("attributes") }}};
|
|
2183
|
+
var data_1 = {{{ makeGetValue("propPtr", POINTER_SIZE * 7, "*") }}};
|
|
2184
|
+
if (utf8Name_1) {
|
|
2185
|
+
propertyName_1 = UTF8ToString(utf8Name_1);
|
|
2186
|
+
}
|
|
2187
|
+
else {
|
|
2188
|
+
if (!name_2) {
|
|
2189
|
+
return envObject_32.setLastError(4 /* napi_status.napi_name_expected */);
|
|
2190
|
+
}
|
|
2191
|
+
propertyName_1 = emnapiCtx.handleStore.get(name_2).value;
|
|
2192
|
+
if (typeof propertyName_1 !== "string" && typeof propertyName_1 !== "symbol") {
|
|
2193
|
+
return envObject_32.setLastError(4 /* napi_status.napi_name_expected */);
|
|
2194
|
+
}
|
|
2195
|
+
}
|
|
2196
|
+
emnapiDefineProperty(envObject_32, maybeObject_1, propertyName_1, method_1, getter_1, setter_1, value_2, attributes, data_1);
|
|
2197
|
+
}
|
|
2198
|
+
return 0 /* napi_status.napi_ok */;
|
|
2199
|
+
}
|
|
2200
|
+
catch (err_33) {
|
|
2201
|
+
envObject_32.tryCatch.setError(err_33);
|
|
2202
|
+
return envObject_32.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2203
|
+
}
|
|
2204
|
+
}
|
|
2205
|
+
// @ts-expect-error
|
|
2206
|
+
function napi_object_freeze(env, object) {
|
|
2207
|
+
if (env == 0)
|
|
2208
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2209
|
+
var envObject_33 = emnapiCtx.envStore.get(env);
|
|
2210
|
+
if (envObject_33.tryCatch.hasCaught())
|
|
2211
|
+
return envObject_33.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2212
|
+
envObject_33.clearLastError();
|
|
2213
|
+
try {
|
|
2214
|
+
if (!object)
|
|
2215
|
+
return envObject_33.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2216
|
+
var h_15 = emnapiCtx.handleStore.get(object);
|
|
2217
|
+
var maybeObject_2 = h_15.value;
|
|
2218
|
+
if (!(h_15.isObject() || h_15.isFunction())) {
|
|
2219
|
+
return envObject_33.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2220
|
+
}
|
|
2221
|
+
Object.freeze(maybeObject_2);
|
|
2222
|
+
return envObject_33.getReturnStatus();
|
|
2223
|
+
}
|
|
2224
|
+
catch (err_34) {
|
|
2225
|
+
envObject_33.tryCatch.setError(err_34);
|
|
2226
|
+
return envObject_33.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2227
|
+
}
|
|
2228
|
+
}
|
|
2229
|
+
// @ts-expect-error
|
|
2230
|
+
function napi_object_seal(env, object) {
|
|
2231
|
+
if (env == 0)
|
|
2232
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2233
|
+
var envObject_34 = emnapiCtx.envStore.get(env);
|
|
2234
|
+
if (envObject_34.tryCatch.hasCaught())
|
|
2235
|
+
return envObject_34.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2236
|
+
envObject_34.clearLastError();
|
|
2237
|
+
try {
|
|
2238
|
+
if (!object)
|
|
2239
|
+
return envObject_34.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2240
|
+
var h_16 = emnapiCtx.handleStore.get(object);
|
|
2241
|
+
var maybeObject_3 = h_16.value;
|
|
2242
|
+
if (!(h_16.isObject() || h_16.isFunction())) {
|
|
2243
|
+
return envObject_34.setLastError(2 /* napi_status.napi_object_expected */);
|
|
2244
|
+
}
|
|
2245
|
+
Object.seal(maybeObject_3);
|
|
2246
|
+
return envObject_34.getReturnStatus();
|
|
2247
|
+
}
|
|
2248
|
+
catch (err_35) {
|
|
2249
|
+
envObject_34.tryCatch.setError(err_35);
|
|
2250
|
+
return envObject_34.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2251
|
+
}
|
|
2252
|
+
}
|
|
2253
|
+
emnapiImplement('napi_get_all_property_names', 'ippiiip', _napi_get_all_property_names);
|
|
2254
|
+
emnapiImplement('napi_get_property_names', 'ippp', napi_get_property_names, ['napi_get_all_property_names']);
|
|
2255
|
+
emnapiImplement('napi_set_property', 'ipppp', napi_set_property);
|
|
2256
|
+
emnapiImplement('napi_has_property', 'ipppp', napi_has_property);
|
|
2257
|
+
emnapiImplement('napi_get_property', 'ipppp', napi_get_property);
|
|
2258
|
+
emnapiImplement('napi_delete_property', 'ipppp', napi_delete_property);
|
|
2259
|
+
emnapiImplement('napi_has_own_property', 'ipppp', napi_has_own_property);
|
|
2260
|
+
emnapiImplement('napi_set_named_property', 'ipppp', napi_set_named_property);
|
|
2261
|
+
emnapiImplement('napi_has_named_property', 'ipppp', napi_has_named_property);
|
|
2262
|
+
emnapiImplement('napi_get_named_property', 'ipppp', napi_get_named_property);
|
|
2263
|
+
emnapiImplement('napi_set_element', 'ippip', napi_set_element);
|
|
2264
|
+
emnapiImplement('napi_has_element', 'ippip', napi_has_element);
|
|
2265
|
+
emnapiImplement('napi_get_element', 'ippip', napi_get_element);
|
|
2266
|
+
emnapiImplement('napi_delete_element', 'ippip', napi_delete_element);
|
|
2267
|
+
emnapiImplement('napi_define_properties', 'ipppp', napi_define_properties, ['$emnapiDefineProperty']);
|
|
2268
|
+
emnapiImplement('napi_object_freeze', 'ipp', napi_object_freeze);
|
|
2269
|
+
emnapiImplement('napi_object_seal', 'ipp', napi_object_seal);
|
|
2270
|
+
/* eslint-disable @typescript-eslint/indent */
|
|
2271
|
+
function napi_run_script(env, script, result) {
|
|
2272
|
+
#if DYNAMIC_EXECUTION
|
|
2273
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2274
|
+
var value;
|
|
2275
|
+
if (env == 0)
|
|
2276
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2277
|
+
var envObject_35 = emnapiCtx.envStore // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2278
|
+
.
|
|
2279
|
+
get(env);
|
|
2280
|
+
if (envObject_35.tryCatch.hasCaught())
|
|
2281
|
+
return envObject_35.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2282
|
+
envObject_35.clearLastError();
|
|
2283
|
+
try {
|
|
2284
|
+
if (script == 0)
|
|
2285
|
+
return envObject_35.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2286
|
+
if (result == 0)
|
|
2287
|
+
return envObject_35.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2288
|
+
var v8Script_1 = emnapiCtx.handleStore.get(script);
|
|
2289
|
+
if (!v8Script_1.isString()) {
|
|
2290
|
+
return envObject_35.setLastError(3 /* napi_status.napi_string_expected */);
|
|
2291
|
+
}
|
|
2292
|
+
var g_1 = emnapiCtx.handleStore.get(5 /* GlobalHandle.GLOBAL */).value;
|
|
2293
|
+
var ret_6 = g_1.eval(v8Script_1.value);
|
|
2294
|
+
{{{ from64("result") }}};
|
|
2295
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2296
|
+
value = envObject_35.ensureHandleId(ret_6);
|
|
2297
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
2298
|
+
return envObject_35.getReturnStatus();
|
|
2299
|
+
}
|
|
2300
|
+
catch (err_36) {
|
|
2301
|
+
envObject_35.tryCatch.setError(err_36);
|
|
2302
|
+
return envObject_35.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2303
|
+
}
|
|
2304
|
+
#else
|
|
2305
|
+
var status = _napi_set_last_error(env, 9 /* napi_status.napi_generic_failure */, 0, 0);
|
|
2306
|
+
#endif
|
|
2307
|
+
return status;
|
|
2308
|
+
}
|
|
2309
|
+
emnapiImplement('napi_run_script', 'ippp', napi_run_script, ['napi_set_last_error']);
|
|
2310
|
+
function __emnapi_set_immediate(callback, data) {
|
|
2311
|
+
emnapiCtx.feature.setImmediate(function () {
|
|
2312
|
+
{{{ makeDynCall('vp', 'callback') }}}(data);
|
|
2313
|
+
});
|
|
2314
|
+
}
|
|
2315
|
+
function __emnapi_next_tick(callback, data) {
|
|
2316
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
2317
|
+
Promise.resolve().then(function () {
|
|
2318
|
+
{{{ makeDynCall('vp', 'callback') }}}(data);
|
|
2319
|
+
});
|
|
2320
|
+
}
|
|
2321
|
+
function __emnapi_call_into_module(env, callback, data, close_scope_if_throw) {
|
|
2322
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2323
|
+
var scope = emnapiCtx.openScope(envObject);
|
|
2324
|
+
try {
|
|
2325
|
+
envObject.callIntoModule(function () {
|
|
2326
|
+
{{{ makeDynCall('vpp', 'callback') }}}(env, data);
|
|
2327
|
+
});
|
|
2328
|
+
}
|
|
2329
|
+
catch (err) {
|
|
2330
|
+
emnapiCtx.closeScope(envObject, scope);
|
|
2331
|
+
if (close_scope_if_throw) {
|
|
2332
|
+
emnapiCtx.closeScope(envObject);
|
|
2333
|
+
}
|
|
2334
|
+
throw err;
|
|
2335
|
+
}
|
|
2336
|
+
emnapiCtx.closeScope(envObject, scope);
|
|
2337
|
+
}
|
|
2338
|
+
function __emnapi_ctx_increase_waiting_request_counter() {
|
|
2339
|
+
emnapiCtx.increaseWaitingRequestCounter();
|
|
2340
|
+
}
|
|
2341
|
+
function __emnapi_ctx_decrease_waiting_request_counter() {
|
|
2342
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
2343
|
+
}
|
|
2344
|
+
emnapiImplementInternal('_emnapi_set_immediate', 'vpp', __emnapi_set_immediate);
|
|
2345
|
+
emnapiImplementInternal('_emnapi_next_tick', 'vpp', __emnapi_next_tick);
|
|
2346
|
+
emnapiImplementInternal('_emnapi_call_into_module', 'vpppi', __emnapi_call_into_module);
|
|
2347
|
+
emnapiImplementInternal('_emnapi_ctx_increase_waiting_request_counter', 'v', __emnapi_ctx_increase_waiting_request_counter);
|
|
2348
|
+
emnapiImplementInternal('_emnapi_ctx_decrease_waiting_request_counter', 'v', __emnapi_ctx_decrease_waiting_request_counter);
|
|
2349
|
+
function __emnapi_call_finalizer(env, callback, data, hint) {
|
|
2350
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2351
|
+
{{{ from64('callback') }}};
|
|
2352
|
+
envObject.callFinalizer(callback, data, hint);
|
|
2353
|
+
}
|
|
2354
|
+
emnapiImplementInternal('_emnapi_call_finalizer', 'vpppp', __emnapi_call_finalizer);
|
|
2355
|
+
/* eslint-disable @typescript-eslint/indent */
|
|
2356
|
+
function _napi_set_last_error(env, error_code, engine_error_code, engine_reserved) {
|
|
2357
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2358
|
+
return envObject.setLastError(error_code, engine_error_code, engine_reserved);
|
|
2359
|
+
}
|
|
2360
|
+
function _napi_clear_last_error(env) {
|
|
2361
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2362
|
+
return envObject.clearLastError();
|
|
2363
|
+
}
|
|
2364
|
+
function __emnapi_get_node_version(major, minor, patch) {
|
|
2365
|
+
{{{ from64('major') }}};
|
|
2366
|
+
{{{ from64('minor') }}};
|
|
2367
|
+
{{{ from64('patch') }}};
|
|
2368
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2369
|
+
var versions = (typeof process === 'object' && process !== null &&
|
|
2370
|
+
typeof process.versions === 'object' && process.versions !== null &&
|
|
2371
|
+
typeof process.versions.node === 'string')
|
|
2372
|
+
? process.versions.node.split('.').map(function (n) { return Number(n); })
|
|
2373
|
+
: [0, 0, 0];
|
|
2374
|
+
{{{ makeSetValue('major', 0, 'versions[0]', 'u32') }}};
|
|
2375
|
+
{{{ makeSetValue('minor', 0, 'versions[1]', 'u32') }}};
|
|
2376
|
+
{{{ makeSetValue('patch', 0, 'versions[2]', 'u32') }}};
|
|
2377
|
+
}
|
|
2378
|
+
emnapiImplementInternal('napi_set_last_error', 'ipiip', _napi_set_last_error);
|
|
2379
|
+
emnapiImplementInternal('napi_clear_last_error', 'ip', _napi_clear_last_error);
|
|
2380
|
+
emnapiImplementInternal('_emnapi_get_node_version', 'vp', __emnapi_get_node_version);
|
|
2381
|
+
function __emnapi_runtime_keepalive_push() {
|
|
2382
|
+
if (typeof runtimeKeepalivePush === 'function')
|
|
2383
|
+
runtimeKeepalivePush();
|
|
2384
|
+
}
|
|
2385
|
+
function __emnapi_runtime_keepalive_pop() {
|
|
2386
|
+
if (typeof runtimeKeepalivePop === 'function')
|
|
2387
|
+
runtimeKeepalivePop();
|
|
2388
|
+
}
|
|
2389
|
+
emnapiImplementInternal('_emnapi_runtime_keepalive_push', 'v', __emnapi_runtime_keepalive_push, ['$runtimeKeepalivePush']);
|
|
2390
|
+
emnapiImplementInternal('_emnapi_runtime_keepalive_pop', 'v', __emnapi_runtime_keepalive_pop, ['$runtimeKeepalivePop']);
|
|
2391
|
+
function napi_typeof(env, value, result) {
|
|
2392
|
+
if (env == 0)
|
|
2393
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2394
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2395
|
+
if (value == 0)
|
|
2396
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2397
|
+
if (result == 0)
|
|
2398
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2399
|
+
var v = emnapiCtx.handleStore.get(value);
|
|
2400
|
+
{{{ from64('result') }}};
|
|
2401
|
+
var r;
|
|
2402
|
+
if (v.isNumber()) {
|
|
2403
|
+
r = 3 /* napi_valuetype.napi_number */;
|
|
2404
|
+
}
|
|
2405
|
+
else if (v.isBigInt()) {
|
|
2406
|
+
r = 9 /* napi_valuetype.napi_bigint */;
|
|
2407
|
+
}
|
|
2408
|
+
else if (v.isString()) {
|
|
2409
|
+
r = 4 /* napi_valuetype.napi_string */;
|
|
2410
|
+
}
|
|
2411
|
+
else if (v.isFunction()) {
|
|
2412
|
+
// This test has to come before IsObject because IsFunction
|
|
2413
|
+
// implies IsObject
|
|
2414
|
+
r = 7 /* napi_valuetype.napi_function */;
|
|
2415
|
+
}
|
|
2416
|
+
else if (v.isExternal()) {
|
|
2417
|
+
// This test has to come before IsObject because IsExternal
|
|
2418
|
+
// implies IsObject
|
|
2419
|
+
r = 8 /* napi_valuetype.napi_external */;
|
|
2420
|
+
}
|
|
2421
|
+
else if (v.isObject()) {
|
|
2422
|
+
r = 6 /* napi_valuetype.napi_object */;
|
|
2423
|
+
}
|
|
2424
|
+
else if (v.isBoolean()) {
|
|
2425
|
+
r = 2 /* napi_valuetype.napi_boolean */;
|
|
2426
|
+
}
|
|
2427
|
+
else if (v.isUndefined()) {
|
|
2428
|
+
r = 0 /* napi_valuetype.napi_undefined */;
|
|
2429
|
+
}
|
|
2430
|
+
else if (v.isSymbol()) {
|
|
2431
|
+
r = 5 /* napi_valuetype.napi_symbol */;
|
|
2432
|
+
}
|
|
2433
|
+
else if (v.isNull()) {
|
|
2434
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2435
|
+
r = 1 /* napi_valuetype.napi_null */;
|
|
2436
|
+
}
|
|
2437
|
+
else {
|
|
2438
|
+
// Should not get here unless V8 has added some new kind of value.
|
|
2439
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2440
|
+
}
|
|
2441
|
+
{{{ makeSetValue('result', 0, 'r', 'i32') }}};
|
|
2442
|
+
return envObject.clearLastError();
|
|
2443
|
+
}
|
|
2444
|
+
// @ts-expect-error
|
|
2445
|
+
function napi_coerce_to_bool(env, value, result) {
|
|
2446
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2447
|
+
var v;
|
|
2448
|
+
if (env == 0)
|
|
2449
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2450
|
+
var envObject_36 = emnapiCtx.envStore.get(env);
|
|
2451
|
+
if (envObject_36.tryCatch.hasCaught())
|
|
2452
|
+
return envObject_36.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2453
|
+
envObject_36.clearLastError();
|
|
2454
|
+
try {
|
|
2455
|
+
if (value == 0)
|
|
2456
|
+
return envObject_36.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2457
|
+
if (result == 0)
|
|
2458
|
+
return envObject_36.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2459
|
+
var handle_5 = emnapiCtx.handleStore.get(value);
|
|
2460
|
+
{{{ from64("result") }}};
|
|
2461
|
+
v = handle_5.value ? 4 /* GlobalHandle.TRUE */ : 3 /* GlobalHandle.FALSE */;
|
|
2462
|
+
{{{ makeSetValue("result", 0, "v", "*") }}};
|
|
2463
|
+
return envObject_36.getReturnStatus();
|
|
2464
|
+
}
|
|
2465
|
+
catch (err_37) {
|
|
2466
|
+
envObject_36.tryCatch.setError(err_37);
|
|
2467
|
+
return envObject_36.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2468
|
+
}
|
|
2469
|
+
}
|
|
2470
|
+
// @ts-expect-error
|
|
2471
|
+
function napi_coerce_to_number(env, value, result) {
|
|
2472
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2473
|
+
var v;
|
|
2474
|
+
if (env == 0)
|
|
2475
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2476
|
+
var envObject_37 = emnapiCtx.envStore.get(env);
|
|
2477
|
+
if (envObject_37.tryCatch.hasCaught())
|
|
2478
|
+
return envObject_37.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2479
|
+
envObject_37.clearLastError();
|
|
2480
|
+
try {
|
|
2481
|
+
if (value == 0)
|
|
2482
|
+
return envObject_37.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2483
|
+
if (result == 0)
|
|
2484
|
+
return envObject_37.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2485
|
+
var handle_6 = emnapiCtx.handleStore.get(value);
|
|
2486
|
+
if (handle_6.isBigInt()) {
|
|
2487
|
+
throw new TypeError("Cannot convert a BigInt value to a number");
|
|
2488
|
+
}
|
|
2489
|
+
{{{ from64("result") }}};
|
|
2490
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2491
|
+
v = emnapiCtx.addToCurrentScope(Number(handle_6.value)).id;
|
|
2492
|
+
{{{ makeSetValue("result", 0, "v", "*") }}};
|
|
2493
|
+
return envObject_37.getReturnStatus();
|
|
2494
|
+
}
|
|
2495
|
+
catch (err_38) {
|
|
2496
|
+
envObject_37.tryCatch.setError(err_38);
|
|
2497
|
+
return envObject_37.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2498
|
+
}
|
|
2499
|
+
}
|
|
2500
|
+
// @ts-expect-error
|
|
2501
|
+
function napi_coerce_to_object(env, value, result) {
|
|
2502
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2503
|
+
var v;
|
|
2504
|
+
if (env == 0)
|
|
2505
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2506
|
+
var envObject_38 = emnapiCtx.envStore.get(env);
|
|
2507
|
+
if (envObject_38.tryCatch.hasCaught())
|
|
2508
|
+
return envObject_38.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2509
|
+
envObject_38.clearLastError();
|
|
2510
|
+
try {
|
|
2511
|
+
if (value == 0)
|
|
2512
|
+
return envObject_38.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2513
|
+
if (result == 0)
|
|
2514
|
+
return envObject_38.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2515
|
+
var handle_7 = emnapiCtx.handleStore.get(value);
|
|
2516
|
+
if (handle_7.value == null) {
|
|
2517
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
2518
|
+
}
|
|
2519
|
+
{{{ from64("result") }}};
|
|
2520
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2521
|
+
v = envObject_38.ensureHandleId(Object(handle_7.value));
|
|
2522
|
+
{{{ makeSetValue("result", 0, "v", "*") }}};
|
|
2523
|
+
return envObject_38.getReturnStatus();
|
|
2524
|
+
}
|
|
2525
|
+
catch (err_39) {
|
|
2526
|
+
envObject_38.tryCatch.setError(err_39);
|
|
2527
|
+
return envObject_38.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2528
|
+
}
|
|
2529
|
+
}
|
|
2530
|
+
// @ts-expect-error
|
|
2531
|
+
function napi_coerce_to_string(env, value, result) {
|
|
2532
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2533
|
+
var v;
|
|
2534
|
+
if (env == 0)
|
|
2535
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2536
|
+
var envObject_39 = emnapiCtx.envStore.get(env);
|
|
2537
|
+
if (envObject_39.tryCatch.hasCaught())
|
|
2538
|
+
return envObject_39.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2539
|
+
envObject_39.clearLastError();
|
|
2540
|
+
try {
|
|
2541
|
+
if (value == 0)
|
|
2542
|
+
return envObject_39.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2543
|
+
if (result == 0)
|
|
2544
|
+
return envObject_39.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2545
|
+
var handle_8 = emnapiCtx.handleStore.get(value);
|
|
2546
|
+
if (handle_8.isSymbol()) {
|
|
2547
|
+
throw new TypeError("Cannot convert a Symbol value to a string");
|
|
2548
|
+
}
|
|
2549
|
+
{{{ from64("result") }}};
|
|
2550
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2551
|
+
v = emnapiCtx.addToCurrentScope(String(handle_8.value)).id;
|
|
2552
|
+
{{{ makeSetValue("result", 0, "v", "*") }}};
|
|
2553
|
+
return envObject_39.getReturnStatus();
|
|
2554
|
+
}
|
|
2555
|
+
catch (err_40) {
|
|
2556
|
+
envObject_39.tryCatch.setError(err_40);
|
|
2557
|
+
return envObject_39.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
// @ts-expect-error
|
|
2561
|
+
function napi_instanceof(env, object, constructor, result) {
|
|
2562
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2563
|
+
var r;
|
|
2564
|
+
if (env == 0)
|
|
2565
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2566
|
+
var envObject_40 = emnapiCtx.envStore.get(env);
|
|
2567
|
+
if (envObject_40.tryCatch.hasCaught())
|
|
2568
|
+
return envObject_40.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2569
|
+
envObject_40.clearLastError();
|
|
2570
|
+
try {
|
|
2571
|
+
if (object == 0)
|
|
2572
|
+
return envObject_40.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2573
|
+
if (result == 0)
|
|
2574
|
+
return envObject_40.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2575
|
+
if (constructor == 0)
|
|
2576
|
+
return envObject_40.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2577
|
+
{{{ from64("result") }}};
|
|
2578
|
+
{{{ makeSetValue("result", 0, "0", "i8") }}};
|
|
2579
|
+
var ctor_1 = emnapiCtx.handleStore.get(constructor);
|
|
2580
|
+
if (!ctor_1.isFunction()) {
|
|
2581
|
+
return envObject_40.setLastError(5 /* napi_status.napi_function_expected */);
|
|
2582
|
+
}
|
|
2583
|
+
var val_1 = emnapiCtx.handleStore.get(object).value;
|
|
2584
|
+
var ret_7 = val_1 instanceof ctor_1.value;
|
|
2585
|
+
r = ret_7 ? 1 : 0;
|
|
2586
|
+
{{{ makeSetValue("result", 0, "r", "i8") }}};
|
|
2587
|
+
return envObject_40.getReturnStatus();
|
|
2588
|
+
}
|
|
2589
|
+
catch (err_41) {
|
|
2590
|
+
envObject_40.tryCatch.setError(err_41);
|
|
2591
|
+
return envObject_40.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2592
|
+
}
|
|
2593
|
+
}
|
|
2594
|
+
function napi_is_array(env, value, result) {
|
|
2595
|
+
if (env == 0)
|
|
2596
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2597
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2598
|
+
if (value == 0)
|
|
2599
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2600
|
+
if (result == 0)
|
|
2601
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2602
|
+
var h = emnapiCtx.handleStore.get(value);
|
|
2603
|
+
{{{ from64('result') }}};
|
|
2604
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2605
|
+
var r = h.isArray() ? 1 : 0;
|
|
2606
|
+
{{{ makeSetValue('result', 0, 'r', 'i8') }}};
|
|
2607
|
+
return envObject.clearLastError();
|
|
2608
|
+
}
|
|
2609
|
+
function napi_is_arraybuffer(env, value, result) {
|
|
2610
|
+
if (env == 0)
|
|
2611
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2612
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2613
|
+
if (value == 0)
|
|
2614
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2615
|
+
if (result == 0)
|
|
2616
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2617
|
+
var h = emnapiCtx.handleStore.get(value);
|
|
2618
|
+
{{{ from64('result') }}};
|
|
2619
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2620
|
+
var r = h.isArrayBuffer() ? 1 : 0;
|
|
2621
|
+
{{{ makeSetValue('result', 0, 'r', 'i8') }}};
|
|
2622
|
+
return envObject.clearLastError();
|
|
2623
|
+
}
|
|
2624
|
+
function napi_is_date(env, value, result) {
|
|
2625
|
+
if (env == 0)
|
|
2626
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2627
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2628
|
+
if (value == 0)
|
|
2629
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2630
|
+
if (result == 0)
|
|
2631
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2632
|
+
var h = emnapiCtx.handleStore.get(value);
|
|
2633
|
+
{{{ from64('result') }}};
|
|
2634
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2635
|
+
var r = h.isDate() ? 1 : 0;
|
|
2636
|
+
{{{ makeSetValue('result', 0, 'r', 'i8') }}};
|
|
2637
|
+
return envObject.clearLastError();
|
|
2638
|
+
}
|
|
2639
|
+
function napi_is_error(env, value, result) {
|
|
2640
|
+
if (env == 0)
|
|
2641
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2642
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2643
|
+
if (value == 0)
|
|
2644
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2645
|
+
if (result == 0)
|
|
2646
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2647
|
+
var val = emnapiCtx.handleStore.get(value).value;
|
|
2648
|
+
{{{ from64('result') }}};
|
|
2649
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2650
|
+
var r = (val instanceof Error) ? 1 : 0;
|
|
2651
|
+
{{{ makeSetValue('result', 0, 'r', 'i8') }}};
|
|
2652
|
+
return envObject.clearLastError();
|
|
2653
|
+
}
|
|
2654
|
+
function napi_is_typedarray(env, value, result) {
|
|
2655
|
+
if (env == 0)
|
|
2656
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2657
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2658
|
+
if (value == 0)
|
|
2659
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2660
|
+
if (result == 0)
|
|
2661
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2662
|
+
var h = emnapiCtx.handleStore.get(value);
|
|
2663
|
+
{{{ from64('result') }}};
|
|
2664
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2665
|
+
var r = h.isTypedArray() ? 1 : 0;
|
|
2666
|
+
{{{ makeSetValue('result', 0, 'r', 'i8') }}};
|
|
2667
|
+
return envObject.clearLastError();
|
|
2668
|
+
}
|
|
2669
|
+
function napi_is_buffer(env, value, result) {
|
|
2670
|
+
if (env == 0)
|
|
2671
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2672
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2673
|
+
if (value == 0)
|
|
2674
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2675
|
+
if (result == 0)
|
|
2676
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2677
|
+
var h = emnapiCtx.handleStore.get(value);
|
|
2678
|
+
{{{ from64('result') }}};
|
|
2679
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2680
|
+
var r = h.isBuffer() ? 1 : 0;
|
|
2681
|
+
{{{ makeSetValue('result', 0, 'r', 'i8') }}};
|
|
2682
|
+
return envObject.clearLastError();
|
|
2683
|
+
}
|
|
2684
|
+
function napi_is_dataview(env, value, result) {
|
|
2685
|
+
if (env == 0)
|
|
2686
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2687
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2688
|
+
if (value == 0)
|
|
2689
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2690
|
+
if (result == 0)
|
|
2691
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2692
|
+
var h = emnapiCtx.handleStore.get(value);
|
|
2693
|
+
{{{ from64('result') }}};
|
|
2694
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2695
|
+
var r = h.isDataView() ? 1 : 0;
|
|
2696
|
+
{{{ makeSetValue('result', 0, 'r', 'i8') }}};
|
|
2697
|
+
return envObject.clearLastError();
|
|
2698
|
+
}
|
|
2699
|
+
// @ts-expect-error
|
|
2700
|
+
function napi_strict_equals(env, lhs, rhs, result) {
|
|
2701
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2702
|
+
var r;
|
|
2703
|
+
if (env == 0)
|
|
2704
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2705
|
+
var envObject_41 = emnapiCtx.envStore.get(env);
|
|
2706
|
+
if (envObject_41.tryCatch.hasCaught())
|
|
2707
|
+
return envObject_41.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2708
|
+
envObject_41.clearLastError();
|
|
2709
|
+
try {
|
|
2710
|
+
if (lhs == 0)
|
|
2711
|
+
return envObject_41.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2712
|
+
if (rhs == 0)
|
|
2713
|
+
return envObject_41.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2714
|
+
if (result == 0)
|
|
2715
|
+
return envObject_41.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2716
|
+
var lv_1 = emnapiCtx.handleStore.get(lhs).value;
|
|
2717
|
+
var rv_1 = emnapiCtx.handleStore.get(rhs).value;
|
|
2718
|
+
{{{ from64("result") }}};
|
|
2719
|
+
r = (lv_1 === rv_1) ? 1 : 0;
|
|
2720
|
+
{{{ makeSetValue("result", 0, "r", "i8") }}};
|
|
2721
|
+
return envObject_41.getReturnStatus();
|
|
2722
|
+
}
|
|
2723
|
+
catch (err_42) {
|
|
2724
|
+
envObject_41.tryCatch.setError(err_42);
|
|
2725
|
+
return envObject_41.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2726
|
+
}
|
|
2727
|
+
}
|
|
2728
|
+
function napi_detach_arraybuffer(env, arraybuffer) {
|
|
2729
|
+
if (env == 0)
|
|
2730
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2731
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
2732
|
+
if (arraybuffer == 0)
|
|
2733
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2734
|
+
var value = emnapiCtx.handleStore.get(arraybuffer).value;
|
|
2735
|
+
if (!(value instanceof ArrayBuffer)) {
|
|
2736
|
+
if (typeof SharedArrayBuffer === 'function' && (value instanceof SharedArrayBuffer)) {
|
|
2737
|
+
return envObject.setLastError(20 /* napi_status.napi_detachable_arraybuffer_expected */);
|
|
2738
|
+
}
|
|
2739
|
+
return envObject.setLastError(19 /* napi_status.napi_arraybuffer_expected */);
|
|
2740
|
+
}
|
|
2741
|
+
try {
|
|
2742
|
+
var messageChannel = new MessageChannel();
|
|
2743
|
+
messageChannel.port1.postMessage(value, [value]);
|
|
2744
|
+
}
|
|
2745
|
+
catch (err) {
|
|
2746
|
+
envObject.tryCatch.setError(err);
|
|
2747
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2748
|
+
}
|
|
2749
|
+
return envObject.clearLastError();
|
|
2750
|
+
}
|
|
2751
|
+
// @ts-expect-error
|
|
2752
|
+
function napi_is_detached_arraybuffer(env, arraybuffer, result) {
|
|
2753
|
+
if (env == 0)
|
|
2754
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2755
|
+
var envObject_42 = emnapiCtx.envStore.get(env);
|
|
2756
|
+
if (envObject_42.tryCatch.hasCaught())
|
|
2757
|
+
return envObject_42.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2758
|
+
envObject_42.clearLastError();
|
|
2759
|
+
try {
|
|
2760
|
+
if (arraybuffer == 0)
|
|
2761
|
+
return envObject_42.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2762
|
+
if (result == 0)
|
|
2763
|
+
return envObject_42.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2764
|
+
var h_17 = emnapiCtx.handleStore.get(arraybuffer);
|
|
2765
|
+
{{{ from64("result") }}};
|
|
2766
|
+
if (h_17.isArrayBuffer() && h_17.value.byteLength === 0) {
|
|
2767
|
+
try {
|
|
2768
|
+
// eslint-disable-next-line no-new
|
|
2769
|
+
new Uint8Array(h_17.value);
|
|
2770
|
+
}
|
|
2771
|
+
catch (_11) {
|
|
2772
|
+
{{{ makeSetValue("result", 0, "1", "i8") }}};
|
|
2773
|
+
return envObject_42.getReturnStatus();
|
|
2774
|
+
}
|
|
2775
|
+
}
|
|
2776
|
+
{{{ makeSetValue("result", 0, "0", "i8") }}};
|
|
2777
|
+
return envObject_42.getReturnStatus();
|
|
2778
|
+
}
|
|
2779
|
+
catch (err_43) {
|
|
2780
|
+
envObject_42.tryCatch.setError(err_43);
|
|
2781
|
+
return envObject_42.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2782
|
+
}
|
|
2783
|
+
}
|
|
2784
|
+
emnapiImplement('napi_typeof', 'ippp', napi_typeof);
|
|
2785
|
+
emnapiImplement('napi_coerce_to_bool', 'ippp', napi_coerce_to_bool);
|
|
2786
|
+
emnapiImplement('napi_coerce_to_number', 'ippp', napi_coerce_to_number);
|
|
2787
|
+
emnapiImplement('napi_coerce_to_object', 'ippp', napi_coerce_to_object);
|
|
2788
|
+
emnapiImplement('napi_coerce_to_string', 'ippp', napi_coerce_to_string);
|
|
2789
|
+
emnapiImplement('napi_instanceof', 'ipppp', napi_instanceof);
|
|
2790
|
+
emnapiImplement('napi_is_array', 'ippp', napi_is_array);
|
|
2791
|
+
emnapiImplement('napi_is_arraybuffer', 'ippp', napi_is_arraybuffer);
|
|
2792
|
+
emnapiImplement('napi_is_date', 'ippp', napi_is_date);
|
|
2793
|
+
emnapiImplement('napi_is_error', 'ippp', napi_is_error);
|
|
2794
|
+
emnapiImplement('napi_is_typedarray', 'ippp', napi_is_typedarray);
|
|
2795
|
+
emnapiImplement('napi_is_buffer', 'ippp', napi_is_buffer);
|
|
2796
|
+
emnapiImplement('napi_is_dataview', 'ippp', napi_is_dataview);
|
|
2797
|
+
emnapiImplement('napi_strict_equals', 'ipppp', napi_strict_equals);
|
|
2798
|
+
emnapiImplement('napi_detach_arraybuffer', 'ipp', napi_detach_arraybuffer, ['napi_set_last_error']);
|
|
2799
|
+
emnapiImplement('napi_is_detached_arraybuffer', 'ippp', napi_is_detached_arraybuffer, ['napi_set_last_error']);
|
|
2800
|
+
function napi_define_class(env, utf8name, length, constructor, callback_data, property_count, properties, result
|
|
2801
|
+
// @ts-expect-error
|
|
2802
|
+
) {
|
|
2803
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2804
|
+
var propPtr, valueHandleId, attributes;
|
|
2805
|
+
if (env == 0)
|
|
2806
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2807
|
+
var envObject_43 = emnapiCtx.envStore.get(env);
|
|
2808
|
+
if (envObject_43.tryCatch.hasCaught())
|
|
2809
|
+
return envObject_43.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2810
|
+
envObject_43.clearLastError();
|
|
2811
|
+
try {
|
|
2812
|
+
if (result == 0)
|
|
2813
|
+
return envObject_43.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2814
|
+
if (constructor == 0)
|
|
2815
|
+
return envObject_43.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2816
|
+
{{{ from64("length") }}};
|
|
2817
|
+
{{{ from64("properties") }}};
|
|
2818
|
+
{{{ from64("property_count") }}};
|
|
2819
|
+
property_count = property_count >>> 0;
|
|
2820
|
+
if (property_count > 0) {
|
|
2821
|
+
if (!properties)
|
|
2822
|
+
return envObject_43.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2823
|
+
}
|
|
2824
|
+
if ((length < -1) || (length > 2147483647) || (!utf8name)) {
|
|
2825
|
+
return envObject_43.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2826
|
+
}
|
|
2827
|
+
var fresult_2 = emnapiCreateFunction(envObject_43, utf8name, length, constructor, callback_data);
|
|
2828
|
+
if (fresult_2.status !== 0 /* napi_status.napi_ok */)
|
|
2829
|
+
return envObject_43.setLastError(fresult_2.status);
|
|
2830
|
+
var F_1 = fresult_2.f;
|
|
2831
|
+
var propertyName_2 = void 0;
|
|
2832
|
+
for (var i_3 = 0; i_3 < property_count; i_3++) {
|
|
2833
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2834
|
+
propPtr = properties + (i_3 * ({{{ POINTER_SIZE }}} * 8));
|
|
2835
|
+
var utf8Name_2 = {{{ makeGetValue("propPtr", 0, "*") }}};
|
|
2836
|
+
var name_3 = {{{ makeGetValue("propPtr", POINTER_SIZE, "*") }}};
|
|
2837
|
+
var method_2 = {{{ makeGetValue("propPtr", POINTER_SIZE * 2, "*") }}};
|
|
2838
|
+
var getter_2 = {{{ makeGetValue("propPtr", POINTER_SIZE * 3, "*") }}};
|
|
2839
|
+
var setter_2 = {{{ makeGetValue("propPtr", POINTER_SIZE * 4, "*") }}};
|
|
2840
|
+
var value_3 = {{{ makeGetValue("propPtr", POINTER_SIZE * 5, "*") }}};
|
|
2841
|
+
attributes = {{{ makeGetValue("propPtr", POINTER_SIZE * 6, POINTER_WASM_TYPE) }}};
|
|
2842
|
+
{{{ from64("attributes") }}};
|
|
2843
|
+
var data_2 = {{{ makeGetValue("propPtr", POINTER_SIZE * 7, "*") }}};
|
|
2844
|
+
if (utf8Name_2) {
|
|
2845
|
+
propertyName_2 = UTF8ToString(utf8Name_2);
|
|
2846
|
+
}
|
|
2847
|
+
else {
|
|
2848
|
+
if (!name_3) {
|
|
2849
|
+
return envObject_43.setLastError(4 /* napi_status.napi_name_expected */);
|
|
2850
|
+
}
|
|
2851
|
+
propertyName_2 = emnapiCtx.handleStore.get(name_3).value;
|
|
2852
|
+
if (typeof propertyName_2 !== "string" && typeof propertyName_2 !== "symbol") {
|
|
2853
|
+
return envObject_43.setLastError(4 /* napi_status.napi_name_expected */);
|
|
2854
|
+
}
|
|
2855
|
+
}
|
|
2856
|
+
if ((attributes & 1024 /* napi_property_attributes.napi_static */) !== 0) {
|
|
2857
|
+
emnapiDefineProperty(envObject_43, F_1, propertyName_2, method_2, getter_2, setter_2, value_3, attributes, data_2);
|
|
2858
|
+
continue;
|
|
2859
|
+
}
|
|
2860
|
+
emnapiDefineProperty(envObject_43, F_1.prototype, propertyName_2, method_2, getter_2, setter_2, value_3, attributes, data_2);
|
|
2861
|
+
}
|
|
2862
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2863
|
+
var valueHandle_2 = emnapiCtx.addToCurrentScope(F_1);
|
|
2864
|
+
valueHandleId = valueHandle_2.id;
|
|
2865
|
+
{{{ from64("result") }}};
|
|
2866
|
+
{{{ makeSetValue("result", 0, "valueHandleId", "*") }}};
|
|
2867
|
+
return envObject_43.getReturnStatus();
|
|
2868
|
+
}
|
|
2869
|
+
catch (err_44) {
|
|
2870
|
+
envObject_43.tryCatch.setError(err_44);
|
|
2871
|
+
return envObject_43.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2872
|
+
}
|
|
2873
|
+
}
|
|
2874
|
+
function napi_wrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
|
|
2875
|
+
if (!emnapiCtx.feature.supportFinalizer) {
|
|
2876
|
+
if (finalize_cb) {
|
|
2877
|
+
if (env == 0)
|
|
2878
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2879
|
+
var envObject_44 = emnapiCtx.envStore.get(env);
|
|
2880
|
+
if (envObject_44.tryCatch.hasCaught())
|
|
2881
|
+
return envObject_44.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2882
|
+
envObject_44.clearLastError();
|
|
2883
|
+
try {
|
|
2884
|
+
throw emnapiCtx.createNotSupportWeakRefError("napi_wrap", "Parameter \"finalize_cb\" must be 0(NULL)");
|
|
2885
|
+
return null;
|
|
2886
|
+
}
|
|
2887
|
+
catch (err_45) {
|
|
2888
|
+
envObject_44.tryCatch.setError(err_45);
|
|
2889
|
+
return envObject_44.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2890
|
+
}
|
|
2891
|
+
}
|
|
2892
|
+
if (result) {
|
|
2893
|
+
if (env == 0)
|
|
2894
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2895
|
+
var envObject_45 = emnapiCtx.envStore.get(env);
|
|
2896
|
+
if (envObject_45.tryCatch.hasCaught())
|
|
2897
|
+
return envObject_45.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2898
|
+
envObject_45.clearLastError();
|
|
2899
|
+
try {
|
|
2900
|
+
throw emnapiCtx.createNotSupportWeakRefError("napi_wrap", "Parameter \"result\" must be 0(NULL)");
|
|
2901
|
+
return null;
|
|
2902
|
+
}
|
|
2903
|
+
catch (err_46) {
|
|
2904
|
+
envObject_45.tryCatch.setError(err_46);
|
|
2905
|
+
return envObject_45.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2906
|
+
}
|
|
2907
|
+
}
|
|
2908
|
+
}
|
|
2909
|
+
return emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result);
|
|
2910
|
+
}
|
|
2911
|
+
function napi_unwrap(env, js_object, result) {
|
|
2912
|
+
return emnapiUnwrap(env, js_object, result, 0 /* UnwrapAction.KeepWrap */);
|
|
2913
|
+
}
|
|
2914
|
+
function napi_remove_wrap(env, js_object, result) {
|
|
2915
|
+
return emnapiUnwrap(env, js_object, result, 1 /* UnwrapAction.RemoveWrap */);
|
|
2916
|
+
}
|
|
2917
|
+
// @ts-expect-error
|
|
2918
|
+
function napi_type_tag_object(env, object, type_tag) {
|
|
2919
|
+
if (env == 0)
|
|
2920
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2921
|
+
var envObject_46 = emnapiCtx.envStore.get(env);
|
|
2922
|
+
if (envObject_46.tryCatch.hasCaught())
|
|
2923
|
+
return envObject_46.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2924
|
+
envObject_46.clearLastError();
|
|
2925
|
+
try {
|
|
2926
|
+
if (!object) {
|
|
2927
|
+
return envObject_46.setLastError(envObject_46.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
2928
|
+
}
|
|
2929
|
+
var value_4 = emnapiCtx.handleStore.get(object);
|
|
2930
|
+
if (!(value_4.isObject() || value_4.isFunction())) {
|
|
2931
|
+
return envObject_46.setLastError(envObject_46.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
|
|
2932
|
+
}
|
|
2933
|
+
{{{ from64("type_tag") }}};
|
|
2934
|
+
if (!type_tag) {
|
|
2935
|
+
return envObject_46.setLastError(envObject_46.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
2936
|
+
}
|
|
2937
|
+
var binding_2 = envObject_46.getObjectBinding(value_4.value);
|
|
2938
|
+
if (binding_2.tag !== null) {
|
|
2939
|
+
return envObject_46.setLastError(envObject_46.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
2940
|
+
}
|
|
2941
|
+
binding_2.tag = [
|
|
2942
|
+
{{{ makeGetValue("type_tag", "0", "u32") }}},
|
|
2943
|
+
{{{ makeGetValue("type_tag", "4", "u32") }}},
|
|
2944
|
+
{{{ makeGetValue("type_tag", "8", "u32") }}},
|
|
2945
|
+
{{{ makeGetValue("type_tag", "12", "u32") }}}
|
|
2946
|
+
];
|
|
2947
|
+
return envObject_46.getReturnStatus();
|
|
2948
|
+
}
|
|
2949
|
+
catch (err_47) {
|
|
2950
|
+
envObject_46.tryCatch.setError(err_47);
|
|
2951
|
+
return envObject_46.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2952
|
+
}
|
|
2953
|
+
}
|
|
2954
|
+
// @ts-expect-error
|
|
2955
|
+
function napi_check_object_type_tag(env, object, type_tag, result) {
|
|
2956
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, one-var
|
|
2957
|
+
var ret = true, i;
|
|
2958
|
+
if (env == 0)
|
|
2959
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
2960
|
+
var envObject_47 = emnapiCtx.envStore.get(env);
|
|
2961
|
+
if (envObject_47.tryCatch.hasCaught())
|
|
2962
|
+
return envObject_47.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2963
|
+
envObject_47.clearLastError();
|
|
2964
|
+
try {
|
|
2965
|
+
if (!object) {
|
|
2966
|
+
return envObject_47.setLastError(envObject_47.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
2967
|
+
}
|
|
2968
|
+
var value_5 = emnapiCtx.handleStore.get(object);
|
|
2969
|
+
if (!(value_5.isObject() || value_5.isFunction())) {
|
|
2970
|
+
return envObject_47.setLastError(envObject_47.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
|
|
2971
|
+
}
|
|
2972
|
+
if (!type_tag) {
|
|
2973
|
+
return envObject_47.setLastError(envObject_47.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
2974
|
+
}
|
|
2975
|
+
if (!result) {
|
|
2976
|
+
return envObject_47.setLastError(envObject_47.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
|
|
2977
|
+
}
|
|
2978
|
+
var binding_3 = envObject_47.getObjectBinding(value_5.value);
|
|
2979
|
+
if (binding_3.tag !== null) {
|
|
2980
|
+
{{{ from64("type_tag") }}};
|
|
2981
|
+
for (i = 0; i < 4; i++) {
|
|
2982
|
+
var x_1 = {{{ makeGetValue("type_tag", "i * 4", "u32") }}};
|
|
2983
|
+
if (x_1 !== binding_3.tag[i]) {
|
|
2984
|
+
ret = false;
|
|
2985
|
+
break;
|
|
2986
|
+
}
|
|
2987
|
+
}
|
|
2988
|
+
}
|
|
2989
|
+
else {
|
|
2990
|
+
ret = false;
|
|
2991
|
+
}
|
|
2992
|
+
{{{ from64("result") }}};
|
|
2993
|
+
{{{ makeSetValue("result", 0, "ret ? 1 : 0", "i8") }}};
|
|
2994
|
+
return envObject_47.getReturnStatus();
|
|
2995
|
+
}
|
|
2996
|
+
catch (err_48) {
|
|
2997
|
+
envObject_47.tryCatch.setError(err_48);
|
|
2998
|
+
return envObject_47.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
2999
|
+
}
|
|
3000
|
+
}
|
|
3001
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3002
|
+
function _napi_add_finalizer(env, js_object, finalize_data, finalize_cb, finalize_hint, result) {
|
|
3003
|
+
if (env == 0)
|
|
3004
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3005
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3006
|
+
if (!emnapiCtx.feature.supportFinalizer) {
|
|
3007
|
+
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
3008
|
+
}
|
|
3009
|
+
if (js_object == 0)
|
|
3010
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3011
|
+
if (finalize_cb == 0)
|
|
3012
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3013
|
+
var handleResult = emnapiGetHandle(js_object);
|
|
3014
|
+
if (handleResult.status !== 0 /* napi_status.napi_ok */) {
|
|
3015
|
+
return envObject.setLastError(handleResult.status);
|
|
3016
|
+
}
|
|
3017
|
+
var handle = handleResult.handle;
|
|
3018
|
+
var ownership = !result ? 0 /* Ownership.kRuntime */ : 1 /* Ownership.kUserland */;
|
|
3019
|
+
{{{ from64('finalize_data') }}};
|
|
3020
|
+
{{{ from64('finalize_cb') }}};
|
|
3021
|
+
{{{ from64('finalize_hint') }}};
|
|
3022
|
+
var reference = emnapiCtx.createReference(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
|
|
3023
|
+
if (result) {
|
|
3024
|
+
{{{ from64('result') }}};
|
|
3025
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3026
|
+
var referenceId = reference.id;
|
|
3027
|
+
{{{ makeSetValue('result', 0, 'referenceId', '*') }}};
|
|
3028
|
+
}
|
|
3029
|
+
return envObject.clearLastError();
|
|
3030
|
+
}
|
|
3031
|
+
emnapiImplement('napi_define_class', 'ipppppppp', napi_define_class, ['$emnapiCreateFunction', '$emnapiDefineProperty']);
|
|
3032
|
+
emnapiImplement('napi_wrap', 'ipppppp', napi_wrap, ['$emnapiWrap']);
|
|
3033
|
+
emnapiImplement('napi_unwrap', 'ippp', napi_unwrap, ['$emnapiUnwrap']);
|
|
3034
|
+
emnapiImplement('napi_remove_wrap', 'ippp', napi_remove_wrap, ['$emnapiUnwrap']);
|
|
3035
|
+
emnapiImplement('napi_type_tag_object', 'ippp', napi_type_tag_object);
|
|
3036
|
+
emnapiImplement('napi_check_object_type_tag', 'ipppp', napi_check_object_type_tag);
|
|
3037
|
+
emnapiImplement('napi_add_finalizer', 'ipppppp', _napi_add_finalizer, ['$emnapiGetHandle']);
|
|
3038
|
+
function napi_get_array_length(env, value, result) {
|
|
3039
|
+
if (env == 0)
|
|
3040
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3041
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3042
|
+
if (value == 0)
|
|
3043
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3044
|
+
if (result == 0)
|
|
3045
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3046
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3047
|
+
if (!handle.isArray()) {
|
|
3048
|
+
return envObject.setLastError(8 /* napi_status.napi_array_expected */);
|
|
3049
|
+
}
|
|
3050
|
+
{{{ from64('result') }}};
|
|
3051
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3052
|
+
var v = handle.value.length >>> 0;
|
|
3053
|
+
{{{ makeSetValue('result', 0, 'v', 'u32') }}};
|
|
3054
|
+
return envObject.clearLastError();
|
|
3055
|
+
}
|
|
3056
|
+
function napi_get_arraybuffer_info(env, arraybuffer, data, byte_length) {
|
|
3057
|
+
if (env == 0)
|
|
3058
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3059
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3060
|
+
if (arraybuffer == 0)
|
|
3061
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3062
|
+
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
3063
|
+
if (!handle.isArrayBuffer()) {
|
|
3064
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3065
|
+
}
|
|
3066
|
+
if (data) {
|
|
3067
|
+
{{{ from64('data') }}};
|
|
3068
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3069
|
+
var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
|
|
3070
|
+
{{{ makeSetValue('data', 0, 'p', '*') }}};
|
|
3071
|
+
}
|
|
3072
|
+
if (byte_length) {
|
|
3073
|
+
{{{ from64('byte_length') }}};
|
|
3074
|
+
{{{ makeSetValue('byte_length', 0, 'handle.value.byteLength', SIZE_TYPE) }}};
|
|
3075
|
+
}
|
|
3076
|
+
return envObject.clearLastError();
|
|
3077
|
+
}
|
|
3078
|
+
function napi_get_prototype(env, value, result) {
|
|
3079
|
+
if (env == 0)
|
|
3080
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3081
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3082
|
+
if (value == 0)
|
|
3083
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3084
|
+
if (result == 0)
|
|
3085
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3086
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3087
|
+
if (handle.value == null) {
|
|
3088
|
+
envObject.tryCatch.setError(new TypeError('Cannot convert undefined or null to object'));
|
|
3089
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3090
|
+
}
|
|
3091
|
+
var v;
|
|
3092
|
+
try {
|
|
3093
|
+
v = handle.isObject() || handle.isFunction() ? handle.value : Object(handle.value);
|
|
3094
|
+
}
|
|
3095
|
+
catch (_) {
|
|
3096
|
+
return envObject.setLastError(2 /* napi_status.napi_object_expected */);
|
|
3097
|
+
}
|
|
3098
|
+
{{{ from64('result') }}};
|
|
3099
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3100
|
+
var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
|
|
3101
|
+
{{{ makeSetValue('result', 0, 'p', '*') }}};
|
|
3102
|
+
return envObject.clearLastError();
|
|
3103
|
+
}
|
|
3104
|
+
function _napi_get_typedarray_info(env, typedarray, type, length, data, arraybuffer, byte_offset) {
|
|
3105
|
+
if (env == 0)
|
|
3106
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3107
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3108
|
+
if (typedarray == 0)
|
|
3109
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3110
|
+
var handle = emnapiCtx.handleStore.get(typedarray);
|
|
3111
|
+
if (!handle.isTypedArray()) {
|
|
3112
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3113
|
+
}
|
|
3114
|
+
var v = handle.value;
|
|
3115
|
+
if (type) {
|
|
3116
|
+
{{{ from64('type') }}};
|
|
3117
|
+
var t = void 0;
|
|
3118
|
+
if (v instanceof Int8Array) {
|
|
3119
|
+
t = 0 /* napi_typedarray_type.napi_int8_array */;
|
|
3120
|
+
}
|
|
3121
|
+
else if (v instanceof Uint8Array) {
|
|
3122
|
+
t = 1 /* napi_typedarray_type.napi_uint8_array */;
|
|
3123
|
+
}
|
|
3124
|
+
else if (v instanceof Uint8ClampedArray) {
|
|
3125
|
+
t = 2 /* napi_typedarray_type.napi_uint8_clamped_array */;
|
|
3126
|
+
}
|
|
3127
|
+
else if (v instanceof Int16Array) {
|
|
3128
|
+
t = 3 /* napi_typedarray_type.napi_int16_array */;
|
|
3129
|
+
}
|
|
3130
|
+
else if (v instanceof Uint16Array) {
|
|
3131
|
+
t = 4 /* napi_typedarray_type.napi_uint16_array */;
|
|
3132
|
+
}
|
|
3133
|
+
else if (v instanceof Int32Array) {
|
|
3134
|
+
t = 5 /* napi_typedarray_type.napi_int32_array */;
|
|
3135
|
+
}
|
|
3136
|
+
else if (v instanceof Uint32Array) {
|
|
3137
|
+
t = 6 /* napi_typedarray_type.napi_uint32_array */;
|
|
3138
|
+
}
|
|
3139
|
+
else if (v instanceof Float32Array) {
|
|
3140
|
+
t = 7 /* napi_typedarray_type.napi_float32_array */;
|
|
3141
|
+
}
|
|
3142
|
+
else if (v instanceof Float64Array) {
|
|
3143
|
+
t = 8 /* napi_typedarray_type.napi_float64_array */;
|
|
3144
|
+
}
|
|
3145
|
+
else if (v instanceof BigInt64Array) {
|
|
3146
|
+
t = 9 /* napi_typedarray_type.napi_bigint64_array */;
|
|
3147
|
+
}
|
|
3148
|
+
else if (v instanceof BigUint64Array) {
|
|
3149
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3150
|
+
t = 10 /* napi_typedarray_type.napi_biguint64_array */;
|
|
3151
|
+
}
|
|
3152
|
+
else {
|
|
3153
|
+
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
3154
|
+
}
|
|
3155
|
+
{{{ makeSetValue('type', 0, 't', 'i32') }}};
|
|
3156
|
+
}
|
|
3157
|
+
if (length) {
|
|
3158
|
+
{{{ from64('length') }}};
|
|
3159
|
+
{{{ makeSetValue('length', 0, 'v.length', SIZE_TYPE) }}};
|
|
3160
|
+
}
|
|
3161
|
+
var buffer;
|
|
3162
|
+
if (data || arraybuffer) {
|
|
3163
|
+
buffer = v.buffer;
|
|
3164
|
+
if (data) {
|
|
3165
|
+
{{{ from64('data') }}};
|
|
3166
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3167
|
+
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
3168
|
+
{{{ makeSetValue('data', 0, 'p', '*') }}};
|
|
3169
|
+
}
|
|
3170
|
+
if (arraybuffer) {
|
|
3171
|
+
{{{ from64('arraybuffer') }}};
|
|
3172
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3173
|
+
var ab = envObject.ensureHandleId(buffer);
|
|
3174
|
+
{{{ makeSetValue('arraybuffer', 0, 'ab', '*') }}};
|
|
3175
|
+
}
|
|
3176
|
+
}
|
|
3177
|
+
if (byte_offset) {
|
|
3178
|
+
{{{ from64('byte_offset') }}};
|
|
3179
|
+
{{{ makeSetValue('byte_offset', 0, 'v.byteOffset', SIZE_TYPE) }}};
|
|
3180
|
+
}
|
|
3181
|
+
return envObject.clearLastError();
|
|
3182
|
+
}
|
|
3183
|
+
function napi_get_buffer_info(env, buffer, data, length) {
|
|
3184
|
+
if (env == 0)
|
|
3185
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3186
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3187
|
+
if (buffer == 0)
|
|
3188
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3189
|
+
var handle = emnapiCtx.handleStore.get(buffer);
|
|
3190
|
+
if (!handle.isBuffer()) {
|
|
3191
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3192
|
+
}
|
|
3193
|
+
return _napi_get_typedarray_info(env, buffer, 0, length, data, 0, 0);
|
|
3194
|
+
}
|
|
3195
|
+
function napi_get_dataview_info(env, dataview, byte_length, data, arraybuffer, byte_offset) {
|
|
3196
|
+
if (env == 0)
|
|
3197
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3198
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3199
|
+
if (dataview == 0)
|
|
3200
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3201
|
+
var handle = emnapiCtx.handleStore.get(dataview);
|
|
3202
|
+
if (!handle.isDataView()) {
|
|
3203
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3204
|
+
}
|
|
3205
|
+
var v = handle.value;
|
|
3206
|
+
if (byte_length) {
|
|
3207
|
+
{{{ from64('byte_length') }}};
|
|
3208
|
+
{{{ makeSetValue('byte_length', 0, 'v.byteLength', SIZE_TYPE) }}};
|
|
3209
|
+
}
|
|
3210
|
+
var buffer;
|
|
3211
|
+
if (data || arraybuffer) {
|
|
3212
|
+
buffer = v.buffer;
|
|
3213
|
+
if (data) {
|
|
3214
|
+
{{{ from64('data') }}};
|
|
3215
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3216
|
+
var p = emnapiExternalMemory.getViewPointer(v, true).address;
|
|
3217
|
+
{{{ makeSetValue('data', 0, 'p', '*') }}};
|
|
3218
|
+
}
|
|
3219
|
+
if (arraybuffer) {
|
|
3220
|
+
{{{ from64('arraybuffer') }}};
|
|
3221
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3222
|
+
var ab = envObject.ensureHandleId(buffer);
|
|
3223
|
+
{{{ makeSetValue('arraybuffer', 0, 'ab', '*') }}};
|
|
3224
|
+
}
|
|
3225
|
+
}
|
|
3226
|
+
if (byte_offset) {
|
|
3227
|
+
{{{ from64('byte_offset') }}};
|
|
3228
|
+
{{{ makeSetValue('byte_offset', 0, 'v.byteOffset', SIZE_TYPE) }}};
|
|
3229
|
+
}
|
|
3230
|
+
return envObject.clearLastError();
|
|
3231
|
+
}
|
|
3232
|
+
// @ts-expect-error
|
|
3233
|
+
function napi_get_date_value(env, value, result) {
|
|
3234
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3235
|
+
var v;
|
|
3236
|
+
if (env == 0)
|
|
3237
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3238
|
+
var envObject_48 = emnapiCtx.envStore.get(env);
|
|
3239
|
+
if (envObject_48.tryCatch.hasCaught())
|
|
3240
|
+
return envObject_48.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3241
|
+
envObject_48.clearLastError();
|
|
3242
|
+
try {
|
|
3243
|
+
if (value == 0)
|
|
3244
|
+
return envObject_48.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3245
|
+
if (result == 0)
|
|
3246
|
+
return envObject_48.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3247
|
+
var handle_9 = emnapiCtx.handleStore.get(value);
|
|
3248
|
+
if (!handle_9.isDate()) {
|
|
3249
|
+
return envObject_48.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3250
|
+
}
|
|
3251
|
+
{{{ from64("result") }}};
|
|
3252
|
+
v = (handle_9.value).valueOf();
|
|
3253
|
+
{{{ makeSetValue("result", 0, "v", "double") }}};
|
|
3254
|
+
return envObject_48.getReturnStatus();
|
|
3255
|
+
}
|
|
3256
|
+
catch (err_49) {
|
|
3257
|
+
envObject_48.tryCatch
|
|
3258
|
+
.setError(err_49);
|
|
3259
|
+
return envObject_48.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3260
|
+
}
|
|
3261
|
+
}
|
|
3262
|
+
function napi_get_value_bool(env, value, result) {
|
|
3263
|
+
if (env == 0)
|
|
3264
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3265
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3266
|
+
if (value == 0)
|
|
3267
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3268
|
+
if (result == 0)
|
|
3269
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3270
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3271
|
+
if (typeof handle.value !== 'boolean') {
|
|
3272
|
+
return envObject.setLastError(7 /* napi_status.napi_boolean_expected */);
|
|
3273
|
+
}
|
|
3274
|
+
{{{ from64('result') }}};
|
|
3275
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3276
|
+
var r = handle.value ? 1 : 0;
|
|
3277
|
+
{{{ makeSetValue('result', 0, 'r', 'i8') }}};
|
|
3278
|
+
return envObject.clearLastError();
|
|
3279
|
+
}
|
|
3280
|
+
function napi_get_value_double(env, value, result) {
|
|
3281
|
+
if (env == 0)
|
|
3282
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3283
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3284
|
+
if (value == 0)
|
|
3285
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3286
|
+
if (result == 0)
|
|
3287
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3288
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3289
|
+
if (typeof handle.value !== 'number') {
|
|
3290
|
+
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3291
|
+
}
|
|
3292
|
+
{{{ from64('result') }}};
|
|
3293
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3294
|
+
var r = handle.value;
|
|
3295
|
+
{{{ makeSetValue('result', 0, 'r', 'double') }}};
|
|
3296
|
+
return envObject.clearLastError();
|
|
3297
|
+
}
|
|
3298
|
+
function napi_get_value_bigint_int64(env, value, result, lossless) {
|
|
3299
|
+
if (env == 0)
|
|
3300
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3301
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3302
|
+
if (!emnapiCtx.feature.supportBigInt) {
|
|
3303
|
+
envObject.tryCatch.setError(emnapiCtx.createNotSupportBigIntError('napi_get_value_bigint_int64', 'This API is unavailable'));
|
|
3304
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3305
|
+
}
|
|
3306
|
+
if (value == 0)
|
|
3307
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3308
|
+
if (result == 0)
|
|
3309
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3310
|
+
if (lossless == 0)
|
|
3311
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3312
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3313
|
+
var numberValue = handle.value;
|
|
3314
|
+
if (typeof numberValue !== 'bigint') {
|
|
3315
|
+
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3316
|
+
}
|
|
3317
|
+
{{{ from64('lossless') }}};
|
|
3318
|
+
{{{ from64('result') }}};
|
|
3319
|
+
if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
|
|
3320
|
+
{{{ makeSetValue('lossless', 0, '1', 'i8') }}};
|
|
3321
|
+
}
|
|
3322
|
+
else {
|
|
3323
|
+
{{{ makeSetValue('lossless', 0, '0', 'i8') }}};
|
|
3324
|
+
numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
3325
|
+
if (numberValue >= (BigInt(1) << BigInt(63))) {
|
|
3326
|
+
numberValue = numberValue - (BigInt(1) << BigInt(64));
|
|
3327
|
+
}
|
|
3328
|
+
}
|
|
3329
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3330
|
+
var low = Number(numberValue & BigInt(0xffffffff));
|
|
3331
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3332
|
+
var high = Number(numberValue >> BigInt(32));
|
|
3333
|
+
{{{ makeSetValue('result', 0, 'low', 'i32') }}};
|
|
3334
|
+
{{{ makeSetValue('result', 4, 'high', 'i32') }}};
|
|
3335
|
+
return envObject.clearLastError();
|
|
3336
|
+
}
|
|
3337
|
+
function napi_get_value_bigint_uint64(env, value, result, lossless) {
|
|
3338
|
+
if (env == 0)
|
|
3339
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3340
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3341
|
+
if (!emnapiCtx.feature.supportBigInt) {
|
|
3342
|
+
envObject.tryCatch.setError(emnapiCtx.createNotSupportBigIntError('napi_get_value_bigint_uint64', 'This API is unavailable'));
|
|
3343
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3344
|
+
}
|
|
3345
|
+
if (value == 0)
|
|
3346
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3347
|
+
if (result == 0)
|
|
3348
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3349
|
+
if (lossless == 0)
|
|
3350
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3351
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3352
|
+
var numberValue = handle.value;
|
|
3353
|
+
if (typeof numberValue !== 'bigint') {
|
|
3354
|
+
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3355
|
+
}
|
|
3356
|
+
{{{ from64('lossless') }}};
|
|
3357
|
+
{{{ from64('result') }}};
|
|
3358
|
+
if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
|
|
3359
|
+
{{{ makeSetValue('lossless', 0, '1', 'i8') }}};
|
|
3360
|
+
}
|
|
3361
|
+
else {
|
|
3362
|
+
{{{ makeSetValue('lossless', 0, '0', 'i8') }}};
|
|
3363
|
+
numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
3364
|
+
}
|
|
3365
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3366
|
+
var low = Number(numberValue & BigInt(0xffffffff));
|
|
3367
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3368
|
+
var high = Number(numberValue >> BigInt(32));
|
|
3369
|
+
{{{ makeSetValue('result', 0, 'low', 'u32') }}};
|
|
3370
|
+
{{{ makeSetValue('result', 4, 'high', 'u32') }}};
|
|
3371
|
+
return envObject.clearLastError();
|
|
3372
|
+
}
|
|
3373
|
+
function napi_get_value_bigint_words(env, value, sign_bit, word_count, words) {
|
|
3374
|
+
if (env == 0)
|
|
3375
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3376
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3377
|
+
if (!emnapiCtx.feature.supportBigInt) {
|
|
3378
|
+
envObject.tryCatch.setError(emnapiCtx.createNotSupportBigIntError('napi_get_value_bigint_words', 'This API is unavailable'));
|
|
3379
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3380
|
+
}
|
|
3381
|
+
if (value == 0)
|
|
3382
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3383
|
+
if (word_count == 0)
|
|
3384
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3385
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3386
|
+
if (!handle.isBigInt()) {
|
|
3387
|
+
return envObject.setLastError(17 /* napi_status.napi_bigint_expected */);
|
|
3388
|
+
}
|
|
3389
|
+
var isMinus = handle.value < BigInt(0);
|
|
3390
|
+
{{{ from64('sign_bit') }}};
|
|
3391
|
+
{{{ from64('words') }}};
|
|
3392
|
+
{{{ from64('word_count') }}};
|
|
3393
|
+
var word_count_int = {{{ makeGetValue('word_count', 0, SIZE_TYPE) }}};
|
|
3394
|
+
{{{ from64('word_count_int') }}};
|
|
3395
|
+
var wordCount = 0;
|
|
3396
|
+
var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
3397
|
+
while (bigintValue !== BigInt(0)) {
|
|
3398
|
+
wordCount++;
|
|
3399
|
+
bigintValue = bigintValue >> BigInt(64);
|
|
3400
|
+
}
|
|
3401
|
+
bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
|
|
3402
|
+
if (!sign_bit && !words) {
|
|
3403
|
+
word_count_int = wordCount;
|
|
3404
|
+
{{{ makeSetValue('word_count', 0, 'word_count_int', SIZE_TYPE) }}};
|
|
3405
|
+
}
|
|
3406
|
+
else {
|
|
3407
|
+
if (!sign_bit)
|
|
3408
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3409
|
+
if (!words)
|
|
3410
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3411
|
+
var wordsArr = [];
|
|
3412
|
+
while (bigintValue !== BigInt(0)) {
|
|
3413
|
+
var uint64 = bigintValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
|
|
3414
|
+
wordsArr.push(uint64);
|
|
3415
|
+
bigintValue = bigintValue >> BigInt(64);
|
|
3416
|
+
}
|
|
3417
|
+
var len = Math.min(word_count_int, wordsArr.length);
|
|
3418
|
+
for (var i = 0; i < len; i++) {
|
|
3419
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3420
|
+
var low = Number(wordsArr[i] & BigInt(0xffffffff));
|
|
3421
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3422
|
+
var high = Number(wordsArr[i] >> BigInt(32));
|
|
3423
|
+
{{{ makeSetValue('words', 'i * 8', 'low', 'u32') }}};
|
|
3424
|
+
{{{ makeSetValue('words', 'i * 8 + 4', 'high', 'u32') }}};
|
|
3425
|
+
}
|
|
3426
|
+
{{{ makeSetValue('sign_bit', 0, 'isMinus ? 1 : 0', 'i32') }}};
|
|
3427
|
+
{{{ makeSetValue('word_count', 0, 'len', SIZE_TYPE) }}};
|
|
3428
|
+
}
|
|
3429
|
+
return envObject.clearLastError();
|
|
3430
|
+
}
|
|
3431
|
+
function napi_get_value_external(env, value, result) {
|
|
3432
|
+
if (env == 0)
|
|
3433
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3434
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3435
|
+
if (value == 0)
|
|
3436
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3437
|
+
if (result == 0)
|
|
3438
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3439
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3440
|
+
if (!handle.isExternal()) {
|
|
3441
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3442
|
+
}
|
|
3443
|
+
{{{ from64('result') }}};
|
|
3444
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3445
|
+
var p = handle.data(envObject);
|
|
3446
|
+
{{{ makeSetValue('result', 0, 'p', '*') }}};
|
|
3447
|
+
return envObject.clearLastError();
|
|
3448
|
+
}
|
|
3449
|
+
function napi_get_value_int32(env, value, result) {
|
|
3450
|
+
if (env == 0)
|
|
3451
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3452
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3453
|
+
if (value == 0)
|
|
3454
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3455
|
+
if (result == 0)
|
|
3456
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3457
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3458
|
+
if (typeof handle.value !== 'number') {
|
|
3459
|
+
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3460
|
+
}
|
|
3461
|
+
{{{ from64('result') }}};
|
|
3462
|
+
{{{ makeSetValue('result', 0, 'handle.value', 'i32') }}};
|
|
3463
|
+
return envObject.clearLastError();
|
|
3464
|
+
}
|
|
3465
|
+
function napi_get_value_int64(env, value, result) {
|
|
3466
|
+
if (env == 0)
|
|
3467
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3468
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3469
|
+
if (value == 0)
|
|
3470
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3471
|
+
if (result == 0)
|
|
3472
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3473
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3474
|
+
if (typeof handle.value !== 'number') {
|
|
3475
|
+
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3476
|
+
}
|
|
3477
|
+
var numberValue = handle.value;
|
|
3478
|
+
{{{ from64('result') }}};
|
|
3479
|
+
var tempI64;
|
|
3480
|
+
if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
|
|
3481
|
+
{{{ makeSetValue('result', 0, '0', 'i32') }}};
|
|
3482
|
+
{{{ makeSetValue('result', 4, '0', 'i32') }}};
|
|
3483
|
+
}
|
|
3484
|
+
else if (numberValue < /* INT64_RANGE_NEGATIVE */ -9223372036854776000) {
|
|
3485
|
+
{{{ makeSetValue('result', 0, '0', 'i32') }}};
|
|
3486
|
+
{{{ makeSetValue('result', 4, '0x80000000', 'i32') }}};
|
|
3487
|
+
}
|
|
3488
|
+
else if (numberValue >= /* INT64_RANGE_POSITIVE */ 9223372036854776000) {
|
|
3489
|
+
{{{ makeSetValue('result', 0, '0xffffffff', 'u32') }}};
|
|
3490
|
+
{{{ makeSetValue('result', 4, '0x7fffffff', 'u32') }}};
|
|
3491
|
+
}
|
|
3492
|
+
else {
|
|
3493
|
+
var tempDouble
|
|
3494
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3495
|
+
= void 0;
|
|
3496
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3497
|
+
tempI64 = [numberValue >>> 0, (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)];
|
|
3498
|
+
{{{ makeSetValue('result', 0, 'tempI64[0]', 'i32') }}};
|
|
3499
|
+
{{{ makeSetValue('result', 4, 'tempI64[1]', 'i32') }}};
|
|
3500
|
+
}
|
|
3501
|
+
return envObject.clearLastError();
|
|
3502
|
+
}
|
|
3503
|
+
function napi_get_value_string_latin1(env, value, buf, buf_size, result) {
|
|
3504
|
+
if (env == 0)
|
|
3505
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3506
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3507
|
+
if (value == 0)
|
|
3508
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3509
|
+
{{{ from64('result') }}};
|
|
3510
|
+
{{{ from64('buf') }}};
|
|
3511
|
+
{{{ from64('buf_size') }}};
|
|
3512
|
+
buf_size = buf_size >>> 0;
|
|
3513
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3514
|
+
if (typeof handle.value !== 'string') {
|
|
3515
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
3516
|
+
}
|
|
3517
|
+
if (!buf) {
|
|
3518
|
+
if (!result)
|
|
3519
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3520
|
+
{{{ makeSetValue('result', 0, 'handle.value.length', SIZE_TYPE) }}};
|
|
3521
|
+
}
|
|
3522
|
+
else if (buf_size !== 0) {
|
|
3523
|
+
var copied = 0;
|
|
3524
|
+
var v = void 0;
|
|
3525
|
+
for (var i = 0; i < buf_size - 1; ++i) {
|
|
3526
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3527
|
+
v = handle.value.charCodeAt(i) & 0xff;
|
|
3528
|
+
{{{ makeSetValue('buf', 'i', 'v', 'u8') }}};
|
|
3529
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3530
|
+
copied++;
|
|
3531
|
+
}
|
|
3532
|
+
{{{ makeSetValue('buf', 'copied', '0', 'u8') }}};
|
|
3533
|
+
if (result) {
|
|
3534
|
+
{{{ makeSetValue('result', 0, 'copied', SIZE_TYPE) }}};
|
|
3535
|
+
}
|
|
3536
|
+
}
|
|
3537
|
+
else if (result) {
|
|
3538
|
+
{{{ makeSetValue('result', 0, '0', SIZE_TYPE) }}};
|
|
3539
|
+
}
|
|
3540
|
+
return envObject.clearLastError();
|
|
3541
|
+
}
|
|
3542
|
+
function napi_get_value_string_utf8(env, value, buf, buf_size, result) {
|
|
3543
|
+
if (env == 0)
|
|
3544
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3545
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3546
|
+
if (value == 0)
|
|
3547
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3548
|
+
{{{ from64('result') }}};
|
|
3549
|
+
{{{ from64('buf') }}};
|
|
3550
|
+
{{{ from64('buf_size') }}};
|
|
3551
|
+
buf_size = buf_size >>> 0;
|
|
3552
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3553
|
+
if (typeof handle.value !== 'string') {
|
|
3554
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
3555
|
+
}
|
|
3556
|
+
if (!buf) {
|
|
3557
|
+
if (!result)
|
|
3558
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3559
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3560
|
+
var strLength = lengthBytesUTF8(handle.value);
|
|
3561
|
+
{{{ makeSetValue('result', 0, 'strLength', SIZE_TYPE) }}};
|
|
3562
|
+
}
|
|
3563
|
+
else if (buf_size !== 0) {
|
|
3564
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3565
|
+
var copied = stringToUTF8(handle.value, buf, buf_size);
|
|
3566
|
+
if (result) {
|
|
3567
|
+
{{{ makeSetValue('result', 0, 'copied', SIZE_TYPE) }}};
|
|
3568
|
+
}
|
|
3569
|
+
}
|
|
3570
|
+
else if (result) {
|
|
3571
|
+
{{{ makeSetValue('result', 0, '0', SIZE_TYPE) }}};
|
|
3572
|
+
}
|
|
3573
|
+
return envObject.clearLastError();
|
|
3574
|
+
}
|
|
3575
|
+
function napi_get_value_string_utf16(env, value, buf, buf_size, result) {
|
|
3576
|
+
if (env == 0)
|
|
3577
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3578
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3579
|
+
if (value == 0)
|
|
3580
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3581
|
+
{{{ from64('result') }}};
|
|
3582
|
+
{{{ from64('buf') }}};
|
|
3583
|
+
{{{ from64('buf_size') }}};
|
|
3584
|
+
buf_size = buf_size >>> 0;
|
|
3585
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3586
|
+
if (typeof handle.value !== 'string') {
|
|
3587
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
3588
|
+
}
|
|
3589
|
+
if (!buf) {
|
|
3590
|
+
if (!result)
|
|
3591
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3592
|
+
{{{ makeSetValue('result', 0, 'handle.value.length', SIZE_TYPE) }}};
|
|
3593
|
+
}
|
|
3594
|
+
else if (buf_size !== 0) {
|
|
3595
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3596
|
+
var copied = stringToUTF16(handle.value, buf, buf_size * 2);
|
|
3597
|
+
if (result) {
|
|
3598
|
+
{{{ makeSetValue('result', 0, 'copied / 2', SIZE_TYPE) }}};
|
|
3599
|
+
}
|
|
3600
|
+
}
|
|
3601
|
+
else if (result) {
|
|
3602
|
+
{{{ makeSetValue('result', 0, '0', SIZE_TYPE) }}};
|
|
3603
|
+
}
|
|
3604
|
+
return envObject.clearLastError();
|
|
3605
|
+
}
|
|
3606
|
+
function napi_get_value_uint32(env, value, result) {
|
|
3607
|
+
if (env == 0)
|
|
3608
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3609
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3610
|
+
if (value == 0)
|
|
3611
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3612
|
+
if (result == 0)
|
|
3613
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3614
|
+
var handle = emnapiCtx.handleStore.get(value);
|
|
3615
|
+
if (typeof handle.value !== 'number') {
|
|
3616
|
+
return envObject.setLastError(6 /* napi_status.napi_number_expected */);
|
|
3617
|
+
}
|
|
3618
|
+
{{{ from64('result') }}};
|
|
3619
|
+
{{{ makeSetValue('result', 0, 'handle.value', 'u32') }}};
|
|
3620
|
+
return envObject.clearLastError();
|
|
3621
|
+
}
|
|
3622
|
+
emnapiImplement('napi_get_array_length', 'ippp', napi_get_array_length);
|
|
3623
|
+
emnapiImplement('napi_get_arraybuffer_info', 'ipppp', napi_get_arraybuffer_info, ['$emnapiExternalMemory']);
|
|
3624
|
+
emnapiImplement('napi_get_prototype', 'ippp', napi_get_prototype);
|
|
3625
|
+
emnapiImplement('napi_get_typedarray_info', 'ippppppp', _napi_get_typedarray_info, ['$emnapiExternalMemory']);
|
|
3626
|
+
emnapiImplement('napi_get_buffer_info', 'ipppp', napi_get_buffer_info, ['napi_get_typedarray_info']);
|
|
3627
|
+
emnapiImplement('napi_get_dataview_info', 'ipppppp', napi_get_dataview_info, ['$emnapiExternalMemory']);
|
|
3628
|
+
emnapiImplement('napi_get_date_value', 'ippp', napi_get_date_value);
|
|
3629
|
+
emnapiImplement('napi_get_value_bool', 'ippp', napi_get_value_bool);
|
|
3630
|
+
emnapiImplement('napi_get_value_double', 'ippp', napi_get_value_double);
|
|
3631
|
+
emnapiImplement('napi_get_value_bigint_int64', 'ipppp', napi_get_value_bigint_int64);
|
|
3632
|
+
emnapiImplement('napi_get_value_bigint_uint64', 'ipppp', napi_get_value_bigint_uint64);
|
|
3633
|
+
emnapiImplement('napi_get_value_bigint_words', 'ippppp', napi_get_value_bigint_words);
|
|
3634
|
+
emnapiImplement('napi_get_value_external', 'ippp', napi_get_value_external);
|
|
3635
|
+
emnapiImplement('napi_get_value_int32', 'ippp', napi_get_value_int32);
|
|
3636
|
+
emnapiImplement('napi_get_value_int64', 'ippp', napi_get_value_int64);
|
|
3637
|
+
emnapiImplement('napi_get_value_string_latin1', 'ippppp', napi_get_value_string_latin1);
|
|
3638
|
+
emnapiImplement('napi_get_value_string_utf8', 'ippppp', napi_get_value_string_utf8);
|
|
3639
|
+
#if typeof LEGACY_RUNTIME !== 'undefined' && !LEGACY_RUNTIME
|
|
3640
|
+
emnapiImplement('napi_get_value_string_utf16', 'ippppp', napi_get_value_string_utf16, ['$stringToUTF16']);
|
|
3641
|
+
#else
|
|
3642
|
+
emnapiImplement('napi_get_value_string_utf16', 'ippppp', napi_get_value_string_utf16);
|
|
3643
|
+
#endif
|
|
3644
|
+
emnapiImplement('napi_get_value_uint32', 'ippp', napi_get_value_uint32);
|
|
3645
|
+
/* eslint-disable @typescript-eslint/indent */
|
|
3646
|
+
function napi_create_int32(env, value, result) {
|
|
3647
|
+
if (env == 0)
|
|
3648
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3649
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3650
|
+
if (result == 0)
|
|
3651
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3652
|
+
{{{ from64('result') }}};
|
|
3653
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3654
|
+
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
3655
|
+
{{{ makeSetValue('result', 0, 'v', '*') }}};
|
|
3656
|
+
return envObject.clearLastError();
|
|
3657
|
+
}
|
|
3658
|
+
function napi_create_uint32(env, value, result) {
|
|
3659
|
+
if (env == 0)
|
|
3660
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3661
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3662
|
+
if (result == 0)
|
|
3663
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3664
|
+
{{{ from64('result') }}};
|
|
3665
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3666
|
+
var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
|
|
3667
|
+
{{{ makeSetValue('result', 0, 'v', '*') }}};
|
|
3668
|
+
return envObject.clearLastError();
|
|
3669
|
+
}
|
|
3670
|
+
function napi_create_int64(env, low, high, result) {
|
|
3671
|
+
if (env == 0)
|
|
3672
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3673
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3674
|
+
var value;
|
|
3675
|
+
#if WASM_BIGINT
|
|
3676
|
+
if (!high)
|
|
3677
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3678
|
+
value = Number(low);
|
|
3679
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3680
|
+
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3681
|
+
{{{ from64('high') }}};
|
|
3682
|
+
{{{ makeSetValue('high', 0, 'v1', '*') }}};
|
|
3683
|
+
#else
|
|
3684
|
+
if (!result)
|
|
3685
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3686
|
+
value = (low >>> 0) + (high * Math.pow(2, 32));
|
|
3687
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3688
|
+
var v2 = emnapiCtx.addToCurrentScope(value).id;
|
|
3689
|
+
{{{ makeSetValue('result', 0, 'v2', '*') }}};
|
|
3690
|
+
#endif
|
|
3691
|
+
return envObject.clearLastError();
|
|
3692
|
+
}
|
|
3693
|
+
function napi_create_double(env, value, result) {
|
|
3694
|
+
if (env == 0)
|
|
3695
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3696
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3697
|
+
if (result == 0)
|
|
3698
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3699
|
+
{{{ from64('result') }}};
|
|
3700
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3701
|
+
var v = emnapiCtx.addToCurrentScope(value).id;
|
|
3702
|
+
{{{ makeSetValue('result', 0, 'v', '*') }}};
|
|
3703
|
+
return envObject.clearLastError();
|
|
3704
|
+
}
|
|
3705
|
+
function napi_create_string_latin1(env, str, length, result) {
|
|
3706
|
+
if (env == 0)
|
|
3707
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3708
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3709
|
+
if (result == 0)
|
|
3710
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3711
|
+
{{{ from64('str') }}};
|
|
3712
|
+
{{{ from64('length') }}};
|
|
3713
|
+
length = length >>> 0;
|
|
3714
|
+
if (!((length === 0xffffffff) || (length <= 2147483647)) || (!str)) {
|
|
3715
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3716
|
+
}
|
|
3717
|
+
var latin1String = '';
|
|
3718
|
+
var len = 0;
|
|
3719
|
+
if (length === -1) {
|
|
3720
|
+
while (true) {
|
|
3721
|
+
var ch = {{{ makeGetValue('str', 0, 'u8') }}};
|
|
3722
|
+
if (!ch)
|
|
3723
|
+
break;
|
|
3724
|
+
latin1String += String.fromCharCode(ch);
|
|
3725
|
+
str++;
|
|
3726
|
+
}
|
|
3727
|
+
}
|
|
3728
|
+
else {
|
|
3729
|
+
while (len < length) {
|
|
3730
|
+
var ch = {{{ makeGetValue('str', 0, 'u8') }}};
|
|
3731
|
+
if (!ch)
|
|
3732
|
+
break;
|
|
3733
|
+
latin1String += String.fromCharCode(ch);
|
|
3734
|
+
len++;
|
|
3735
|
+
str++;
|
|
3736
|
+
}
|
|
3737
|
+
}
|
|
3738
|
+
{{{ from64('result') }}};
|
|
3739
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3740
|
+
var value = emnapiCtx.addToCurrentScope(latin1String).id;
|
|
3741
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
3742
|
+
return envObject.clearLastError();
|
|
3743
|
+
}
|
|
3744
|
+
function napi_create_string_utf16(env, str, length, result) {
|
|
3745
|
+
if (env == 0)
|
|
3746
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3747
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3748
|
+
if (result == 0)
|
|
3749
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3750
|
+
{{{ from64('str') }}};
|
|
3751
|
+
{{{ from64('length') }}};
|
|
3752
|
+
if (((length < -1) || (length > 2147483647)) || (!str)) {
|
|
3753
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3754
|
+
}
|
|
3755
|
+
var utf16String = emnapiUtf16ToString(str, length);
|
|
3756
|
+
{{{ from64('result') }}};
|
|
3757
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3758
|
+
var value = emnapiCtx.addToCurrentScope(utf16String).id;
|
|
3759
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
3760
|
+
return envObject.clearLastError();
|
|
3761
|
+
}
|
|
3762
|
+
function napi_create_string_utf8(env, str, length, result) {
|
|
3763
|
+
if (env == 0)
|
|
3764
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3765
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3766
|
+
if (result == 0)
|
|
3767
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3768
|
+
{{{ from64('str') }}};
|
|
3769
|
+
{{{ from64('length') }}};
|
|
3770
|
+
if (((length < -1) || (length > 2147483647)) || (!str)) {
|
|
3771
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3772
|
+
}
|
|
3773
|
+
var utf8String = emnapiUtf8ToString(str, length);
|
|
3774
|
+
{{{ from64('result') }}};
|
|
3775
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3776
|
+
var value = emnapiCtx.addToCurrentScope(utf8String).id;
|
|
3777
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
3778
|
+
return envObject.clearLastError();
|
|
3779
|
+
}
|
|
3780
|
+
function napi_create_bigint_int64(env, low, high, result) {
|
|
3781
|
+
if (env == 0)
|
|
3782
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3783
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3784
|
+
if (!emnapiCtx.feature.supportBigInt) {
|
|
3785
|
+
envObject.tryCatch.setError(emnapiCtx.createNotSupportBigIntError('napi_create_bigint_int64', 'This API is unavailable'));
|
|
3786
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3787
|
+
}
|
|
3788
|
+
var value;
|
|
3789
|
+
#if WASM_BIGINT
|
|
3790
|
+
if (!high)
|
|
3791
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3792
|
+
value = low;
|
|
3793
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3794
|
+
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3795
|
+
{{{ from64('high') }}};
|
|
3796
|
+
{{{ makeSetValue('high', 0, 'v1', '*') }}};
|
|
3797
|
+
#else
|
|
3798
|
+
if (!result)
|
|
3799
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3800
|
+
value = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
|
|
3801
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3802
|
+
var v2 = emnapiCtx.addToCurrentScope(value).id;
|
|
3803
|
+
{{{ makeSetValue('result', 0, 'v2', '*') }}};
|
|
3804
|
+
#endif
|
|
3805
|
+
return envObject.clearLastError();
|
|
3806
|
+
}
|
|
3807
|
+
function napi_create_bigint_uint64(env, low, high, result) {
|
|
3808
|
+
if (env == 0)
|
|
3809
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3810
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3811
|
+
if (!emnapiCtx.feature.supportBigInt) {
|
|
3812
|
+
envObject.tryCatch.setError(emnapiCtx.createNotSupportBigIntError('napi_create_bigint_uint64', 'This API is unavailable'));
|
|
3813
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3814
|
+
}
|
|
3815
|
+
var value;
|
|
3816
|
+
#if WASM_BIGINT
|
|
3817
|
+
if (!high)
|
|
3818
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3819
|
+
value = low;
|
|
3820
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3821
|
+
var v1 = emnapiCtx.addToCurrentScope(value).id;
|
|
3822
|
+
{{{ from64('high') }}};
|
|
3823
|
+
{{{ makeSetValue('high', 0, 'v1', '*') }}};
|
|
3824
|
+
#else
|
|
3825
|
+
if (!result)
|
|
3826
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3827
|
+
value = BigInt(low >>> 0) | (BigInt(high >>> 0) << BigInt(32));
|
|
3828
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3829
|
+
var v2 = emnapiCtx.addToCurrentScope(value).id;
|
|
3830
|
+
{{{ makeSetValue('result', 0, 'v2', '*') }}};
|
|
3831
|
+
#endif
|
|
3832
|
+
return envObject.clearLastError();
|
|
3833
|
+
}
|
|
3834
|
+
// @ts-expect-error
|
|
3835
|
+
function napi_create_bigint_words(env, sign_bit, word_count, words, result) {
|
|
3836
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3837
|
+
var v, i;
|
|
3838
|
+
if (env == 0)
|
|
3839
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3840
|
+
var envObject_49 = emnapiCtx.envStore.get(env);
|
|
3841
|
+
if (envObject_49.tryCatch.hasCaught())
|
|
3842
|
+
return envObject_49.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3843
|
+
envObject_49.clearLastError();
|
|
3844
|
+
try {
|
|
3845
|
+
if (!emnapiCtx.feature.supportBigInt) {
|
|
3846
|
+
throw emnapiCtx.createNotSupportBigIntError("napi_create_bigint_words", "This API is unavailable");
|
|
3847
|
+
}
|
|
3848
|
+
if (result == 0)
|
|
3849
|
+
return envObject_49.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3850
|
+
{{{ from64("words") }}};
|
|
3851
|
+
{{{ from64("word_count") }}};
|
|
3852
|
+
word_count = word_count >>> 0;
|
|
3853
|
+
if (word_count > 2147483647) {
|
|
3854
|
+
return envObject_49.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3855
|
+
}
|
|
3856
|
+
if (word_count > (16384)) {
|
|
3857
|
+
throw new RangeError("Maximum BigInt size exceeded");
|
|
3858
|
+
}
|
|
3859
|
+
var value_6 = BigInt(0);
|
|
3860
|
+
for (i = 0; i < word_count; i++) {
|
|
3861
|
+
var low_2 = {{{ makeGetValue("words", "i * 8", "u32") }}};
|
|
3862
|
+
var high_2 = {{{ makeGetValue("words", "i * 8 + 4", "u32") }}};
|
|
3863
|
+
var wordi_1 = BigInt(low_2) | (BigInt(high_2) << BigInt(32));
|
|
3864
|
+
value_6 += wordi_1 << BigInt(64 * i);
|
|
3865
|
+
}
|
|
3866
|
+
value_6 *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
|
|
3867
|
+
{{{ from64("result") }}};
|
|
3868
|
+
v = emnapiCtx.addToCurrentScope(value_6).id;
|
|
3869
|
+
{{{ makeSetValue("result", 0, "v", "*") }}};
|
|
3870
|
+
return envObject_49.clearLastError();
|
|
3871
|
+
}
|
|
3872
|
+
catch (err_50) {
|
|
3873
|
+
envObject_49.tryCatch.setError(err_50);
|
|
3874
|
+
return envObject_49.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3875
|
+
}
|
|
3876
|
+
}
|
|
3877
|
+
emnapiImplement('napi_create_int32', 'ipip', napi_create_int32);
|
|
3878
|
+
emnapiImplement('napi_create_uint32', 'ipip', napi_create_uint32);
|
|
3879
|
+
emnapiImplement('napi_create_int64', 'ipjp', napi_create_int64);
|
|
3880
|
+
emnapiImplement('napi_create_double', 'ipdp', napi_create_double);
|
|
3881
|
+
emnapiImplement('napi_create_bigint_int64', 'ipjp', napi_create_bigint_int64);
|
|
3882
|
+
emnapiImplement('napi_create_bigint_uint64', 'ipjp', napi_create_bigint_uint64);
|
|
3883
|
+
emnapiImplement('napi_create_bigint_words', 'ipippp', napi_create_bigint_words);
|
|
3884
|
+
emnapiImplement('napi_create_string_latin1', 'ipppp', napi_create_string_latin1);
|
|
3885
|
+
emnapiImplement('napi_create_string_utf16', 'ipppp', napi_create_string_utf16, ['$emnapiUtf16ToString']);
|
|
3886
|
+
emnapiImplement('napi_create_string_utf8', 'ipppp', napi_create_string_utf8, ['$emnapiUtf8ToString']);
|
|
3887
|
+
function napi_create_array(env, result) {
|
|
3888
|
+
if (env == 0)
|
|
3889
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3890
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3891
|
+
if (result == 0)
|
|
3892
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3893
|
+
{{{ from64('result') }}};
|
|
3894
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3895
|
+
var value = emnapiCtx.addToCurrentScope([]).id;
|
|
3896
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
3897
|
+
return envObject.clearLastError();
|
|
3898
|
+
}
|
|
3899
|
+
function napi_create_array_with_length(env, length, result) {
|
|
3900
|
+
if (env == 0)
|
|
3901
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3902
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
3903
|
+
if (result == 0)
|
|
3904
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3905
|
+
{{{ from64('length') }}};
|
|
3906
|
+
{{{ from64('result') }}};
|
|
3907
|
+
length = length >>> 0;
|
|
3908
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3909
|
+
var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
|
|
3910
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
3911
|
+
return envObject.clearLastError();
|
|
3912
|
+
}
|
|
3913
|
+
function emnapiCreateArrayBuffer(byte_length, data) {
|
|
3914
|
+
{{{ from64('byte_length') }}};
|
|
3915
|
+
byte_length = byte_length >>> 0;
|
|
3916
|
+
var arrayBuffer = new ArrayBuffer(byte_length);
|
|
3917
|
+
if (data) {
|
|
3918
|
+
{{{ from64('data') }}};
|
|
3919
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3920
|
+
var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
|
|
3921
|
+
{{{ makeSetValue('data', 0, 'p', '*') }}};
|
|
3922
|
+
}
|
|
3923
|
+
return arrayBuffer;
|
|
3924
|
+
}
|
|
3925
|
+
// @ts-expect-error
|
|
3926
|
+
function napi_create_arraybuffer(env, byte_length, data, result) {
|
|
3927
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3928
|
+
var value;
|
|
3929
|
+
if (env == 0)
|
|
3930
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3931
|
+
var envObject_50 = emnapiCtx.envStore
|
|
3932
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3933
|
+
.
|
|
3934
|
+
get(env);
|
|
3935
|
+
if (envObject_50.tryCatch.hasCaught())
|
|
3936
|
+
return envObject_50.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3937
|
+
envObject_50.clearLastError();
|
|
3938
|
+
try {
|
|
3939
|
+
if (result == 0)
|
|
3940
|
+
return envObject_50.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3941
|
+
{{{ from64("result") }}};
|
|
3942
|
+
var arrayBuffer_1 = emnapiCreateArrayBuffer(byte_length, data);
|
|
3943
|
+
value = emnapiCtx.addToCurrentScope(arrayBuffer_1).id;
|
|
3944
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
3945
|
+
return envObject_50.getReturnStatus();
|
|
3946
|
+
}
|
|
3947
|
+
catch (err_51) {
|
|
3948
|
+
envObject_50.tryCatch.setError(err_51);
|
|
3949
|
+
return envObject_50.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3950
|
+
}
|
|
3951
|
+
}
|
|
3952
|
+
// @ts-expect-error
|
|
3953
|
+
function napi_create_date(env, time, result) {
|
|
3954
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3955
|
+
var value;
|
|
3956
|
+
if (env == 0)
|
|
3957
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3958
|
+
var envObject_51 = emnapiCtx.envStore
|
|
3959
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3960
|
+
.
|
|
3961
|
+
get(env);
|
|
3962
|
+
if (envObject_51.tryCatch.hasCaught())
|
|
3963
|
+
return envObject_51.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3964
|
+
envObject_51.clearLastError();
|
|
3965
|
+
try {
|
|
3966
|
+
if (result == 0)
|
|
3967
|
+
return envObject_51.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3968
|
+
{{{ from64("result") }}};
|
|
3969
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3970
|
+
value = emnapiCtx.addToCurrentScope(new Date(time)).id;
|
|
3971
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
3972
|
+
return envObject_51.getReturnStatus();
|
|
3973
|
+
}
|
|
3974
|
+
catch (err_52) {
|
|
3975
|
+
envObject_51.tryCatch.setError(err_52);
|
|
3976
|
+
return envObject_51.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3977
|
+
}
|
|
3978
|
+
}
|
|
3979
|
+
// @ts-expect-error
|
|
3980
|
+
function napi_create_external(env, data, finalize_cb, finalize_hint, result) {
|
|
3981
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3982
|
+
var value;
|
|
3983
|
+
if (env == 0)
|
|
3984
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
3985
|
+
var envObject_52 = emnapiCtx.envStore
|
|
3986
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3987
|
+
.
|
|
3988
|
+
get(env);
|
|
3989
|
+
if (envObject_52.tryCatch.hasCaught())
|
|
3990
|
+
return envObject_52.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
3991
|
+
envObject_52.clearLastError();
|
|
3992
|
+
try {
|
|
3993
|
+
if (result == 0)
|
|
3994
|
+
return envObject_52.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3995
|
+
if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
|
|
3996
|
+
throw emnapiCtx.createNotSupportWeakRefError("napi_create_external", "Parameter \"finalize_cb\" must be 0(NULL)");
|
|
3997
|
+
}
|
|
3998
|
+
var externalHandle_1 = emnapiCtx.getCurrentScope().addExternal(envObject_52, data);
|
|
3999
|
+
if (finalize_cb) {
|
|
4000
|
+
emnapiCtx.createReference(envObject_52, externalHandle_1.id, 0, 0 /* Ownership.kRuntime */, finalize_cb, data, finalize_hint);
|
|
4001
|
+
}
|
|
4002
|
+
{{{ from64("result") }}};
|
|
4003
|
+
value = externalHandle_1.id;
|
|
4004
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4005
|
+
return envObject_52.clearLastError();
|
|
4006
|
+
}
|
|
4007
|
+
catch (err_53) {
|
|
4008
|
+
envObject_52.tryCatch.setError(err_53);
|
|
4009
|
+
return envObject_52.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4010
|
+
}
|
|
4011
|
+
}
|
|
4012
|
+
function napi_create_external_arraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result
|
|
4013
|
+
// @ts-expect-error
|
|
4014
|
+
) {
|
|
4015
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4016
|
+
var value;
|
|
4017
|
+
if (env == 0)
|
|
4018
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4019
|
+
var envObject_53 = emnapiCtx.envStore
|
|
4020
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4021
|
+
.
|
|
4022
|
+
get(env);
|
|
4023
|
+
if (envObject_53.tryCatch.hasCaught())
|
|
4024
|
+
return envObject_53.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4025
|
+
envObject_53.clearLastError();
|
|
4026
|
+
try {
|
|
4027
|
+
if (result == 0)
|
|
4028
|
+
return envObject_53.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4029
|
+
{{{ from64("byte_length") }}};
|
|
4030
|
+
{{{ from64("external_data") }}};
|
|
4031
|
+
{{{ from64("result") }}};
|
|
4032
|
+
byte_length = byte_length >>> 0;
|
|
4033
|
+
if (!external_data) {
|
|
4034
|
+
byte_length = 0;
|
|
4035
|
+
}
|
|
4036
|
+
if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
|
|
4037
|
+
throw new RangeError("Memory out of range");
|
|
4038
|
+
}
|
|
4039
|
+
if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
|
|
4040
|
+
throw emnapiCtx.createNotSupportWeakRefError("napi_create_external_arraybuffer", "Parameter \"finalize_cb\" must be 0(NULL)");
|
|
4041
|
+
}
|
|
4042
|
+
var arrayBuffer_2 = new ArrayBuffer(byte_length);
|
|
4043
|
+
if (byte_length === 0) {
|
|
4044
|
+
var messageChannel_1 = new MessageChannel();
|
|
4045
|
+
messageChannel_1.port1.postMessage(arrayBuffer_2, [arrayBuffer_2]);
|
|
4046
|
+
}
|
|
4047
|
+
else {
|
|
4048
|
+
var u8arr_1 = new Uint8Array(arrayBuffer_2);
|
|
4049
|
+
u8arr_1.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
|
|
4050
|
+
emnapiExternalMemory.table.set(arrayBuffer_2, {
|
|
4051
|
+
address: external_data,
|
|
4052
|
+
ownership: 1 /* Ownership.kUserland */,
|
|
4053
|
+
runtimeAllocated: 0
|
|
4054
|
+
});
|
|
4055
|
+
}
|
|
4056
|
+
var handle_10 = emnapiCtx.addToCurrentScope(arrayBuffer_2);
|
|
4057
|
+
if (finalize_cb) {
|
|
4058
|
+
var status_2 = _napi_add_finalizer(env, handle_10.id, external_data, finalize_cb, finalize_hint, 0);
|
|
4059
|
+
if (status_2 === 10 /* napi_status.napi_pending_exception */) {
|
|
4060
|
+
var err_54 = envObject_53.tryCatch.extractException();
|
|
4061
|
+
envObject_53.clearLastError();
|
|
4062
|
+
throw err_54;
|
|
4063
|
+
}
|
|
4064
|
+
else if (status_2 !== 0 /* napi_status.napi_ok */) {
|
|
4065
|
+
return envObject_53.setLastError(status_2);
|
|
4066
|
+
}
|
|
4067
|
+
}
|
|
4068
|
+
value = handle_10.id;
|
|
4069
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4070
|
+
return envObject_53.getReturnStatus();
|
|
4071
|
+
}
|
|
4072
|
+
catch (err_55) {
|
|
4073
|
+
envObject_53.tryCatch.setError(err_55);
|
|
4074
|
+
return envObject_53.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4075
|
+
}
|
|
4076
|
+
}
|
|
4077
|
+
function napi_create_object(env, result) {
|
|
4078
|
+
if (env == 0)
|
|
4079
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4080
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4081
|
+
if (result == 0)
|
|
4082
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4083
|
+
{{{ from64('result') }}};
|
|
4084
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4085
|
+
var value = emnapiCtx.addToCurrentScope({}).id;
|
|
4086
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4087
|
+
return envObject.clearLastError();
|
|
4088
|
+
}
|
|
4089
|
+
function napi_create_symbol(env, description, result) {
|
|
4090
|
+
if (env == 0)
|
|
4091
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4092
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4093
|
+
if (result == 0)
|
|
4094
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4095
|
+
{{{ from64('result') }}};
|
|
4096
|
+
if (!description) {
|
|
4097
|
+
// eslint-disable-next-line symbol-description, @typescript-eslint/no-unused-vars
|
|
4098
|
+
var value = emnapiCtx.addToCurrentScope(Symbol()).id;
|
|
4099
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4100
|
+
}
|
|
4101
|
+
else {
|
|
4102
|
+
var handle = emnapiCtx.handleStore.get(description);
|
|
4103
|
+
var desc = handle.value;
|
|
4104
|
+
if (typeof desc !== 'string') {
|
|
4105
|
+
return envObject.setLastError(3 /* napi_status.napi_string_expected */);
|
|
4106
|
+
}
|
|
4107
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4108
|
+
var v = emnapiCtx.addToCurrentScope(Symbol(desc)).id;
|
|
4109
|
+
{{{ makeSetValue('result', 0, 'v', '*') }}};
|
|
4110
|
+
}
|
|
4111
|
+
return envObject.clearLastError();
|
|
4112
|
+
}
|
|
4113
|
+
function napi_create_typedarray(env, type, length, arraybuffer, byte_offset, result
|
|
4114
|
+
// @ts-expect-error
|
|
4115
|
+
) {
|
|
4116
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4117
|
+
var value;
|
|
4118
|
+
if (env == 0)
|
|
4119
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4120
|
+
var envObject_54 = emnapiCtx.envStore
|
|
4121
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4122
|
+
.
|
|
4123
|
+
get(env);
|
|
4124
|
+
if (envObject_54.tryCatch.hasCaught())
|
|
4125
|
+
return envObject_54.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4126
|
+
envObject_54.clearLastError();
|
|
4127
|
+
try {
|
|
4128
|
+
if (arraybuffer == 0)
|
|
4129
|
+
return envObject_54.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4130
|
+
if (result == 0)
|
|
4131
|
+
return envObject_54.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4132
|
+
var handle_11 = emnapiCtx.handleStore.get(arraybuffer);
|
|
4133
|
+
var buffer_1 = handle_11.value;
|
|
4134
|
+
if (!(buffer_1 instanceof ArrayBuffer)) {
|
|
4135
|
+
return envObject_54.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4136
|
+
}
|
|
4137
|
+
{{{ from64("byte_offset") }}};
|
|
4138
|
+
{{{ from64("length") }}};
|
|
4139
|
+
var createTypedArray_1 = function (envObject_54, Type, size_of_element, buffer_1, byte_offset, length) {
|
|
4140
|
+
var _a;
|
|
4141
|
+
byte_offset = byte_offset >>> 0;
|
|
4142
|
+
length = length >>> 0;
|
|
4143
|
+
if (size_of_element > 1) {
|
|
4144
|
+
if ((byte_offset) % (size_of_element) !== 0) {
|
|
4145
|
+
var err_57 = new RangeError("start offset of ".concat((_a = Type.name) !== null && _a !== void 0 ? _a : "", " should be a multiple of ").concat(size_of_element));
|
|
4146
|
+
err_57.code = "ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT";
|
|
4147
|
+
envObject_54.tryCatch.setError(err_57);
|
|
4148
|
+
return envObject_54.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
4149
|
+
}
|
|
4150
|
+
}
|
|
4151
|
+
if (((length * size_of_element) + byte_offset) > buffer_1.byteLength) {
|
|
4152
|
+
var err_58 = new RangeError("Invalid typed array length");
|
|
4153
|
+
err_58.code = "ERR_NAPI_INVALID_TYPEDARRAY_LENGTH";
|
|
4154
|
+
envObject_54.tryCatch.setError(err_58);
|
|
4155
|
+
return envObject_54.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
4156
|
+
}
|
|
4157
|
+
var out_1 = new Type(buffer_1, byte_offset, length);
|
|
4158
|
+
if (buffer_1 === wasmMemory.buffer) {
|
|
4159
|
+
if (!emnapiExternalMemory.wasmMemoryViewTable.has(out_1)) {
|
|
4160
|
+
emnapiExternalMemory.wasmMemoryViewTable.set(out_1, {
|
|
4161
|
+
Ctor: Type,
|
|
4162
|
+
address: byte_offset,
|
|
4163
|
+
length: length,
|
|
4164
|
+
ownership: 1 /* Ownership.kUserland */,
|
|
4165
|
+
runtimeAllocated: 0
|
|
4166
|
+
});
|
|
4167
|
+
}
|
|
4168
|
+
}
|
|
4169
|
+
{{{ from64("result") }}};
|
|
4170
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4171
|
+
value = emnapiCtx.addToCurrentScope(out_1).id;
|
|
4172
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4173
|
+
return envObject_54.getReturnStatus();
|
|
4174
|
+
};
|
|
4175
|
+
switch (type) {
|
|
4176
|
+
case 0 /* napi_typedarray_type.napi_int8_array */:
|
|
4177
|
+
return createTypedArray_1(envObject_54, Int8Array, 1, buffer_1, byte_offset, length);
|
|
4178
|
+
case 1 /* napi_typedarray_type.napi_uint8_array */:
|
|
4179
|
+
return createTypedArray_1(envObject_54, Uint8Array, 1, buffer_1, byte_offset, length);
|
|
4180
|
+
case 2 /* napi_typedarray_type.napi_uint8_clamped_array */:
|
|
4181
|
+
return createTypedArray_1(envObject_54, Uint8ClampedArray, 1, buffer_1, byte_offset, length);
|
|
4182
|
+
case 3 /* napi_typedarray_type.napi_int16_array */:
|
|
4183
|
+
return createTypedArray_1(envObject_54, Int16Array, 2, buffer_1, byte_offset, length);
|
|
4184
|
+
case 4 /* napi_typedarray_type.napi_uint16_array */:
|
|
4185
|
+
return createTypedArray_1(envObject_54, Uint16Array, 2, buffer_1, byte_offset, length);
|
|
4186
|
+
case 5 /* napi_typedarray_type.napi_int32_array */:
|
|
4187
|
+
return createTypedArray_1(envObject_54, Int32Array, 4, buffer_1, byte_offset, length);
|
|
4188
|
+
case 6 /* napi_typedarray_type.napi_uint32_array */:
|
|
4189
|
+
return createTypedArray_1(envObject_54, Uint32Array, 4, buffer_1, byte_offset, length);
|
|
4190
|
+
case 7 /* napi_typedarray_type.napi_float32_array */:
|
|
4191
|
+
return createTypedArray_1(envObject_54, Float32Array, 4, buffer_1, byte_offset, length);
|
|
4192
|
+
case 8 /* napi_typedarray_type.napi_float64_array */:
|
|
4193
|
+
return createTypedArray_1(envObject_54, Float64Array, 8, buffer_1, byte_offset, length);
|
|
4194
|
+
case 9 /* napi_typedarray_type.napi_bigint64_array */:
|
|
4195
|
+
return createTypedArray_1(envObject_54, BigInt64Array, 8, buffer_1, byte_offset, length);
|
|
4196
|
+
case 10 /* napi_typedarray_type.napi_biguint64_array */:
|
|
4197
|
+
return createTypedArray_1(envObject_54, BigUint64Array, 8, buffer_1, byte_offset, length);
|
|
4198
|
+
default:
|
|
4199
|
+
return envObject_54.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4200
|
+
}
|
|
4201
|
+
return null;
|
|
4202
|
+
}
|
|
4203
|
+
catch (err_56) {
|
|
4204
|
+
envObject_54.tryCatch.setError(err_56);
|
|
4205
|
+
return envObject_54.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4206
|
+
}
|
|
4207
|
+
}
|
|
4208
|
+
function napi_create_buffer(env, size, data, result
|
|
4209
|
+
// @ts-expect-error
|
|
4210
|
+
) {
|
|
4211
|
+
var _a;
|
|
4212
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4213
|
+
var value, pointer;
|
|
4214
|
+
if (env == 0)
|
|
4215
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4216
|
+
var envObject_55 = emnapiCtx.envStore
|
|
4217
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4218
|
+
.
|
|
4219
|
+
get(env);
|
|
4220
|
+
if (envObject_55.tryCatch.hasCaught())
|
|
4221
|
+
return envObject_55.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4222
|
+
envObject_55.clearLastError();
|
|
4223
|
+
try {
|
|
4224
|
+
if (result == 0)
|
|
4225
|
+
return envObject_55.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4226
|
+
{{{ from64("result") }}};
|
|
4227
|
+
var Buffer_1 = emnapiCtx.feature.Buffer;
|
|
4228
|
+
var buffer_2 = void 0;
|
|
4229
|
+
{{{ from64("size") }}};
|
|
4230
|
+
size = size >>> 0;
|
|
4231
|
+
if (!data || (size === 0)) {
|
|
4232
|
+
buffer_2 = Buffer_1.alloc(size);
|
|
4233
|
+
value = emnapiCtx.addToCurrentScope(buffer_2).id;
|
|
4234
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4235
|
+
}
|
|
4236
|
+
else {
|
|
4237
|
+
pointer = {{{ makeMalloc("napi_create_buffer", "size") }}};
|
|
4238
|
+
if (!pointer)
|
|
4239
|
+
throw new Error("Out of memory");
|
|
4240
|
+
new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
|
|
4241
|
+
var buffer_3 = Buffer_1.from(wasmMemory.buffer, pointer, size);
|
|
4242
|
+
var viewDescriptor_2 = {
|
|
4243
|
+
Ctor: Buffer_1,
|
|
4244
|
+
address: pointer,
|
|
4245
|
+
length: size,
|
|
4246
|
+
ownership: emnapiExternalMemory.registry ? 0 /* Ownership.kRuntime */ : 1 /* Ownership.kUserland */,
|
|
4247
|
+
runtimeAllocated: 1
|
|
4248
|
+
};
|
|
4249
|
+
emnapiExternalMemory.wasmMemoryViewTable.set(buffer_3, viewDescriptor_2);
|
|
4250
|
+
(_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor_2, pointer);
|
|
4251
|
+
value = emnapiCtx.addToCurrentScope(buffer_3).id;
|
|
4252
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4253
|
+
{{{ from64("data") }}};
|
|
4254
|
+
{{{ makeSetValue("data", 0, "pointer", "*") }}};
|
|
4255
|
+
}
|
|
4256
|
+
return envObject_55.getReturnStatus();
|
|
4257
|
+
}
|
|
4258
|
+
catch (err_59) {
|
|
4259
|
+
envObject_55.tryCatch.setError(err_59);
|
|
4260
|
+
return envObject_55.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4261
|
+
}
|
|
4262
|
+
}
|
|
4263
|
+
function napi_create_buffer_copy(env, length, data, result_data, result
|
|
4264
|
+
// @ts-expect-error
|
|
4265
|
+
) {
|
|
4266
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4267
|
+
var value;
|
|
4268
|
+
if (env == 0)
|
|
4269
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4270
|
+
var envObject_56 = emnapiCtx.envStore
|
|
4271
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4272
|
+
.
|
|
4273
|
+
get(env);
|
|
4274
|
+
if (envObject_56.tryCatch.hasCaught())
|
|
4275
|
+
return envObject_56.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4276
|
+
envObject_56.clearLastError();
|
|
4277
|
+
try {
|
|
4278
|
+
if (result == 0)
|
|
4279
|
+
return envObject_56.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4280
|
+
var arrayBuffer_3 = emnapiCreateArrayBuffer(length, result_data);
|
|
4281
|
+
var Buffer_2 = emnapiCtx.feature.Buffer;
|
|
4282
|
+
var buffer_4 = Buffer_2.from(arrayBuffer_3);
|
|
4283
|
+
{{{ from64("data") }}};
|
|
4284
|
+
{{{ from64("length") }}};
|
|
4285
|
+
buffer_4.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
|
|
4286
|
+
value = emnapiCtx.addToCurrentScope(buffer_4).id;
|
|
4287
|
+
{{{ from64("result") }}};
|
|
4288
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4289
|
+
return envObject_56.getReturnStatus();
|
|
4290
|
+
}
|
|
4291
|
+
catch (err_60) {
|
|
4292
|
+
envObject_56.tryCatch.setError(err_60);
|
|
4293
|
+
return envObject_56.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4294
|
+
}
|
|
4295
|
+
}
|
|
4296
|
+
function napi_create_external_buffer(env, length, data, finalize_cb, finalize_hint, result) {
|
|
4297
|
+
return _emnapi_create_memory_view(env, -2 /* emnapi_memory_view_type.emnapi_buffer */, data, length, finalize_cb, finalize_hint, result);
|
|
4298
|
+
}
|
|
4299
|
+
function napi_create_dataview(env, byte_length, arraybuffer, byte_offset, result
|
|
4300
|
+
// @ts-expect-error
|
|
4301
|
+
) {
|
|
4302
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4303
|
+
var value;
|
|
4304
|
+
if (env == 0)
|
|
4305
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4306
|
+
var envObject_57 = emnapiCtx.envStore
|
|
4307
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4308
|
+
.
|
|
4309
|
+
get(env);
|
|
4310
|
+
if (envObject_57.tryCatch.hasCaught())
|
|
4311
|
+
return envObject_57.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4312
|
+
envObject_57.clearLastError();
|
|
4313
|
+
try {
|
|
4314
|
+
if (arraybuffer == 0)
|
|
4315
|
+
return envObject_57.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4316
|
+
if (result == 0)
|
|
4317
|
+
return envObject_57.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4318
|
+
{{{ from64("byte_length") }}};
|
|
4319
|
+
{{{ from64("byte_offset") }}};
|
|
4320
|
+
byte_length = byte_length >>> 0;
|
|
4321
|
+
byte_offset = byte_offset >>> 0;
|
|
4322
|
+
var handle_12 = emnapiCtx.handleStore.get(arraybuffer);
|
|
4323
|
+
var buffer_5 = handle_12.value;
|
|
4324
|
+
if (!(buffer_5 instanceof ArrayBuffer)) {
|
|
4325
|
+
return envObject_57.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4326
|
+
}
|
|
4327
|
+
if ((byte_length + byte_offset) > buffer_5.byteLength) {
|
|
4328
|
+
var err_61 = new RangeError("byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in");
|
|
4329
|
+
err_61.code = "ERR_NAPI_INVALID_DATAVIEW_ARGS";
|
|
4330
|
+
envObject_57.tryCatch.setError(err_61);
|
|
4331
|
+
return envObject_57.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4332
|
+
}
|
|
4333
|
+
var dataview_1 = new DataView(buffer_5, byte_offset, byte_length);
|
|
4334
|
+
if (buffer_5 === wasmMemory.buffer) {
|
|
4335
|
+
if (!emnapiExternalMemory.wasmMemoryViewTable.has(dataview_1)) {
|
|
4336
|
+
emnapiExternalMemory.wasmMemoryViewTable.set(dataview_1, {
|
|
4337
|
+
Ctor: DataView,
|
|
4338
|
+
address: byte_offset,
|
|
4339
|
+
length: byte_length,
|
|
4340
|
+
ownership: 1 /* Ownership.kUserland */,
|
|
4341
|
+
runtimeAllocated: 0
|
|
4342
|
+
});
|
|
4343
|
+
}
|
|
4344
|
+
}
|
|
4345
|
+
{{{ from64("result") }}};
|
|
4346
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4347
|
+
value = emnapiCtx.addToCurrentScope(dataview_1).id;
|
|
4348
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4349
|
+
return envObject_57.getReturnStatus();
|
|
4350
|
+
}
|
|
4351
|
+
catch (err_62) {
|
|
4352
|
+
envObject_57.tryCatch.setError(err_62);
|
|
4353
|
+
return envObject_57.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4354
|
+
}
|
|
4355
|
+
}
|
|
4356
|
+
function node_api_symbol_for(env, utf8description, length, result) {
|
|
4357
|
+
if (env == 0)
|
|
4358
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4359
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4360
|
+
if (result == 0)
|
|
4361
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4362
|
+
{{{ from64('length') }}};
|
|
4363
|
+
{{{ from64('utf8description') }}};
|
|
4364
|
+
{{{ from64('result') }}};
|
|
4365
|
+
if (((length < -1) || (length > 2147483647)) || (!utf8description)) {
|
|
4366
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4367
|
+
}
|
|
4368
|
+
var descriptionString = emnapiUtf8ToString(utf8description, length);
|
|
4369
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4370
|
+
var value = emnapiCtx.addToCurrentScope(Symbol.for(descriptionString)).id;
|
|
4371
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4372
|
+
return envObject.clearLastError();
|
|
4373
|
+
}
|
|
4374
|
+
emnapiImplementHelper('$emnapiCreateArrayBuffer', undefined, emnapiCreateArrayBuffer, ['$emnapiExternalMemory']);
|
|
4375
|
+
emnapiImplement('napi_create_array', 'ipp', napi_create_array);
|
|
4376
|
+
emnapiImplement('napi_create_array_with_length', 'ippp', napi_create_array_with_length);
|
|
4377
|
+
emnapiImplement('napi_create_arraybuffer', 'ipppp', napi_create_arraybuffer, ['$emnapiCreateArrayBuffer']);
|
|
4378
|
+
emnapiImplement('napi_create_buffer', 'ippp', napi_create_buffer, ['$emnapiExternalMemory', 'malloc']);
|
|
4379
|
+
emnapiImplement('napi_create_buffer_copy', 'ippppp', napi_create_buffer_copy, ['$emnapiCreateArrayBuffer']);
|
|
4380
|
+
emnapiImplement('napi_create_date', 'ipdp', napi_create_date);
|
|
4381
|
+
emnapiImplement('napi_create_external', 'ippppp', napi_create_external);
|
|
4382
|
+
emnapiImplement('napi_create_external_arraybuffer', 'ipppppp', napi_create_external_arraybuffer, ['napi_add_finalizer']);
|
|
4383
|
+
emnapiImplement('napi_create_external_buffer', 'ipppppp', napi_create_external_buffer, ['emnapi_create_memory_view']);
|
|
4384
|
+
emnapiImplement('napi_create_object', 'ipp', napi_create_object);
|
|
4385
|
+
emnapiImplement('napi_create_symbol', 'ippp', napi_create_symbol);
|
|
4386
|
+
emnapiImplement('napi_create_typedarray', 'ipipppp', napi_create_typedarray, ['$emnapiExternalMemory']);
|
|
4387
|
+
emnapiImplement('napi_create_dataview', 'ippppp', napi_create_dataview, ['$emnapiExternalMemory']);
|
|
4388
|
+
emnapiImplement('node_api_symbol_for', 'ipppp', node_api_symbol_for, ['$emnapiUtf8ToString']);
|
|
4389
|
+
function napi_get_boolean(env, value, result) {
|
|
4390
|
+
if (env == 0)
|
|
4391
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4392
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4393
|
+
if (result == 0)
|
|
4394
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4395
|
+
{{{ from64('result') }}};
|
|
4396
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4397
|
+
var v = value === 0 ? 3 /* GlobalHandle.FALSE */ : 4 /* GlobalHandle.TRUE */;
|
|
4398
|
+
{{{ makeSetValue('result', 0, 'v', '*') }}};
|
|
4399
|
+
return envObject.clearLastError();
|
|
4400
|
+
}
|
|
4401
|
+
function napi_get_global(env, result) {
|
|
4402
|
+
if (env == 0)
|
|
4403
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4404
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4405
|
+
if (result == 0)
|
|
4406
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4407
|
+
{{{ from64('result') }}};
|
|
4408
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4409
|
+
var value = 5 /* GlobalHandle.GLOBAL */;
|
|
4410
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4411
|
+
return envObject.clearLastError();
|
|
4412
|
+
}
|
|
4413
|
+
function napi_get_null(env, result) {
|
|
4414
|
+
if (env == 0)
|
|
4415
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4416
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4417
|
+
if (result == 0)
|
|
4418
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4419
|
+
{{{ from64('result') }}};
|
|
4420
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4421
|
+
var value = 2 /* GlobalHandle.NULL */;
|
|
4422
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4423
|
+
return envObject.clearLastError();
|
|
4424
|
+
}
|
|
4425
|
+
function napi_get_undefined(env, result) {
|
|
4426
|
+
if (env == 0)
|
|
4427
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4428
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4429
|
+
if (result == 0)
|
|
4430
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4431
|
+
{{{ from64('result') }}};
|
|
4432
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4433
|
+
var value = 1 /* GlobalHandle.UNDEFINED */;
|
|
4434
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4435
|
+
return envObject.clearLastError();
|
|
4436
|
+
}
|
|
4437
|
+
emnapiImplement('napi_get_boolean', 'ipip', napi_get_boolean);
|
|
4438
|
+
emnapiImplement('napi_get_global', 'ipp', napi_get_global);
|
|
4439
|
+
emnapiImplement('napi_get_null', 'ipp', napi_get_null);
|
|
4440
|
+
emnapiImplement('napi_get_undefined', 'ipp', napi_get_undefined);
|
|
4441
|
+
mergeInto(LibraryManager.library, {
|
|
4442
|
+
_emnapi_worker_unref__sig: 'vp',
|
|
4443
|
+
_emnapi_worker_unref__deps: ['$PThread'],
|
|
4444
|
+
_emnapi_worker_unref: function (pid) {
|
|
4445
|
+
var worker = PThread.pthreads[pid];
|
|
4446
|
+
worker = worker.worker || worker;
|
|
4447
|
+
if (typeof worker.unref === 'function') {
|
|
4448
|
+
worker.unref();
|
|
4449
|
+
}
|
|
4450
|
+
},
|
|
4451
|
+
// if EMNAPI_USE_PROXYING=1 (default is 1 if emscripten version >= 3.1.9),
|
|
4452
|
+
// the following helpers won't be linked into runtime code
|
|
4453
|
+
$emnapiAddSendListener__deps: ['$PThread'],
|
|
4454
|
+
$emnapiAddSendListener__postset: 'PThread.unusedWorkers.forEach(emnapiAddSendListener);' +
|
|
4455
|
+
'PThread.runningWorkers.forEach(emnapiAddSendListener);' +
|
|
4456
|
+
'(function () { var __original_getNewWorker = PThread.getNewWorker; PThread.getNewWorker = function () {' +
|
|
4457
|
+
'var r = __original_getNewWorker.apply(this, arguments);' +
|
|
4458
|
+
'emnapiAddSendListener(r);' +
|
|
4459
|
+
'return r;' +
|
|
4460
|
+
'}; })();',
|
|
4461
|
+
$emnapiAddSendListener: function (worker) {
|
|
4462
|
+
if (worker && !worker._emnapiSendListener) {
|
|
4463
|
+
worker._emnapiSendListener = function _emnapiSendListener(e) {
|
|
4464
|
+
var data = ENVIRONMENT_IS_NODE ? e : e.data;
|
|
4465
|
+
if (data.emnapiAsyncSend) {
|
|
4466
|
+
if (ENVIRONMENT_IS_PTHREAD) {
|
|
4467
|
+
postMessage({
|
|
4468
|
+
emnapiAsyncSend: data.emnapiAsyncSend
|
|
4469
|
+
});
|
|
4470
|
+
}
|
|
4471
|
+
else {
|
|
4472
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4473
|
+
var callback = data.emnapiAsyncSend.callback;
|
|
4474
|
+
{{{ makeDynCall('vp', 'callback') }}}(data.emnapiAsyncSend.data);
|
|
4475
|
+
}
|
|
4476
|
+
}
|
|
4477
|
+
};
|
|
4478
|
+
if (ENVIRONMENT_IS_NODE) {
|
|
4479
|
+
worker.on('message', worker._emnapiSendListener);
|
|
4480
|
+
}
|
|
4481
|
+
else {
|
|
4482
|
+
worker.addEventListener('message', worker._emnapiSendListener, false);
|
|
4483
|
+
}
|
|
4484
|
+
}
|
|
4485
|
+
},
|
|
4486
|
+
_emnapi_async_send_js__sig: 'vipp',
|
|
4487
|
+
_emnapi_async_send_js__deps: [
|
|
4488
|
+
'$emnapiAddSendListener',
|
|
4489
|
+
'_emnapi_set_immediate',
|
|
4490
|
+
'_emnapi_next_tick'
|
|
4491
|
+
],
|
|
4492
|
+
_emnapi_async_send_js: function (type, callback, data) {
|
|
4493
|
+
if (ENVIRONMENT_IS_PTHREAD) {
|
|
4494
|
+
postMessage({
|
|
4495
|
+
emnapiAsyncSend: {
|
|
4496
|
+
callback: callback,
|
|
4497
|
+
data: data
|
|
4498
|
+
}
|
|
4499
|
+
});
|
|
4500
|
+
}
|
|
4501
|
+
else {
|
|
4502
|
+
switch (type) {
|
|
4503
|
+
case 0:
|
|
4504
|
+
__emnapi_set_immediate(callback, data);
|
|
4505
|
+
break;
|
|
4506
|
+
case 1:
|
|
4507
|
+
__emnapi_next_tick(callback, data);
|
|
4508
|
+
break;
|
|
4509
|
+
default: break;
|
|
4510
|
+
}
|
|
4511
|
+
}
|
|
4512
|
+
}
|
|
4513
|
+
});
|
|
4514
|
+
// @ts-expect-error
|
|
4515
|
+
function emnapi_get_module_object(env, result) {
|
|
4516
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4517
|
+
var value;
|
|
4518
|
+
if (env == 0)
|
|
4519
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4520
|
+
var envObject_58 = emnapiCtx.envStore.get(env);
|
|
4521
|
+
if (envObject_58.tryCatch
|
|
4522
|
+
.hasCaught())
|
|
4523
|
+
return envObject_58.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4524
|
+
envObject_58.clearLastError();
|
|
4525
|
+
try {
|
|
4526
|
+
if (result == 0)
|
|
4527
|
+
return envObject_58.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4528
|
+
{{{ from64("result") }}};
|
|
4529
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4530
|
+
value = envObject_58.ensureHandleId(Module);
|
|
4531
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4532
|
+
return envObject_58.getReturnStatus();
|
|
4533
|
+
}
|
|
4534
|
+
catch (err_63) {
|
|
4535
|
+
envObject_58.tryCatch.setError(err_63);
|
|
4536
|
+
return envObject_58.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4537
|
+
}
|
|
4538
|
+
}
|
|
4539
|
+
// @ts-expect-error
|
|
4540
|
+
function emnapi_get_module_property(env, utf8name, result) {
|
|
4541
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4542
|
+
var value;
|
|
4543
|
+
if (env == 0)
|
|
4544
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4545
|
+
var envObject_59 = emnapiCtx.envStore.get(env);
|
|
4546
|
+
if (envObject_59.tryCatch
|
|
4547
|
+
.hasCaught())
|
|
4548
|
+
return envObject_59.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4549
|
+
envObject_59.clearLastError();
|
|
4550
|
+
try {
|
|
4551
|
+
if (utf8name == 0)
|
|
4552
|
+
return envObject_59.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4553
|
+
if (result == 0)
|
|
4554
|
+
return envObject_59.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4555
|
+
{{{ from64("utf8name") }}};
|
|
4556
|
+
{{{ from64("result") }}};
|
|
4557
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4558
|
+
value = envObject_59.ensureHandleId(Module[UTF8ToString(utf8name)]);
|
|
4559
|
+
{{{ makeSetValue("result", 0, "value", "*") }}};
|
|
4560
|
+
return envObject_59.getReturnStatus();
|
|
4561
|
+
}
|
|
4562
|
+
catch (err_64) {
|
|
4563
|
+
envObject_59.tryCatch.setError(err_64);
|
|
4564
|
+
return envObject_59.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4565
|
+
}
|
|
4566
|
+
}
|
|
4567
|
+
emnapiImplement2('emnapi_get_module_object', 'ipp', emnapi_get_module_object);
|
|
4568
|
+
emnapiImplement2('emnapi_get_module_property', 'ippp', emnapi_get_module_property);
|
|
4569
|
+
emnapiDefineVar('$emnapiCtx', undefined);
|
|
4570
|
+
emnapiDefineVar('$emnapiNodeBinding', undefined);
|
|
4571
|
+
emnapiDefineVar('$emnapiModule', {
|
|
4572
|
+
exports: {},
|
|
4573
|
+
loaded: false,
|
|
4574
|
+
filename: ''
|
|
4575
|
+
});
|
|
4576
|
+
function emnapiInit(options) {
|
|
4577
|
+
if (emnapiModule.loaded)
|
|
4578
|
+
return emnapiModule.exports;
|
|
4579
|
+
if (typeof options !== 'object' || options === null) {
|
|
4580
|
+
throw new TypeError('Invalid emnapi init option');
|
|
4581
|
+
}
|
|
4582
|
+
var context = options.context;
|
|
4583
|
+
if (typeof context !== 'object' || context === null) {
|
|
4584
|
+
throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");
|
|
4585
|
+
}
|
|
4586
|
+
emnapiCtx = context;
|
|
4587
|
+
if (typeof options.filename === 'string') {
|
|
4588
|
+
emnapiModule.filename = options.filename;
|
|
4589
|
+
}
|
|
4590
|
+
if ('nodeBinding' in options) {
|
|
4591
|
+
var nodeBinding = options.nodeBinding;
|
|
4592
|
+
if (typeof nodeBinding !== 'object' || nodeBinding === null) {
|
|
4593
|
+
throw new TypeError('Invalid `options.nodeBinding`. Use @emnapi/node-binding package');
|
|
4594
|
+
}
|
|
4595
|
+
emnapiNodeBinding = nodeBinding;
|
|
4596
|
+
}
|
|
4597
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
4598
|
+
var envObject = emnapiModule.envObject || (emnapiModule.envObject = emnapiCtx.createEnv(function (cb) { return {{{ makeDynCall('vppp', 'cb') }}}; }, function (cb) { return {{{ makeDynCall('vp', 'cb') }}}; }));
|
|
4599
|
+
var scope = emnapiCtx.openScope(envObject);
|
|
4600
|
+
try {
|
|
4601
|
+
envObject.callIntoModule(function (_envObject) {
|
|
4602
|
+
var exports = emnapiModule.exports;
|
|
4603
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4604
|
+
var exportsHandle = scope.add(exports);
|
|
4605
|
+
var napiValue = _napi_register_wasm_v1({{{ to64('_envObject.id') }}}, {{{ to64('exportsHandle.id') }}});
|
|
4606
|
+
emnapiModule.exports = (!napiValue) ? exports : emnapiCtx.handleStore.get(napiValue).value;
|
|
4607
|
+
});
|
|
4608
|
+
}
|
|
4609
|
+
catch (err) {
|
|
4610
|
+
emnapiCtx.closeScope(envObject, scope);
|
|
4611
|
+
throw err;
|
|
4612
|
+
}
|
|
4613
|
+
emnapiCtx.closeScope(envObject, scope);
|
|
4614
|
+
emnapiModule.loaded = true;
|
|
4615
|
+
delete emnapiModule.envObject;
|
|
4616
|
+
return emnapiModule.exports;
|
|
4617
|
+
}
|
|
4618
|
+
emnapiImplementHelper('$emnapiInit', undefined, emnapiInit, ['$emnapiModule', '$emnapiCtx', '$emnapiNodeBinding', 'napi_register_wasm_v1']);
|
|
4619
|
+
function __emnapi_get_filename(buf, len) {
|
|
4620
|
+
if (!buf) {
|
|
4621
|
+
return lengthBytesUTF8(emnapiModule.filename);
|
|
4622
|
+
}
|
|
4623
|
+
return stringToUTF8(emnapiModule.filename, buf, len);
|
|
4624
|
+
}
|
|
4625
|
+
emnapiImplementInternal('_emnapi_get_filename', 'ipi', __emnapi_get_filename);
|
|
4626
|
+
mergeInto(LibraryManager.library, {
|
|
4627
|
+
$emnapiUtf8Decoder__postset: 'emnapiUtf8Decoder();',
|
|
4628
|
+
$emnapiUtf8Decoder: function () {
|
|
4629
|
+
#if !TEXTDECODER || TEXTDECODER == 1
|
|
4630
|
+
var fallbackDecoder = {
|
|
4631
|
+
decode: function (input) {
|
|
4632
|
+
var isArrayBuffer = input instanceof ArrayBuffer;
|
|
4633
|
+
var isView = ArrayBuffer.isView(input);
|
|
4634
|
+
if (!isArrayBuffer && !isView) {
|
|
4635
|
+
throw new TypeError('The "input" argument must be an instance of ArrayBuffer or ArrayBufferView');
|
|
4636
|
+
}
|
|
4637
|
+
var bytes = isArrayBuffer ? new Uint8Array(input) : new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
|
|
4638
|
+
var inputIndex = 0;
|
|
4639
|
+
var pendingSize = Math.min(256 * 256, bytes.length + 1);
|
|
4640
|
+
var pending = new Uint16Array(pendingSize);
|
|
4641
|
+
var chunks = [];
|
|
4642
|
+
var pendingIndex = 0;
|
|
4643
|
+
for (;;) {
|
|
4644
|
+
var more = inputIndex < bytes.length;
|
|
4645
|
+
if (!more || (pendingIndex >= pendingSize - 1)) {
|
|
4646
|
+
var subarray = pending.subarray(0, pendingIndex);
|
|
4647
|
+
var arraylike = subarray;
|
|
4648
|
+
chunks.push(String.fromCharCode.apply(null, arraylike));
|
|
4649
|
+
if (!more) {
|
|
4650
|
+
return chunks.join('');
|
|
4651
|
+
}
|
|
4652
|
+
bytes = bytes.subarray(inputIndex);
|
|
4653
|
+
inputIndex = 0;
|
|
4654
|
+
pendingIndex = 0;
|
|
4655
|
+
}
|
|
4656
|
+
var byte1 = bytes[inputIndex++];
|
|
4657
|
+
if ((byte1 & 0x80) === 0) {
|
|
4658
|
+
pending[pendingIndex++] = byte1;
|
|
4659
|
+
}
|
|
4660
|
+
else if ((byte1 & 0xe0) === 0xc0) {
|
|
4661
|
+
var byte2 = bytes[inputIndex++] & 0x3f;
|
|
4662
|
+
pending[pendingIndex++] = ((byte1 & 0x1f) << 6) | byte2;
|
|
4663
|
+
}
|
|
4664
|
+
else if ((byte1 & 0xf0) === 0xe0) {
|
|
4665
|
+
var byte2 = bytes[inputIndex++] & 0x3f;
|
|
4666
|
+
var byte3 = bytes[inputIndex++] & 0x3f;
|
|
4667
|
+
pending[pendingIndex++] = ((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3;
|
|
4668
|
+
}
|
|
4669
|
+
else if ((byte1 & 0xf8) === 0xf0) {
|
|
4670
|
+
var byte2 = bytes[inputIndex++] & 0x3f;
|
|
4671
|
+
var byte3 = bytes[inputIndex++] & 0x3f;
|
|
4672
|
+
var byte4 = bytes[inputIndex++] & 0x3f;
|
|
4673
|
+
var codepoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;
|
|
4674
|
+
if (codepoint > 0xffff) {
|
|
4675
|
+
codepoint -= 0x10000;
|
|
4676
|
+
pending[pendingIndex++] = (codepoint >>> 10) & 0x3ff | 0xd800;
|
|
4677
|
+
codepoint = 0xdc00 | codepoint & 0x3ff;
|
|
4678
|
+
}
|
|
4679
|
+
pending[pendingIndex++] = codepoint;
|
|
4680
|
+
}
|
|
4681
|
+
else {
|
|
4682
|
+
}
|
|
4683
|
+
}
|
|
4684
|
+
}
|
|
4685
|
+
};
|
|
4686
|
+
#endif
|
|
4687
|
+
var tmp; // typescript bug
|
|
4688
|
+
#if !TEXTDECODER
|
|
4689
|
+
tmp = fallbackDecoder;
|
|
4690
|
+
#elif TEXTDECODER == 1
|
|
4691
|
+
tmp = typeof TextDecoder === 'function' ? new TextDecoder() : fallbackDecoder;
|
|
4692
|
+
#elif TEXTDECODER == 2
|
|
4693
|
+
tmp = new TextDecoder();
|
|
4694
|
+
#endif
|
|
4695
|
+
emnapiUtf8Decoder = tmp;
|
|
4696
|
+
},
|
|
4697
|
+
$emnapiUtf8ToString__deps: ['$emnapiUtf8Decoder'],
|
|
4698
|
+
$emnapiUtf8ToString: function (ptr, length) {
|
|
4699
|
+
// eslint-disable-next-line eqeqeq
|
|
4700
|
+
if (length == -1) {
|
|
4701
|
+
return UTF8ToString(ptr);
|
|
4702
|
+
}
|
|
4703
|
+
length = length >>> 0;
|
|
4704
|
+
return emnapiUtf8Decoder.decode({{{ getUnsharedTextDecoderView('HEAPU8', 'ptr', 'ptr + length') }}});
|
|
4705
|
+
},
|
|
4706
|
+
$emnapiUtf16leDecoder__postset: 'emnapiUtf16leDecoder();',
|
|
4707
|
+
$emnapiUtf16leDecoder: function () {
|
|
4708
|
+
#if !TEXTDECODER || TEXTDECODER == 1
|
|
4709
|
+
var fallbackDecoder = {
|
|
4710
|
+
decode: function (input) {
|
|
4711
|
+
var isArrayBuffer = input instanceof ArrayBuffer;
|
|
4712
|
+
var isView = ArrayBuffer.isView(input);
|
|
4713
|
+
if (!isArrayBuffer && !isView) {
|
|
4714
|
+
throw new TypeError('The "input" argument must be an instance of ArrayBuffer or ArrayBufferView');
|
|
4715
|
+
}
|
|
4716
|
+
var bytes = isArrayBuffer ? new Uint16Array(input) : new Uint16Array(input.buffer, input.byteOffset, input.byteLength / 2);
|
|
4717
|
+
var wcharArray = Array(bytes.length);
|
|
4718
|
+
for (var i = 0; i < bytes.length; ++i) {
|
|
4719
|
+
wcharArray[i] = String.fromCharCode(bytes[i]);
|
|
4720
|
+
}
|
|
4721
|
+
return wcharArray.join('');
|
|
4722
|
+
}
|
|
4723
|
+
};
|
|
4724
|
+
#endif
|
|
4725
|
+
var tmp; // typescript bug
|
|
4726
|
+
#if !TEXTDECODER
|
|
4727
|
+
tmp = fallbackDecoder;
|
|
4728
|
+
#elif TEXTDECODER == 1
|
|
4729
|
+
tmp = typeof TextDecoder === 'function' ? new TextDecoder('utf-16le') : fallbackDecoder;
|
|
4730
|
+
#elif TEXTDECODER == 2
|
|
4731
|
+
tmp = new TextDecoder('utf-16le');
|
|
4732
|
+
#endif
|
|
4733
|
+
emnapiUtf16leDecoder = tmp;
|
|
4734
|
+
},
|
|
4735
|
+
$emnapiUtf16ToString__deps: [
|
|
4736
|
+
#if typeof LEGACY_RUNTIME !== 'undefined' && !LEGACY_RUNTIME
|
|
4737
|
+
'$UTF16ToString',
|
|
4738
|
+
#endif
|
|
4739
|
+
'$emnapiUtf16leDecoder'
|
|
4740
|
+
],
|
|
4741
|
+
$emnapiUtf16ToString: function (ptr, length) {
|
|
4742
|
+
// eslint-disable-next-line eqeqeq
|
|
4743
|
+
if (length == -1) {
|
|
4744
|
+
return UTF16ToString(ptr);
|
|
4745
|
+
}
|
|
4746
|
+
length = length >>> 0;
|
|
4747
|
+
return emnapiUtf16leDecoder.decode({{{ getUnsharedTextDecoderView('HEAPU8', 'ptr', 'ptr + length * 2') }}});
|
|
4748
|
+
}
|
|
4749
|
+
});
|
|
4750
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
4751
|
+
function emnapiImplement(name, sig, compilerTimeFunction, deps) {
|
|
4752
|
+
var _a;
|
|
4753
|
+
var sym = (_a = {},
|
|
4754
|
+
_a[name] = compilerTimeFunction,
|
|
4755
|
+
_a[name + '__deps'] = (['$emnapiInit']).concat(deps !== null && deps !== void 0 ? deps : []),
|
|
4756
|
+
_a);
|
|
4757
|
+
if (sig) {
|
|
4758
|
+
sym[name + '__sig'] = sig;
|
|
4759
|
+
}
|
|
4760
|
+
mergeInto(LibraryManager.library, sym);
|
|
4761
|
+
}
|
|
4762
|
+
function emnapiImplement2() {
|
|
4763
|
+
return emnapiImplement.apply(null, arguments);
|
|
4764
|
+
}
|
|
4765
|
+
function emnapiImplementInternal() {
|
|
4766
|
+
return emnapiImplement.apply(null, arguments);
|
|
4767
|
+
}
|
|
4768
|
+
// $emnapi*
|
|
4769
|
+
function emnapiImplementHelper(name, sig, compilerTimeFunction, deps, _exportName) {
|
|
4770
|
+
return emnapiImplement(name, sig, compilerTimeFunction, deps);
|
|
4771
|
+
}
|
|
4772
|
+
function emnapiDefineVar(name, value, deps, postset) {
|
|
4773
|
+
var _a;
|
|
4774
|
+
var obj = (_a = {},
|
|
4775
|
+
_a[name] = value,
|
|
4776
|
+
_a);
|
|
4777
|
+
if (deps) {
|
|
4778
|
+
obj[name + '__deps'] = deps;
|
|
4779
|
+
}
|
|
4780
|
+
if (postset) {
|
|
4781
|
+
obj[name + '__postset'] = postset;
|
|
4782
|
+
}
|
|
4783
|
+
mergeInto(LibraryManager.library, obj);
|
|
4784
|
+
}
|