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.
Files changed (44) hide show
  1. package/CMakeLists.txt +160 -0
  2. package/LICENSE +21 -0
  3. package/README.md +875 -0
  4. package/cmake/wasm32.cmake +32 -0
  5. package/dist/library_napi.js +4784 -0
  6. package/include/common.h +26 -0
  7. package/include/emnapi.h +81 -0
  8. package/include/js_native_api.h +560 -0
  9. package/include/js_native_api_types.h +159 -0
  10. package/include/napi-inl.deprecated.h +186 -0
  11. package/include/napi-inl.h +6299 -0
  12. package/include/napi.h +3127 -0
  13. package/include/node_api.h +226 -0
  14. package/include/node_api_types.h +56 -0
  15. package/include/uv/threadpool.h +41 -0
  16. package/include/uv/unix.h +21 -0
  17. package/include/uv.h +134 -0
  18. package/index.d.ts +4 -0
  19. package/index.js +22 -0
  20. package/lib/wasm32/libdlmalloc.a +0 -0
  21. package/lib/wasm32/libemmalloc.a +0 -0
  22. package/lib/wasm32/libemnapi.a +0 -0
  23. package/lib/wasm32-emscripten/libemnapi-mt.a +0 -0
  24. package/lib/wasm32-emscripten/libemnapi.a +0 -0
  25. package/lib/wasm32-emscripten.txt +5 -0
  26. package/lib/wasm32-wasi/libemnapi.a +0 -0
  27. package/lib/wasm32-wasi.txt +4 -0
  28. package/lib/wasm32.txt +4 -0
  29. package/package.json +43 -0
  30. package/src/emnapi.c +1344 -0
  31. package/src/malloc/dlmalloc/dlmalloc.c +92 -0
  32. package/src/malloc/dlmalloc/malloc.c +6395 -0
  33. package/src/malloc/emmalloc/emmalloc.c +1551 -0
  34. package/src/malloc/memcpy.c +136 -0
  35. package/src/malloc/memset.c +98 -0
  36. package/src/malloc/sbrk.c +29 -0
  37. package/src/uv/queue.h +108 -0
  38. package/src/uv/threadpool.c +408 -0
  39. package/src/uv/unix/async.c +206 -0
  40. package/src/uv/unix/core.c +35 -0
  41. package/src/uv/unix/loop.c +36 -0
  42. package/src/uv/unix/thread.c +118 -0
  43. package/src/uv/uv-common.c +51 -0
  44. 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
+ }