emnapi 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +12 -13
- package/dist/library_napi.js +252 -120
- package/emnapi.gyp +8 -1
- package/include/node/emnapi.h +2 -1
- package/include/node/js_native_api.h +6 -6
- package/include/node/js_native_api_types.h +8 -7
- package/index.d.ts +12 -0
- package/index.js +36 -0
- package/lib/wasm32/libdlmalloc-mt.a +0 -0
- package/lib/wasm32/libdlmalloc.a +0 -0
- package/lib/wasm32/libemmalloc-mt.a +0 -0
- package/lib/wasm32/libemmalloc.a +0 -0
- package/lib/wasm32/libemnapi-basic-mt.a +0 -0
- package/lib/wasm32/libemnapi-basic.a +0 -0
- package/lib/wasm32/libemnapi.a +0 -0
- package/lib/wasm32-emscripten/libemnapi-basic.a +0 -0
- package/lib/wasm32-emscripten/libemnapi-mt.a +0 -0
- package/lib/wasm32-emscripten/libemnapi.a +0 -0
- package/lib/wasm32-wasi/libemnapi-basic-mt.a +0 -0
- package/lib/wasm32-wasi/libemnapi-basic.a +0 -0
- package/lib/wasm32-wasi/libemnapi.a +0 -0
- package/lib/wasm32-wasi-threads/libemnapi-basic-mt.a +0 -0
- package/lib/wasm32-wasi-threads/libemnapi-basic-napi-rs-mt.a +0 -0
- package/lib/wasm32-wasi-threads/libemnapi-basic.a +0 -0
- package/lib/wasm32-wasi-threads/libemnapi-mt.a +0 -0
- package/lib/wasm32-wasi-threads/libemnapi-napi-rs-mt.a +0 -0
- package/lib/wasm32-wasi-threads/libemnapi.a +0 -0
- package/lib/wasm32-wasip1/libemnapi-basic-mt.a +0 -0
- package/lib/wasm32-wasip1/libemnapi-basic.a +0 -0
- package/lib/wasm32-wasip1/libemnapi.a +0 -0
- package/lib/wasm32-wasip1-threads/libemnapi-basic-mt.a +0 -0
- package/lib/wasm32-wasip1-threads/libemnapi-basic-napi-rs-mt.a +0 -0
- package/lib/wasm32-wasip1-threads/libemnapi-basic.a +0 -0
- package/lib/wasm32-wasip1-threads/libemnapi-mt.a +0 -0
- package/lib/wasm32-wasip1-threads/libemnapi-napi-rs-mt.a +0 -0
- package/lib/wasm32-wasip1-threads/libemnapi.a +0 -0
- package/lib/wasm64-emscripten/libemnapi-basic.a +0 -0
- package/lib/wasm64-emscripten/libemnapi-mt.a +0 -0
- package/lib/wasm64-emscripten/libemnapi.a +0 -0
- package/package.json +5 -2
- package/src/async_cleanup_hook.c +0 -2
- package/src/emnapi_internal.h +12 -0
- package/src/node_api.c +1 -7
- package/src/thread/async_worker_create.c +24 -1
- package/src/threadsafe_function.c +110 -94
- package/src/threadsafe_function.h +51 -0
- package/src/uv/uv-common.c +9 -1
- package/src/wasi_wait.c +3 -0
package/dist/library_napi.js
CHANGED
|
@@ -278,6 +278,17 @@ function _napi_adjust_external_memory(env, low, high, adjusted_value) {
|
|
|
278
278
|
#endif
|
|
279
279
|
return envObject.clearLastError();
|
|
280
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* @__deps $PThread
|
|
283
|
+
* @__sig vp
|
|
284
|
+
*/
|
|
285
|
+
function __emnapi_worker_ref(pid) {
|
|
286
|
+
var worker = PThread.pthreads[pid];
|
|
287
|
+
worker = worker.worker || worker;
|
|
288
|
+
if (typeof worker.ref === 'function') {
|
|
289
|
+
worker.ref();
|
|
290
|
+
}
|
|
291
|
+
}
|
|
281
292
|
/**
|
|
282
293
|
* @__deps $PThread
|
|
283
294
|
* @__sig vp
|
|
@@ -1262,6 +1273,9 @@ function _napi_get_typedarray_info(env, typedarray, type, length, data, arraybuf
|
|
|
1262
1273
|
else if (v instanceof Uint32Array) {
|
|
1263
1274
|
t = 6 /* napi_typedarray_type.napi_uint32_array */;
|
|
1264
1275
|
}
|
|
1276
|
+
else if (typeof Float16Array === 'function' && v instanceof Float16Array) {
|
|
1277
|
+
t = 11 /* napi_typedarray_type.napi_float16_array */;
|
|
1278
|
+
}
|
|
1265
1279
|
else if (v instanceof Float32Array) {
|
|
1266
1280
|
t = 7 /* napi_typedarray_type.napi_float32_array */;
|
|
1267
1281
|
}
|
|
@@ -2612,6 +2626,12 @@ function _emnapi_create_memory_view(env, typedarray_type, external_data, byte_le
|
|
|
2612
2626
|
case -1 /* emnapi_memory_view_type.emnapi_data_view */:
|
|
2613
2627
|
viewDescriptor = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
|
|
2614
2628
|
break;
|
|
2629
|
+
case 11 /* emnapi_memory_view_type.emnapi_float16_array */:
|
|
2630
|
+
if (typeof Float16Array !== 'function') {
|
|
2631
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
2632
|
+
}
|
|
2633
|
+
viewDescriptor = { Ctor: Float16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
|
|
2634
|
+
break;
|
|
2615
2635
|
case -2 /* emnapi_memory_view_type.emnapi_buffer */: {
|
|
2616
2636
|
if (!emnapiCtx.feature.Buffer) {
|
|
2617
2637
|
throw emnapiCtx.createNotSupportBufferError('emnapi_create_memory_view', '');
|
|
@@ -3112,7 +3132,7 @@ function _napi_create_object(env, result) {
|
|
|
3112
3132
|
/**
|
|
3113
3133
|
* @__sig ipppppp
|
|
3114
3134
|
*/
|
|
3115
|
-
function
|
|
3135
|
+
function _node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
|
|
3116
3136
|
if (!env)
|
|
3117
3137
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
3118
3138
|
// @ts-expect-error
|
|
@@ -3274,6 +3294,11 @@ function _napi_create_typedarray(env, type, length, arraybuffer, byte_offset, re
|
|
|
3274
3294
|
return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
|
|
3275
3295
|
case 10 /* napi_typedarray_type.napi_biguint64_array */:
|
|
3276
3296
|
return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
|
|
3297
|
+
case 11 /* napi_typedarray_type.napi_float16_array */:
|
|
3298
|
+
if (typeof Float16Array !== 'function') {
|
|
3299
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3300
|
+
}
|
|
3301
|
+
return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
|
|
3277
3302
|
default:
|
|
3278
3303
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3279
3304
|
}
|
|
@@ -3976,6 +4001,21 @@ function _napi_fatal_exception(env, err) {
|
|
|
3976
4001
|
}
|
|
3977
4002
|
}
|
|
3978
4003
|
/** @__sig ipppppp */
|
|
4004
|
+
function __emnapi_create_function(env, utf8name, length, cb, data, result) {
|
|
4005
|
+
{{{ from64('length') }}};
|
|
4006
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4007
|
+
var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
|
|
4008
|
+
if (fresult.status !== 0 /* napi_status.napi_ok */)
|
|
4009
|
+
return envObject.setLastError(fresult.status);
|
|
4010
|
+
var f = fresult.f;
|
|
4011
|
+
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
4012
|
+
{{{ from64('result') }}};
|
|
4013
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4014
|
+
var value = valueHandle.id;
|
|
4015
|
+
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4016
|
+
return envObject.getReturnStatus();
|
|
4017
|
+
}
|
|
4018
|
+
/** @__sig ipppppp */
|
|
3979
4019
|
function _napi_create_function(env, utf8name, length, cb, data, result) {
|
|
3980
4020
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3981
4021
|
var value;
|
|
@@ -3994,16 +4034,7 @@ function _napi_create_function(env, utf8name, length, cb, data, result) {
|
|
|
3994
4034
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3995
4035
|
if (!cb)
|
|
3996
4036
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
3997
|
-
|
|
3998
|
-
var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
|
|
3999
|
-
if (fresult.status !== 0 /* napi_status.napi_ok */)
|
|
4000
|
-
return envObject.setLastError(fresult.status);
|
|
4001
|
-
var f = fresult.f;
|
|
4002
|
-
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
4003
|
-
{{{ from64('result') }}};
|
|
4004
|
-
value = valueHandle.id;
|
|
4005
|
-
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4006
|
-
return envObject.getReturnStatus();
|
|
4037
|
+
return __emnapi_create_function(env, utf8name, length, cb, data, result);
|
|
4007
4038
|
}
|
|
4008
4039
|
catch (err) {
|
|
4009
4040
|
envObject.tryCatch.setError(err);
|
|
@@ -4178,6 +4209,7 @@ function _napi_get_new_target(env, cbinfo, result) {
|
|
|
4178
4209
|
{{{ from64('result') }}};
|
|
4179
4210
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
4180
4211
|
var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
|
|
4212
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unused-vars
|
|
4181
4213
|
var value = thiz == null || thiz.constructor == null
|
|
4182
4214
|
? 0
|
|
4183
4215
|
: thiz instanceof fn
|
|
@@ -5507,28 +5539,75 @@ function _napi_run_script(env, script, result) {
|
|
|
5507
5539
|
*/
|
|
5508
5540
|
var emnapiTSFN = {
|
|
5509
5541
|
offset: {
|
|
5542
|
+
__size__: 0,
|
|
5510
5543
|
/* napi_ref */ resource: 0,
|
|
5511
|
-
/* double */ async_id:
|
|
5512
|
-
/* double */ trigger_async_id:
|
|
5513
|
-
/* size_t */ queue_size:
|
|
5514
|
-
/*
|
|
5515
|
-
/*
|
|
5516
|
-
/*
|
|
5517
|
-
/*
|
|
5518
|
-
/*
|
|
5519
|
-
/*
|
|
5520
|
-
/*
|
|
5521
|
-
/*
|
|
5522
|
-
/*
|
|
5523
|
-
/*
|
|
5524
|
-
/*
|
|
5525
|
-
/*
|
|
5526
|
-
/* bool */
|
|
5527
|
-
/*
|
|
5528
|
-
/* int32_t */
|
|
5529
|
-
|
|
5544
|
+
/* double */ async_id: 0,
|
|
5545
|
+
/* double */ trigger_async_id: 0,
|
|
5546
|
+
/* size_t */ queue_size: 0,
|
|
5547
|
+
/* bool */ is_some: 0,
|
|
5548
|
+
/* void* */ queue: 0,
|
|
5549
|
+
/* size_t */ thread_count: 0,
|
|
5550
|
+
/* int32_t */ state: 0,
|
|
5551
|
+
/* atomic_uchar */ dispatch_state: 0,
|
|
5552
|
+
/* void* */ context: 0,
|
|
5553
|
+
/* size_t */ max_queue_size: 0,
|
|
5554
|
+
/* napi_ref */ ref: 0,
|
|
5555
|
+
/* napi_env */ env: 0,
|
|
5556
|
+
/* void* */ finalize_data: 0,
|
|
5557
|
+
/* napi_finalize */ finalize_cb: 0,
|
|
5558
|
+
/* napi_threadsafe_function_call_js */ call_js_cb: 0,
|
|
5559
|
+
/* bool */ handles_closing: 0,
|
|
5560
|
+
/* bool */ async_ref: 0,
|
|
5561
|
+
/* int32_t */ mutex: 0,
|
|
5562
|
+
/* int32_t */ cond: 0
|
|
5530
5563
|
},
|
|
5531
5564
|
init: function () {
|
|
5565
|
+
#if MEMORY64
|
|
5566
|
+
emnapiTSFN.offset.__size__ = 320 /* NapiTSFNOffset64.__size__ */;
|
|
5567
|
+
emnapiTSFN.offset.resource = 0 /* NapiTSFNOffset64.async_resource_resource */;
|
|
5568
|
+
emnapiTSFN.offset.async_id = 8 /* NapiTSFNOffset64.async_resource_async_context_async_id */;
|
|
5569
|
+
emnapiTSFN.offset.trigger_async_id = 16 /* NapiTSFNOffset64.async_resource_async_context_trigger_async_id */;
|
|
5570
|
+
emnapiTSFN.offset.queue_size = 88 /* NapiTSFNOffset64.queue_size */;
|
|
5571
|
+
emnapiTSFN.offset.is_some = 24 /* NapiTSFNOffset64.async_resource_is_some */;
|
|
5572
|
+
emnapiTSFN.offset.queue = 96 /* NapiTSFNOffset64.queue */;
|
|
5573
|
+
emnapiTSFN.offset.thread_count = 240 /* NapiTSFNOffset64.thread_count */;
|
|
5574
|
+
emnapiTSFN.offset.state = 248 /* NapiTSFNOffset64.state */;
|
|
5575
|
+
emnapiTSFN.offset.dispatch_state = 252 /* NapiTSFNOffset64.dispatch_state */;
|
|
5576
|
+
emnapiTSFN.offset.context = 256 /* NapiTSFNOffset64.context */;
|
|
5577
|
+
emnapiTSFN.offset.max_queue_size = 264 /* NapiTSFNOffset64.max_queue_size */;
|
|
5578
|
+
emnapiTSFN.offset.ref = 272 /* NapiTSFNOffset64.ref */;
|
|
5579
|
+
emnapiTSFN.offset.env = 280 /* NapiTSFNOffset64.env */;
|
|
5580
|
+
emnapiTSFN.offset.finalize_data = 288 /* NapiTSFNOffset64.finalize_data */;
|
|
5581
|
+
emnapiTSFN.offset.finalize_cb = 296 /* NapiTSFNOffset64.finalize_cb */;
|
|
5582
|
+
emnapiTSFN.offset.call_js_cb = 304 /* NapiTSFNOffset64.call_js_cb */;
|
|
5583
|
+
emnapiTSFN.offset.handles_closing = 312 /* NapiTSFNOffset64.handles_closing */;
|
|
5584
|
+
emnapiTSFN.offset.async_ref = 316 /* NapiTSFNOffset64.async_ref */;
|
|
5585
|
+
emnapiTSFN.offset.mutex = 32 /* NapiTSFNOffset64.mutex */;
|
|
5586
|
+
emnapiTSFN.offset.cond = 80 /* NapiTSFNOffset64.cond */;
|
|
5587
|
+
#else
|
|
5588
|
+
emnapiTSFN.offset.__size__ = 184 /* NapiTSFNOffset32.__size__ */;
|
|
5589
|
+
emnapiTSFN.offset.resource = 0 /* NapiTSFNOffset32.async_resource_resource */;
|
|
5590
|
+
emnapiTSFN.offset.async_id = 8 /* NapiTSFNOffset32.async_resource_async_context_async_id */;
|
|
5591
|
+
emnapiTSFN.offset.trigger_async_id = 16 /* NapiTSFNOffset32.async_resource_async_context_trigger_async_id */;
|
|
5592
|
+
emnapiTSFN.offset.queue_size = 60 /* NapiTSFNOffset32.queue_size */;
|
|
5593
|
+
emnapiTSFN.offset.is_some = 24 /* NapiTSFNOffset32.async_resource_is_some */;
|
|
5594
|
+
emnapiTSFN.offset.queue = 64 /* NapiTSFNOffset32.queue */;
|
|
5595
|
+
emnapiTSFN.offset.thread_count = 136 /* NapiTSFNOffset32.thread_count */;
|
|
5596
|
+
emnapiTSFN.offset.state = 140 /* NapiTSFNOffset32.state */;
|
|
5597
|
+
emnapiTSFN.offset.dispatch_state = 144 /* NapiTSFNOffset32.dispatch_state */;
|
|
5598
|
+
emnapiTSFN.offset.context = 148 /* NapiTSFNOffset32.context */;
|
|
5599
|
+
emnapiTSFN.offset.max_queue_size = 152 /* NapiTSFNOffset32.max_queue_size */;
|
|
5600
|
+
emnapiTSFN.offset.ref = 156 /* NapiTSFNOffset32.ref */;
|
|
5601
|
+
emnapiTSFN.offset.env = 160 /* NapiTSFNOffset32.env */;
|
|
5602
|
+
emnapiTSFN.offset.finalize_data = 164 /* NapiTSFNOffset32.finalize_data */;
|
|
5603
|
+
emnapiTSFN.offset.finalize_cb = 168 /* NapiTSFNOffset32.finalize_cb */;
|
|
5604
|
+
emnapiTSFN.offset.call_js_cb = 172 /* NapiTSFNOffset32.call_js_cb */;
|
|
5605
|
+
emnapiTSFN.offset.handles_closing = 176 /* NapiTSFNOffset32.handles_closing */;
|
|
5606
|
+
emnapiTSFN.offset.async_ref = 180 /* NapiTSFNOffset32.async_ref */;
|
|
5607
|
+
emnapiTSFN.offset.mutex = 32 /* NapiTSFNOffset32.mutex */;
|
|
5608
|
+
emnapiTSFN.offset.cond = 56 /* NapiTSFNOffset32.cond */;
|
|
5609
|
+
#endif
|
|
5610
|
+
emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
|
|
5532
5611
|
if (typeof PThread !== 'undefined') {
|
|
5533
5612
|
PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
|
|
5534
5613
|
PThread.runningWorkers.forEach(emnapiTSFN.addListener);
|
|
@@ -5633,11 +5712,11 @@ var emnapiTSFN = {
|
|
|
5633
5712
|
var waitCondition = function () {
|
|
5634
5713
|
var queueSize = emnapiTSFN.getQueueSize(func);
|
|
5635
5714
|
var maxSize = emnapiTSFN.getMaxQueueSize(func);
|
|
5636
|
-
|
|
5637
|
-
return queueSize >= maxSize && maxSize > 0 && !isClosing;
|
|
5715
|
+
return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0 /* State.kOpen */;
|
|
5638
5716
|
};
|
|
5639
5717
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
5640
|
-
|
|
5718
|
+
var shouldDelete = false;
|
|
5719
|
+
var ret = mutex.execute(function () {
|
|
5641
5720
|
while (waitCondition()) {
|
|
5642
5721
|
if (mode === 0 /* napi_threadsafe_function_call_mode.napi_tsfn_nonblocking */) {
|
|
5643
5722
|
return 15 /* napi_status.napi_queue_full */;
|
|
@@ -5654,21 +5733,25 @@ var emnapiTSFN = {
|
|
|
5654
5733
|
}
|
|
5655
5734
|
cond.wait();
|
|
5656
5735
|
}
|
|
5657
|
-
if (emnapiTSFN.
|
|
5658
|
-
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
5659
|
-
return 1 /* napi_status.napi_invalid_arg */;
|
|
5660
|
-
}
|
|
5661
|
-
else {
|
|
5662
|
-
emnapiTSFN.subThreadCount(func);
|
|
5663
|
-
return 16 /* napi_status.napi_closing */;
|
|
5664
|
-
}
|
|
5665
|
-
}
|
|
5666
|
-
else {
|
|
5736
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
5667
5737
|
emnapiTSFN.pushQueue(func, data);
|
|
5668
5738
|
emnapiTSFN.send(func);
|
|
5669
5739
|
return 0 /* napi_status.napi_ok */;
|
|
5670
5740
|
}
|
|
5741
|
+
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
5742
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
5743
|
+
}
|
|
5744
|
+
emnapiTSFN.subThreadCount(func);
|
|
5745
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
5746
|
+
return 16 /* napi_status.napi_closing */;
|
|
5747
|
+
}
|
|
5748
|
+
shouldDelete = true;
|
|
5749
|
+
return 16 /* napi_status.napi_closing */;
|
|
5671
5750
|
});
|
|
5751
|
+
if (shouldDelete) {
|
|
5752
|
+
emnapiTSFN.destroy(func);
|
|
5753
|
+
}
|
|
5754
|
+
return ret;
|
|
5672
5755
|
},
|
|
5673
5756
|
getMutex: function (func) {
|
|
5674
5757
|
var index = func + emnapiTSFN.offset.mutex;
|
|
@@ -5678,7 +5761,7 @@ var emnapiTSFN = {
|
|
|
5678
5761
|
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
5679
5762
|
if (isBrowserMain) {
|
|
5680
5763
|
while (true) {
|
|
5681
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
5764
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
5682
5765
|
if (oldValue === 0) {
|
|
5683
5766
|
return;
|
|
5684
5767
|
}
|
|
@@ -5686,11 +5769,11 @@ var emnapiTSFN = {
|
|
|
5686
5769
|
}
|
|
5687
5770
|
else {
|
|
5688
5771
|
while (true) {
|
|
5689
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
5772
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
5690
5773
|
if (oldValue === 0) {
|
|
5691
5774
|
return;
|
|
5692
5775
|
}
|
|
5693
|
-
Atomics.wait(i32a, 0,
|
|
5776
|
+
Atomics.wait(i32a, 0, 10);
|
|
5694
5777
|
}
|
|
5695
5778
|
}
|
|
5696
5779
|
},
|
|
@@ -5699,20 +5782,20 @@ var emnapiTSFN = {
|
|
|
5699
5782
|
const again = (): void => { fn() }
|
|
5700
5783
|
const fn = (): void => {
|
|
5701
5784
|
const i32a = new Int32Array(wasmMemory.buffer, index, 1)
|
|
5702
|
-
const oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
5785
|
+
const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
|
|
5703
5786
|
if (oldValue === 0) {
|
|
5704
5787
|
resolve()
|
|
5705
5788
|
return
|
|
5706
5789
|
}
|
|
5707
|
-
(Atomics as any).waitAsync(i32a, 0,
|
|
5790
|
+
(Atomics as any).waitAsync(i32a, 0, 10).value.then(again)
|
|
5708
5791
|
}
|
|
5709
5792
|
fn()
|
|
5710
5793
|
})
|
|
5711
5794
|
}, */
|
|
5712
5795
|
unlock: function () {
|
|
5713
5796
|
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
5714
|
-
var oldValue = Atomics.compareExchange(i32a, 0,
|
|
5715
|
-
if (oldValue !==
|
|
5797
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
5798
|
+
if (oldValue !== 10) {
|
|
5716
5799
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
5717
5800
|
}
|
|
5718
5801
|
Atomics.notify(i32a, 0, 1);
|
|
@@ -5823,17 +5906,17 @@ var emnapiTSFN = {
|
|
|
5823
5906
|
#endif
|
|
5824
5907
|
Atomics.sub(arr, index, {{{ to64('1') }}});
|
|
5825
5908
|
},
|
|
5826
|
-
|
|
5827
|
-
return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.
|
|
5909
|
+
getState: function (func) {
|
|
5910
|
+
return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >> 2);
|
|
5828
5911
|
},
|
|
5829
|
-
|
|
5830
|
-
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.
|
|
5912
|
+
setState: function (func, value) {
|
|
5913
|
+
Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >> 2, value);
|
|
5831
5914
|
},
|
|
5832
5915
|
getHandlesClosing: function (func) {
|
|
5833
|
-
return Atomics.load(new
|
|
5916
|
+
return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
|
|
5834
5917
|
},
|
|
5835
5918
|
setHandlesClosing: function (func, value) {
|
|
5836
|
-
Atomics.store(new
|
|
5919
|
+
Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
|
|
5837
5920
|
},
|
|
5838
5921
|
getDispatchState: function (func) {
|
|
5839
5922
|
return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >> 2);
|
|
@@ -5909,46 +5992,72 @@ var emnapiTSFN = {
|
|
|
5909
5992
|
return undefined;
|
|
5910
5993
|
}
|
|
5911
5994
|
},
|
|
5995
|
+
releaseResources: function (func) {
|
|
5996
|
+
if (emnapiTSFN.getState(func) !== 2 /* State.kClosed */) {
|
|
5997
|
+
emnapiTSFN.setState(func, 2 /* State.kClosed */);
|
|
5998
|
+
var env = emnapiTSFN.getEnv(func);
|
|
5999
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
6000
|
+
var ref = emnapiTSFN.getRef(func);
|
|
6001
|
+
if (ref) {
|
|
6002
|
+
emnapiCtx.refStore.get(ref).dispose();
|
|
6003
|
+
}
|
|
6004
|
+
var resource = emnapiTSFN.getResource(func);
|
|
6005
|
+
emnapiCtx.refStore.get(resource).dispose();
|
|
6006
|
+
{{{ makeSetValue('func', 'emnapiTSFN.offset.is_some', '0', 'i8') }}};
|
|
6007
|
+
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
6008
|
+
envObject.unref();
|
|
6009
|
+
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
6010
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
6011
|
+
if (Atomics.load(arr, asyncRefOffset) > 0) {
|
|
6012
|
+
Atomics.store(arr, asyncRefOffset, 0);
|
|
6013
|
+
__emnapi_runtime_keepalive_pop();
|
|
6014
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
6015
|
+
}
|
|
6016
|
+
if (emnapiNodeBinding) {
|
|
6017
|
+
var view = new DataView(wasmMemory.buffer);
|
|
6018
|
+
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
6019
|
+
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
6020
|
+
__emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
6021
|
+
}
|
|
6022
|
+
}
|
|
6023
|
+
},
|
|
5912
6024
|
destroy: function (func) {
|
|
5913
6025
|
emnapiTSFN.destroyQueue(func);
|
|
5914
|
-
|
|
5915
|
-
var envObject = emnapiCtx.envStore.get(env);
|
|
5916
|
-
var ref = emnapiTSFN.getRef(func);
|
|
5917
|
-
if (ref) {
|
|
5918
|
-
emnapiCtx.refStore.get(ref).dispose();
|
|
5919
|
-
}
|
|
5920
|
-
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
5921
|
-
envObject.unref();
|
|
5922
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
5923
|
-
var arr = new Int32Array(wasmMemory.buffer);
|
|
5924
|
-
if (Atomics.load(arr, asyncRefOffset)) {
|
|
5925
|
-
Atomics.store(arr, asyncRefOffset, 0);
|
|
5926
|
-
__emnapi_runtime_keepalive_pop();
|
|
5927
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
5928
|
-
}
|
|
5929
|
-
var resource = emnapiTSFN.getResource(func);
|
|
5930
|
-
emnapiCtx.refStore.get(resource).dispose();
|
|
5931
|
-
if (emnapiNodeBinding) {
|
|
5932
|
-
var view = new DataView(wasmMemory.buffer);
|
|
5933
|
-
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
5934
|
-
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
5935
|
-
__emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
5936
|
-
}
|
|
6026
|
+
emnapiTSFN.releaseResources(func);
|
|
5937
6027
|
_free({{{ to64('func') }}});
|
|
5938
6028
|
},
|
|
5939
|
-
|
|
6029
|
+
emptyQueue: function (func) {
|
|
6030
|
+
var drainQueue = [];
|
|
6031
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
6032
|
+
while (emnapiTSFN.getQueueSize(func) > 0) {
|
|
6033
|
+
drainQueue.push(emnapiTSFN.shiftQueue(func));
|
|
6034
|
+
}
|
|
6035
|
+
});
|
|
5940
6036
|
var callJsCb = emnapiTSFN.getCallJSCb(func);
|
|
5941
6037
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5942
6038
|
var context = emnapiTSFN.getContext(func);
|
|
5943
6039
|
var data;
|
|
5944
|
-
|
|
6040
|
+
for (var i = 0; i < drainQueue.length; i++) {
|
|
5945
6041
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5946
|
-
data =
|
|
6042
|
+
data = drainQueue[i];
|
|
5947
6043
|
if (callJsCb) {
|
|
5948
6044
|
{{{ makeDynCall('vpppp', 'callJsCb') }}}({{{ to64('0') }}}, {{{ to64('0') }}}, {{{ to64('context') }}}, {{{ to64('data') }}});
|
|
5949
6045
|
}
|
|
5950
6046
|
}
|
|
5951
|
-
|
|
6047
|
+
},
|
|
6048
|
+
maybeDelete: function (func) {
|
|
6049
|
+
var shouldDelete = false;
|
|
6050
|
+
emnapiTSFN.getMutex(func).execute(function () {
|
|
6051
|
+
if (emnapiTSFN.getThreadCount(func) > 0) {
|
|
6052
|
+
emnapiTSFN.releaseResources(func);
|
|
6053
|
+
}
|
|
6054
|
+
else {
|
|
6055
|
+
shouldDelete = true;
|
|
6056
|
+
}
|
|
6057
|
+
});
|
|
6058
|
+
if (shouldDelete) {
|
|
6059
|
+
emnapiTSFN.destroy(func);
|
|
6060
|
+
}
|
|
5952
6061
|
},
|
|
5953
6062
|
finalize: function (func) {
|
|
5954
6063
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -5963,6 +6072,7 @@ var emnapiTSFN = {
|
|
|
5963
6072
|
envObject.callFinalizerInternal(0, {{{ to64('finalize') }}}, {{{ to64('data') }}}, {{{ to64('context') }}});
|
|
5964
6073
|
};
|
|
5965
6074
|
try {
|
|
6075
|
+
emnapiTSFN.emptyQueue(func);
|
|
5966
6076
|
if (finalize) {
|
|
5967
6077
|
if (emnapiNodeBinding) {
|
|
5968
6078
|
var resource = emnapiTSFN.getResource(func);
|
|
@@ -5980,7 +6090,7 @@ var emnapiTSFN = {
|
|
|
5980
6090
|
f();
|
|
5981
6091
|
}
|
|
5982
6092
|
}
|
|
5983
|
-
emnapiTSFN.
|
|
6093
|
+
emnapiTSFN.maybeDelete(func);
|
|
5984
6094
|
}
|
|
5985
6095
|
finally {
|
|
5986
6096
|
emnapiCtx.closeScope(envObject);
|
|
@@ -5996,7 +6106,7 @@ var emnapiTSFN = {
|
|
|
5996
6106
|
try {
|
|
5997
6107
|
if (set_closing) {
|
|
5998
6108
|
emnapiTSFN.getMutex(func).execute(function () {
|
|
5999
|
-
emnapiTSFN.
|
|
6109
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
6000
6110
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
6001
6111
|
emnapiTSFN.getCond(func).signal();
|
|
6002
6112
|
}
|
|
@@ -6022,10 +6132,7 @@ var emnapiTSFN = {
|
|
|
6022
6132
|
var mutex = emnapiTSFN.getMutex(func);
|
|
6023
6133
|
var cond = emnapiTSFN.getCond(func);
|
|
6024
6134
|
mutex.execute(function () {
|
|
6025
|
-
if (emnapiTSFN.
|
|
6026
|
-
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
6027
|
-
}
|
|
6028
|
-
else {
|
|
6135
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
6029
6136
|
var size = emnapiTSFN.getQueueSize(func);
|
|
6030
6137
|
if (size > 0) {
|
|
6031
6138
|
data = emnapiTSFN.shiftQueue(func);
|
|
@@ -6038,7 +6145,7 @@ var emnapiTSFN = {
|
|
|
6038
6145
|
}
|
|
6039
6146
|
if (size === 0) {
|
|
6040
6147
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
6041
|
-
emnapiTSFN.
|
|
6148
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
6042
6149
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
6043
6150
|
cond.signal();
|
|
6044
6151
|
}
|
|
@@ -6049,6 +6156,9 @@ var emnapiTSFN = {
|
|
|
6049
6156
|
has_more = true;
|
|
6050
6157
|
}
|
|
6051
6158
|
}
|
|
6159
|
+
else {
|
|
6160
|
+
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
6161
|
+
}
|
|
6052
6162
|
});
|
|
6053
6163
|
if (popped_value) {
|
|
6054
6164
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -6187,21 +6297,24 @@ function _napi_create_threadsafe_function(env, func, async_resource, async_resou
|
|
|
6187
6297
|
asyncResourceName = String(asyncResourceName);
|
|
6188
6298
|
var resource_name = envObject.ensureHandleId(asyncResourceName);
|
|
6189
6299
|
// tsfn create
|
|
6190
|
-
var sizeofTSFN = emnapiTSFN.offset.
|
|
6300
|
+
var sizeofTSFN = emnapiTSFN.offset.__size__;
|
|
6301
|
+
// eslint-disable-next-line prefer-const
|
|
6191
6302
|
var tsfn = _malloc({{{ to64('sizeofTSFN') }}});
|
|
6192
6303
|
if (!tsfn)
|
|
6193
6304
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
6305
|
+
{{{ from64('tsfn') }}};
|
|
6194
6306
|
new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
|
|
6195
6307
|
var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
6196
6308
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6197
6309
|
var resource_ = resourceRef.id;
|
|
6198
|
-
{{{ makeSetValue('tsfn',
|
|
6310
|
+
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.resource', 'resource_', '*') }}};
|
|
6199
6311
|
if (!emnapiTSFN.initQueue(tsfn)) {
|
|
6200
6312
|
_free({{{ to64('tsfn') }}});
|
|
6201
6313
|
resourceRef.dispose();
|
|
6202
6314
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
6203
6315
|
}
|
|
6204
6316
|
__emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
|
|
6317
|
+
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.is_some', '1', 'i8') }}};
|
|
6205
6318
|
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.thread_count', 'initial_thread_count', SIZE_TYPE) }}};
|
|
6206
6319
|
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.context', 'context', '*') }}};
|
|
6207
6320
|
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.max_queue_size', 'max_queue_size', SIZE_TYPE) }}};
|
|
@@ -6214,7 +6327,7 @@ function _napi_create_threadsafe_function(env, func, async_resource, async_resou
|
|
|
6214
6327
|
envObject.ref();
|
|
6215
6328
|
__emnapi_runtime_keepalive_push();
|
|
6216
6329
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
6217
|
-
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.async_ref', '1', '
|
|
6330
|
+
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.async_ref', '1', 'u32') }}};
|
|
6218
6331
|
{{{ from64('result') }}};
|
|
6219
6332
|
{{{ makeSetValue('result', 0, 'tsfn', '*') }}};
|
|
6220
6333
|
return envObject.clearLastError();
|
|
@@ -6251,11 +6364,11 @@ function _napi_acquire_threadsafe_function(func) {
|
|
|
6251
6364
|
{{{ from64('func') }}};
|
|
6252
6365
|
var mutex = emnapiTSFN.getMutex(func);
|
|
6253
6366
|
return mutex.execute(function () {
|
|
6254
|
-
if (emnapiTSFN.
|
|
6255
|
-
|
|
6367
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
6368
|
+
emnapiTSFN.addThreadCount(func);
|
|
6369
|
+
return 0 /* napi_status.napi_ok */;
|
|
6256
6370
|
}
|
|
6257
|
-
|
|
6258
|
-
return 0 /* napi_status.napi_ok */;
|
|
6371
|
+
return 16 /* napi_status.napi_closing */;
|
|
6259
6372
|
});
|
|
6260
6373
|
}
|
|
6261
6374
|
/** @__sig ipi */
|
|
@@ -6267,24 +6380,33 @@ function _napi_release_threadsafe_function(func, mode) {
|
|
|
6267
6380
|
{{{ from64('func') }}};
|
|
6268
6381
|
var mutex = emnapiTSFN.getMutex(func);
|
|
6269
6382
|
var cond = emnapiTSFN.getCond(func);
|
|
6270
|
-
|
|
6383
|
+
var shouldDelete = false;
|
|
6384
|
+
var ret = mutex.execute(function () {
|
|
6271
6385
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
6272
6386
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
6273
6387
|
}
|
|
6274
6388
|
emnapiTSFN.subThreadCount(func);
|
|
6275
6389
|
if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
6276
|
-
|
|
6277
|
-
|
|
6278
|
-
|
|
6279
|
-
|
|
6280
|
-
if (
|
|
6390
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
6391
|
+
if (mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
6392
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
6393
|
+
}
|
|
6394
|
+
if (emnapiTSFN.getState(func) === 1 /* State.kClosing */ && emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
6281
6395
|
cond.signal();
|
|
6282
6396
|
}
|
|
6283
6397
|
emnapiTSFN.send(func);
|
|
6284
6398
|
}
|
|
6285
6399
|
}
|
|
6400
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
6401
|
+
return 0 /* napi_status.napi_ok */;
|
|
6402
|
+
}
|
|
6403
|
+
shouldDelete = true;
|
|
6286
6404
|
return 0 /* napi_status.napi_ok */;
|
|
6287
6405
|
});
|
|
6406
|
+
if (shouldDelete) {
|
|
6407
|
+
emnapiTSFN.destroy(func);
|
|
6408
|
+
}
|
|
6409
|
+
return ret;
|
|
6288
6410
|
}
|
|
6289
6411
|
/** @__sig ipp */
|
|
6290
6412
|
function _napi_unref_threadsafe_function(env, func) {
|
|
@@ -6294,11 +6416,14 @@ function _napi_unref_threadsafe_function(env, func) {
|
|
|
6294
6416
|
}
|
|
6295
6417
|
{{{ from64('func') }}};
|
|
6296
6418
|
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
6297
|
-
var arr = new
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6419
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
6420
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
6421
|
+
if (currentValue > 0) {
|
|
6422
|
+
Atomics.store(arr, asyncRefOffset, currentValue - 1);
|
|
6423
|
+
if (currentValue === 1) {
|
|
6424
|
+
__emnapi_runtime_keepalive_pop();
|
|
6425
|
+
emnapiCtx.decreaseWaitingRequestCounter();
|
|
6426
|
+
}
|
|
6302
6427
|
}
|
|
6303
6428
|
return 0 /* napi_status.napi_ok */;
|
|
6304
6429
|
}
|
|
@@ -6310,12 +6435,13 @@ function _napi_ref_threadsafe_function(env, func) {
|
|
|
6310
6435
|
}
|
|
6311
6436
|
{{{ from64('func') }}};
|
|
6312
6437
|
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
6313
|
-
var arr = new
|
|
6314
|
-
|
|
6315
|
-
|
|
6438
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
6439
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
6440
|
+
if (!currentValue) {
|
|
6316
6441
|
__emnapi_runtime_keepalive_push();
|
|
6317
6442
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
6318
6443
|
}
|
|
6444
|
+
Atomics.store(arr, asyncRefOffset, currentValue + 1);
|
|
6319
6445
|
return 0 /* napi_status.napi_ok */;
|
|
6320
6446
|
}
|
|
6321
6447
|
/** @__sig ippp */
|
|
@@ -6843,6 +6969,14 @@ function _napi_get_version(env, result) {
|
|
|
6843
6969
|
_emnapi_close_handle_scope: __emnapi_close_handle_scope,
|
|
6844
6970
|
_emnapi_close_handle_scope__deps: ["$emnapiCtx", "$emnapiCtx"],
|
|
6845
6971
|
_emnapi_close_handle_scope__sig: "vp",
|
|
6972
|
+
$emnapiString: emnapiString,
|
|
6973
|
+
$emnapiString__deps: ["$emnapiCtx"],
|
|
6974
|
+
$emnapiString__postset: "emnapiString.init();",
|
|
6975
|
+
$emnapiCreateFunction: emnapiCreateFunction,
|
|
6976
|
+
$emnapiCreateFunction__deps: ["$emnapiString", "$emnapiCtx"],
|
|
6977
|
+
_emnapi_create_function: __emnapi_create_function,
|
|
6978
|
+
_emnapi_create_function__deps: ["$emnapiCtx", "$emnapiCreateFunction"],
|
|
6979
|
+
_emnapi_create_function__sig: "ipppppp",
|
|
6846
6980
|
_emnapi_ctx_decrease_waiting_request_counter: __emnapi_ctx_decrease_waiting_request_counter,
|
|
6847
6981
|
_emnapi_ctx_decrease_waiting_request_counter__deps: ["$emnapiCtx"],
|
|
6848
6982
|
_emnapi_ctx_decrease_waiting_request_counter__sig: "v",
|
|
@@ -6858,9 +6992,6 @@ function _napi_get_version(env, result) {
|
|
|
6858
6992
|
_emnapi_env_unref: __emnapi_env_unref,
|
|
6859
6993
|
_emnapi_env_unref__deps: ["$emnapiCtx"],
|
|
6860
6994
|
_emnapi_env_unref__sig: "vp",
|
|
6861
|
-
$emnapiString: emnapiString,
|
|
6862
|
-
$emnapiString__deps: ["$emnapiCtx"],
|
|
6863
|
-
$emnapiString__postset: "emnapiString.init();",
|
|
6864
6995
|
_emnapi_get_filename: __emnapi_get_filename,
|
|
6865
6996
|
_emnapi_get_filename__deps: ["$emnapiCtx", "$emnapiString"],
|
|
6866
6997
|
_emnapi_get_filename__sig: "ippi",
|
|
@@ -6895,6 +7026,9 @@ function _napi_get_version(env, result) {
|
|
|
6895
7026
|
_emnapi_runtime_keepalive_push__sig: "v",
|
|
6896
7027
|
_emnapi_unwind: __emnapi_unwind,
|
|
6897
7028
|
_emnapi_unwind__sig: "v",
|
|
7029
|
+
_emnapi_worker_ref: __emnapi_worker_ref,
|
|
7030
|
+
_emnapi_worker_ref__deps: ["$PThread"],
|
|
7031
|
+
_emnapi_worker_ref__sig: "vp",
|
|
6898
7032
|
_emnapi_worker_unref: __emnapi_worker_unref,
|
|
6899
7033
|
_emnapi_worker_unref__deps: ["$PThread"],
|
|
6900
7034
|
_emnapi_worker_unref__sig: "vp",
|
|
@@ -7030,10 +7164,8 @@ function _napi_get_version(env, result) {
|
|
|
7030
7164
|
napi_create_external_buffer: _napi_create_external_buffer,
|
|
7031
7165
|
napi_create_external_buffer__deps: ["emnapi_create_memory_view"],
|
|
7032
7166
|
napi_create_external_buffer__sig: "ipppppp",
|
|
7033
|
-
$emnapiCreateFunction: emnapiCreateFunction,
|
|
7034
|
-
$emnapiCreateFunction__deps: ["$emnapiString", "$emnapiCtx"],
|
|
7035
7167
|
napi_create_function: _napi_create_function,
|
|
7036
|
-
napi_create_function__deps: ["$emnapiCtx", "
|
|
7168
|
+
napi_create_function__deps: ["$emnapiCtx", "_emnapi_create_function"],
|
|
7037
7169
|
napi_create_function__sig: "ipppppp",
|
|
7038
7170
|
napi_create_int32: _napi_create_int32,
|
|
7039
7171
|
napi_create_int32__deps: ["$emnapiCtx"],
|
|
@@ -7044,9 +7176,6 @@ function _napi_get_version(env, result) {
|
|
|
7044
7176
|
napi_create_object: _napi_create_object,
|
|
7045
7177
|
napi_create_object__deps: ["$emnapiCtx"],
|
|
7046
7178
|
napi_create_object__sig: "ipp",
|
|
7047
|
-
napi_create_object_with_properties: _napi_create_object_with_properties,
|
|
7048
|
-
napi_create_object_with_properties__deps: ["$emnapiCtx"],
|
|
7049
|
-
napi_create_object_with_properties__sig: "ipppppp",
|
|
7050
7179
|
napi_create_promise: _napi_create_promise,
|
|
7051
7180
|
napi_create_promise__deps: ["$emnapiCtx"],
|
|
7052
7181
|
napi_create_promise__sig: "ippp",
|
|
@@ -7370,6 +7499,9 @@ function _napi_get_version(env, result) {
|
|
|
7370
7499
|
node_api_create_external_string_utf16: _node_api_create_external_string_utf16,
|
|
7371
7500
|
node_api_create_external_string_utf16__deps: ["$emnapiString", "napi_create_string_utf16"],
|
|
7372
7501
|
node_api_create_external_string_utf16__sig: "ippppppp",
|
|
7502
|
+
node_api_create_object_with_properties: _node_api_create_object_with_properties,
|
|
7503
|
+
node_api_create_object_with_properties__deps: ["$emnapiCtx"],
|
|
7504
|
+
node_api_create_object_with_properties__sig: "ipppppp",
|
|
7373
7505
|
node_api_create_property_key_latin1: _node_api_create_property_key_latin1,
|
|
7374
7506
|
node_api_create_property_key_latin1__deps: ["napi_create_string_latin1"],
|
|
7375
7507
|
node_api_create_property_key_latin1__sig: "ipppp",
|