emnapi 1.8.1 → 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 +238 -120
- package/emnapi.gyp +8 -1
- package/include/node/emnapi.h +2 -2
- package/include/node/js_native_api.h +6 -6
- package/include/node/js_native_api_types.h +6 -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
|
|
@@ -3121,7 +3132,7 @@ function _napi_create_object(env, result) {
|
|
|
3121
3132
|
/**
|
|
3122
3133
|
* @__sig ipppppp
|
|
3123
3134
|
*/
|
|
3124
|
-
function
|
|
3135
|
+
function _node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
|
|
3125
3136
|
if (!env)
|
|
3126
3137
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
3127
3138
|
// @ts-expect-error
|
|
@@ -3990,6 +4001,21 @@ function _napi_fatal_exception(env, err) {
|
|
|
3990
4001
|
}
|
|
3991
4002
|
}
|
|
3992
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 */
|
|
3993
4019
|
function _napi_create_function(env, utf8name, length, cb, data, result) {
|
|
3994
4020
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3995
4021
|
var value;
|
|
@@ -4008,16 +4034,7 @@ function _napi_create_function(env, utf8name, length, cb, data, result) {
|
|
|
4008
4034
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4009
4035
|
if (!cb)
|
|
4010
4036
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4011
|
-
|
|
4012
|
-
var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
|
|
4013
|
-
if (fresult.status !== 0 /* napi_status.napi_ok */)
|
|
4014
|
-
return envObject.setLastError(fresult.status);
|
|
4015
|
-
var f = fresult.f;
|
|
4016
|
-
var valueHandle = emnapiCtx.addToCurrentScope(f);
|
|
4017
|
-
{{{ from64('result') }}};
|
|
4018
|
-
value = valueHandle.id;
|
|
4019
|
-
{{{ makeSetValue('result', 0, 'value', '*') }}};
|
|
4020
|
-
return envObject.getReturnStatus();
|
|
4037
|
+
return __emnapi_create_function(env, utf8name, length, cb, data, result);
|
|
4021
4038
|
}
|
|
4022
4039
|
catch (err) {
|
|
4023
4040
|
envObject.tryCatch.setError(err);
|
|
@@ -4192,6 +4209,7 @@ function _napi_get_new_target(env, cbinfo, result) {
|
|
|
4192
4209
|
{{{ from64('result') }}};
|
|
4193
4210
|
var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
|
|
4194
4211
|
var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
|
|
4212
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unused-vars
|
|
4195
4213
|
var value = thiz == null || thiz.constructor == null
|
|
4196
4214
|
? 0
|
|
4197
4215
|
: thiz instanceof fn
|
|
@@ -5521,28 +5539,75 @@ function _napi_run_script(env, script, result) {
|
|
|
5521
5539
|
*/
|
|
5522
5540
|
var emnapiTSFN = {
|
|
5523
5541
|
offset: {
|
|
5542
|
+
__size__: 0,
|
|
5524
5543
|
/* napi_ref */ resource: 0,
|
|
5525
|
-
/* double */ async_id:
|
|
5526
|
-
/* double */ trigger_async_id:
|
|
5527
|
-
/* size_t */ queue_size:
|
|
5528
|
-
/*
|
|
5529
|
-
/*
|
|
5530
|
-
/*
|
|
5531
|
-
/*
|
|
5532
|
-
/*
|
|
5533
|
-
/*
|
|
5534
|
-
/*
|
|
5535
|
-
/*
|
|
5536
|
-
/*
|
|
5537
|
-
/*
|
|
5538
|
-
/*
|
|
5539
|
-
/*
|
|
5540
|
-
/* bool */
|
|
5541
|
-
/*
|
|
5542
|
-
/* int32_t */
|
|
5543
|
-
|
|
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
|
|
5544
5563
|
},
|
|
5545
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;
|
|
5546
5611
|
if (typeof PThread !== 'undefined') {
|
|
5547
5612
|
PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
|
|
5548
5613
|
PThread.runningWorkers.forEach(emnapiTSFN.addListener);
|
|
@@ -5647,11 +5712,11 @@ var emnapiTSFN = {
|
|
|
5647
5712
|
var waitCondition = function () {
|
|
5648
5713
|
var queueSize = emnapiTSFN.getQueueSize(func);
|
|
5649
5714
|
var maxSize = emnapiTSFN.getMaxQueueSize(func);
|
|
5650
|
-
|
|
5651
|
-
return queueSize >= maxSize && maxSize > 0 && !isClosing;
|
|
5715
|
+
return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0 /* State.kOpen */;
|
|
5652
5716
|
};
|
|
5653
5717
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
5654
|
-
|
|
5718
|
+
var shouldDelete = false;
|
|
5719
|
+
var ret = mutex.execute(function () {
|
|
5655
5720
|
while (waitCondition()) {
|
|
5656
5721
|
if (mode === 0 /* napi_threadsafe_function_call_mode.napi_tsfn_nonblocking */) {
|
|
5657
5722
|
return 15 /* napi_status.napi_queue_full */;
|
|
@@ -5668,21 +5733,25 @@ var emnapiTSFN = {
|
|
|
5668
5733
|
}
|
|
5669
5734
|
cond.wait();
|
|
5670
5735
|
}
|
|
5671
|
-
if (emnapiTSFN.
|
|
5672
|
-
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
5673
|
-
return 1 /* napi_status.napi_invalid_arg */;
|
|
5674
|
-
}
|
|
5675
|
-
else {
|
|
5676
|
-
emnapiTSFN.subThreadCount(func);
|
|
5677
|
-
return 16 /* napi_status.napi_closing */;
|
|
5678
|
-
}
|
|
5679
|
-
}
|
|
5680
|
-
else {
|
|
5736
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
5681
5737
|
emnapiTSFN.pushQueue(func, data);
|
|
5682
5738
|
emnapiTSFN.send(func);
|
|
5683
5739
|
return 0 /* napi_status.napi_ok */;
|
|
5684
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 */;
|
|
5685
5750
|
});
|
|
5751
|
+
if (shouldDelete) {
|
|
5752
|
+
emnapiTSFN.destroy(func);
|
|
5753
|
+
}
|
|
5754
|
+
return ret;
|
|
5686
5755
|
},
|
|
5687
5756
|
getMutex: function (func) {
|
|
5688
5757
|
var index = func + emnapiTSFN.offset.mutex;
|
|
@@ -5692,7 +5761,7 @@ var emnapiTSFN = {
|
|
|
5692
5761
|
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
5693
5762
|
if (isBrowserMain) {
|
|
5694
5763
|
while (true) {
|
|
5695
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
5764
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
5696
5765
|
if (oldValue === 0) {
|
|
5697
5766
|
return;
|
|
5698
5767
|
}
|
|
@@ -5700,11 +5769,11 @@ var emnapiTSFN = {
|
|
|
5700
5769
|
}
|
|
5701
5770
|
else {
|
|
5702
5771
|
while (true) {
|
|
5703
|
-
var oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
5772
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
5704
5773
|
if (oldValue === 0) {
|
|
5705
5774
|
return;
|
|
5706
5775
|
}
|
|
5707
|
-
Atomics.wait(i32a, 0,
|
|
5776
|
+
Atomics.wait(i32a, 0, 10);
|
|
5708
5777
|
}
|
|
5709
5778
|
}
|
|
5710
5779
|
},
|
|
@@ -5713,20 +5782,20 @@ var emnapiTSFN = {
|
|
|
5713
5782
|
const again = (): void => { fn() }
|
|
5714
5783
|
const fn = (): void => {
|
|
5715
5784
|
const i32a = new Int32Array(wasmMemory.buffer, index, 1)
|
|
5716
|
-
const oldValue = Atomics.compareExchange(i32a, 0, 0,
|
|
5785
|
+
const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
|
|
5717
5786
|
if (oldValue === 0) {
|
|
5718
5787
|
resolve()
|
|
5719
5788
|
return
|
|
5720
5789
|
}
|
|
5721
|
-
(Atomics as any).waitAsync(i32a, 0,
|
|
5790
|
+
(Atomics as any).waitAsync(i32a, 0, 10).value.then(again)
|
|
5722
5791
|
}
|
|
5723
5792
|
fn()
|
|
5724
5793
|
})
|
|
5725
5794
|
}, */
|
|
5726
5795
|
unlock: function () {
|
|
5727
5796
|
var i32a = new Int32Array(wasmMemory.buffer, index, 1);
|
|
5728
|
-
var oldValue = Atomics.compareExchange(i32a, 0,
|
|
5729
|
-
if (oldValue !==
|
|
5797
|
+
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
5798
|
+
if (oldValue !== 10) {
|
|
5730
5799
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
5731
5800
|
}
|
|
5732
5801
|
Atomics.notify(i32a, 0, 1);
|
|
@@ -5837,17 +5906,17 @@ var emnapiTSFN = {
|
|
|
5837
5906
|
#endif
|
|
5838
5907
|
Atomics.sub(arr, index, {{{ to64('1') }}});
|
|
5839
5908
|
},
|
|
5840
|
-
|
|
5841
|
-
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);
|
|
5842
5911
|
},
|
|
5843
|
-
|
|
5844
|
-
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);
|
|
5845
5914
|
},
|
|
5846
5915
|
getHandlesClosing: function (func) {
|
|
5847
|
-
return Atomics.load(new
|
|
5916
|
+
return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
|
|
5848
5917
|
},
|
|
5849
5918
|
setHandlesClosing: function (func, value) {
|
|
5850
|
-
Atomics.store(new
|
|
5919
|
+
Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
|
|
5851
5920
|
},
|
|
5852
5921
|
getDispatchState: function (func) {
|
|
5853
5922
|
return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >> 2);
|
|
@@ -5923,46 +5992,72 @@ var emnapiTSFN = {
|
|
|
5923
5992
|
return undefined;
|
|
5924
5993
|
}
|
|
5925
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
|
+
},
|
|
5926
6024
|
destroy: function (func) {
|
|
5927
6025
|
emnapiTSFN.destroyQueue(func);
|
|
5928
|
-
|
|
5929
|
-
var envObject = emnapiCtx.envStore.get(env);
|
|
5930
|
-
var ref = emnapiTSFN.getRef(func);
|
|
5931
|
-
if (ref) {
|
|
5932
|
-
emnapiCtx.refStore.get(ref).dispose();
|
|
5933
|
-
}
|
|
5934
|
-
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
5935
|
-
envObject.unref();
|
|
5936
|
-
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
5937
|
-
var arr = new Int32Array(wasmMemory.buffer);
|
|
5938
|
-
if (Atomics.load(arr, asyncRefOffset)) {
|
|
5939
|
-
Atomics.store(arr, asyncRefOffset, 0);
|
|
5940
|
-
__emnapi_runtime_keepalive_pop();
|
|
5941
|
-
emnapiCtx.decreaseWaitingRequestCounter();
|
|
5942
|
-
}
|
|
5943
|
-
var resource = emnapiTSFN.getResource(func);
|
|
5944
|
-
emnapiCtx.refStore.get(resource).dispose();
|
|
5945
|
-
if (emnapiNodeBinding) {
|
|
5946
|
-
var view = new DataView(wasmMemory.buffer);
|
|
5947
|
-
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
5948
|
-
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
5949
|
-
__emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
5950
|
-
}
|
|
6026
|
+
emnapiTSFN.releaseResources(func);
|
|
5951
6027
|
_free({{{ to64('func') }}});
|
|
5952
6028
|
},
|
|
5953
|
-
|
|
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
|
+
});
|
|
5954
6036
|
var callJsCb = emnapiTSFN.getCallJSCb(func);
|
|
5955
6037
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5956
6038
|
var context = emnapiTSFN.getContext(func);
|
|
5957
6039
|
var data;
|
|
5958
|
-
|
|
6040
|
+
for (var i = 0; i < drainQueue.length; i++) {
|
|
5959
6041
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5960
|
-
data =
|
|
6042
|
+
data = drainQueue[i];
|
|
5961
6043
|
if (callJsCb) {
|
|
5962
6044
|
{{{ makeDynCall('vpppp', 'callJsCb') }}}({{{ to64('0') }}}, {{{ to64('0') }}}, {{{ to64('context') }}}, {{{ to64('data') }}});
|
|
5963
6045
|
}
|
|
5964
6046
|
}
|
|
5965
|
-
|
|
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
|
+
}
|
|
5966
6061
|
},
|
|
5967
6062
|
finalize: function (func) {
|
|
5968
6063
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -5977,6 +6072,7 @@ var emnapiTSFN = {
|
|
|
5977
6072
|
envObject.callFinalizerInternal(0, {{{ to64('finalize') }}}, {{{ to64('data') }}}, {{{ to64('context') }}});
|
|
5978
6073
|
};
|
|
5979
6074
|
try {
|
|
6075
|
+
emnapiTSFN.emptyQueue(func);
|
|
5980
6076
|
if (finalize) {
|
|
5981
6077
|
if (emnapiNodeBinding) {
|
|
5982
6078
|
var resource = emnapiTSFN.getResource(func);
|
|
@@ -5994,7 +6090,7 @@ var emnapiTSFN = {
|
|
|
5994
6090
|
f();
|
|
5995
6091
|
}
|
|
5996
6092
|
}
|
|
5997
|
-
emnapiTSFN.
|
|
6093
|
+
emnapiTSFN.maybeDelete(func);
|
|
5998
6094
|
}
|
|
5999
6095
|
finally {
|
|
6000
6096
|
emnapiCtx.closeScope(envObject);
|
|
@@ -6010,7 +6106,7 @@ var emnapiTSFN = {
|
|
|
6010
6106
|
try {
|
|
6011
6107
|
if (set_closing) {
|
|
6012
6108
|
emnapiTSFN.getMutex(func).execute(function () {
|
|
6013
|
-
emnapiTSFN.
|
|
6109
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
6014
6110
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
6015
6111
|
emnapiTSFN.getCond(func).signal();
|
|
6016
6112
|
}
|
|
@@ -6036,10 +6132,7 @@ var emnapiTSFN = {
|
|
|
6036
6132
|
var mutex = emnapiTSFN.getMutex(func);
|
|
6037
6133
|
var cond = emnapiTSFN.getCond(func);
|
|
6038
6134
|
mutex.execute(function () {
|
|
6039
|
-
if (emnapiTSFN.
|
|
6040
|
-
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
6041
|
-
}
|
|
6042
|
-
else {
|
|
6135
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
6043
6136
|
var size = emnapiTSFN.getQueueSize(func);
|
|
6044
6137
|
if (size > 0) {
|
|
6045
6138
|
data = emnapiTSFN.shiftQueue(func);
|
|
@@ -6052,7 +6145,7 @@ var emnapiTSFN = {
|
|
|
6052
6145
|
}
|
|
6053
6146
|
if (size === 0) {
|
|
6054
6147
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
6055
|
-
emnapiTSFN.
|
|
6148
|
+
emnapiTSFN.setState(func, 1 /* State.kClosing */);
|
|
6056
6149
|
if (emnapiTSFN.getMaxQueueSize(func) > 0) {
|
|
6057
6150
|
cond.signal();
|
|
6058
6151
|
}
|
|
@@ -6063,6 +6156,9 @@ var emnapiTSFN = {
|
|
|
6063
6156
|
has_more = true;
|
|
6064
6157
|
}
|
|
6065
6158
|
}
|
|
6159
|
+
else {
|
|
6160
|
+
emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
|
|
6161
|
+
}
|
|
6066
6162
|
});
|
|
6067
6163
|
if (popped_value) {
|
|
6068
6164
|
var env = emnapiTSFN.getEnv(func);
|
|
@@ -6201,21 +6297,24 @@ function _napi_create_threadsafe_function(env, func, async_resource, async_resou
|
|
|
6201
6297
|
asyncResourceName = String(asyncResourceName);
|
|
6202
6298
|
var resource_name = envObject.ensureHandleId(asyncResourceName);
|
|
6203
6299
|
// tsfn create
|
|
6204
|
-
var sizeofTSFN = emnapiTSFN.offset.
|
|
6300
|
+
var sizeofTSFN = emnapiTSFN.offset.__size__;
|
|
6301
|
+
// eslint-disable-next-line prefer-const
|
|
6205
6302
|
var tsfn = _malloc({{{ to64('sizeofTSFN') }}});
|
|
6206
6303
|
if (!tsfn)
|
|
6207
6304
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
6305
|
+
{{{ from64('tsfn') }}};
|
|
6208
6306
|
new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
|
|
6209
6307
|
var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
6210
6308
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6211
6309
|
var resource_ = resourceRef.id;
|
|
6212
|
-
{{{ makeSetValue('tsfn',
|
|
6310
|
+
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.resource', 'resource_', '*') }}};
|
|
6213
6311
|
if (!emnapiTSFN.initQueue(tsfn)) {
|
|
6214
6312
|
_free({{{ to64('tsfn') }}});
|
|
6215
6313
|
resourceRef.dispose();
|
|
6216
6314
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
6217
6315
|
}
|
|
6218
6316
|
__emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
|
|
6317
|
+
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.is_some', '1', 'i8') }}};
|
|
6219
6318
|
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.thread_count', 'initial_thread_count', SIZE_TYPE) }}};
|
|
6220
6319
|
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.context', 'context', '*') }}};
|
|
6221
6320
|
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.max_queue_size', 'max_queue_size', SIZE_TYPE) }}};
|
|
@@ -6228,7 +6327,7 @@ function _napi_create_threadsafe_function(env, func, async_resource, async_resou
|
|
|
6228
6327
|
envObject.ref();
|
|
6229
6328
|
__emnapi_runtime_keepalive_push();
|
|
6230
6329
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
6231
|
-
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.async_ref', '1', '
|
|
6330
|
+
{{{ makeSetValue('tsfn', 'emnapiTSFN.offset.async_ref', '1', 'u32') }}};
|
|
6232
6331
|
{{{ from64('result') }}};
|
|
6233
6332
|
{{{ makeSetValue('result', 0, 'tsfn', '*') }}};
|
|
6234
6333
|
return envObject.clearLastError();
|
|
@@ -6265,11 +6364,11 @@ function _napi_acquire_threadsafe_function(func) {
|
|
|
6265
6364
|
{{{ from64('func') }}};
|
|
6266
6365
|
var mutex = emnapiTSFN.getMutex(func);
|
|
6267
6366
|
return mutex.execute(function () {
|
|
6268
|
-
if (emnapiTSFN.
|
|
6269
|
-
|
|
6367
|
+
if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
|
|
6368
|
+
emnapiTSFN.addThreadCount(func);
|
|
6369
|
+
return 0 /* napi_status.napi_ok */;
|
|
6270
6370
|
}
|
|
6271
|
-
|
|
6272
|
-
return 0 /* napi_status.napi_ok */;
|
|
6371
|
+
return 16 /* napi_status.napi_closing */;
|
|
6273
6372
|
});
|
|
6274
6373
|
}
|
|
6275
6374
|
/** @__sig ipi */
|
|
@@ -6281,24 +6380,33 @@ function _napi_release_threadsafe_function(func, mode) {
|
|
|
6281
6380
|
{{{ from64('func') }}};
|
|
6282
6381
|
var mutex = emnapiTSFN.getMutex(func);
|
|
6283
6382
|
var cond = emnapiTSFN.getCond(func);
|
|
6284
|
-
|
|
6383
|
+
var shouldDelete = false;
|
|
6384
|
+
var ret = mutex.execute(function () {
|
|
6285
6385
|
if (emnapiTSFN.getThreadCount(func) === 0) {
|
|
6286
6386
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
6287
6387
|
}
|
|
6288
6388
|
emnapiTSFN.subThreadCount(func);
|
|
6289
6389
|
if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
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) {
|
|
6295
6395
|
cond.signal();
|
|
6296
6396
|
}
|
|
6297
6397
|
emnapiTSFN.send(func);
|
|
6298
6398
|
}
|
|
6299
6399
|
}
|
|
6400
|
+
if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
|
|
6401
|
+
return 0 /* napi_status.napi_ok */;
|
|
6402
|
+
}
|
|
6403
|
+
shouldDelete = true;
|
|
6300
6404
|
return 0 /* napi_status.napi_ok */;
|
|
6301
6405
|
});
|
|
6406
|
+
if (shouldDelete) {
|
|
6407
|
+
emnapiTSFN.destroy(func);
|
|
6408
|
+
}
|
|
6409
|
+
return ret;
|
|
6302
6410
|
}
|
|
6303
6411
|
/** @__sig ipp */
|
|
6304
6412
|
function _napi_unref_threadsafe_function(env, func) {
|
|
@@ -6308,11 +6416,14 @@ function _napi_unref_threadsafe_function(env, func) {
|
|
|
6308
6416
|
}
|
|
6309
6417
|
{{{ from64('func') }}};
|
|
6310
6418
|
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
6311
|
-
var arr = new
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
-
|
|
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
|
+
}
|
|
6316
6427
|
}
|
|
6317
6428
|
return 0 /* napi_status.napi_ok */;
|
|
6318
6429
|
}
|
|
@@ -6324,12 +6435,13 @@ function _napi_ref_threadsafe_function(env, func) {
|
|
|
6324
6435
|
}
|
|
6325
6436
|
{{{ from64('func') }}};
|
|
6326
6437
|
var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
|
|
6327
|
-
var arr = new
|
|
6328
|
-
|
|
6329
|
-
|
|
6438
|
+
var arr = new Uint32Array(wasmMemory.buffer);
|
|
6439
|
+
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
6440
|
+
if (!currentValue) {
|
|
6330
6441
|
__emnapi_runtime_keepalive_push();
|
|
6331
6442
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
6332
6443
|
}
|
|
6444
|
+
Atomics.store(arr, asyncRefOffset, currentValue + 1);
|
|
6333
6445
|
return 0 /* napi_status.napi_ok */;
|
|
6334
6446
|
}
|
|
6335
6447
|
/** @__sig ippp */
|
|
@@ -6857,6 +6969,14 @@ function _napi_get_version(env, result) {
|
|
|
6857
6969
|
_emnapi_close_handle_scope: __emnapi_close_handle_scope,
|
|
6858
6970
|
_emnapi_close_handle_scope__deps: ["$emnapiCtx", "$emnapiCtx"],
|
|
6859
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",
|
|
6860
6980
|
_emnapi_ctx_decrease_waiting_request_counter: __emnapi_ctx_decrease_waiting_request_counter,
|
|
6861
6981
|
_emnapi_ctx_decrease_waiting_request_counter__deps: ["$emnapiCtx"],
|
|
6862
6982
|
_emnapi_ctx_decrease_waiting_request_counter__sig: "v",
|
|
@@ -6872,9 +6992,6 @@ function _napi_get_version(env, result) {
|
|
|
6872
6992
|
_emnapi_env_unref: __emnapi_env_unref,
|
|
6873
6993
|
_emnapi_env_unref__deps: ["$emnapiCtx"],
|
|
6874
6994
|
_emnapi_env_unref__sig: "vp",
|
|
6875
|
-
$emnapiString: emnapiString,
|
|
6876
|
-
$emnapiString__deps: ["$emnapiCtx"],
|
|
6877
|
-
$emnapiString__postset: "emnapiString.init();",
|
|
6878
6995
|
_emnapi_get_filename: __emnapi_get_filename,
|
|
6879
6996
|
_emnapi_get_filename__deps: ["$emnapiCtx", "$emnapiString"],
|
|
6880
6997
|
_emnapi_get_filename__sig: "ippi",
|
|
@@ -6909,6 +7026,9 @@ function _napi_get_version(env, result) {
|
|
|
6909
7026
|
_emnapi_runtime_keepalive_push__sig: "v",
|
|
6910
7027
|
_emnapi_unwind: __emnapi_unwind,
|
|
6911
7028
|
_emnapi_unwind__sig: "v",
|
|
7029
|
+
_emnapi_worker_ref: __emnapi_worker_ref,
|
|
7030
|
+
_emnapi_worker_ref__deps: ["$PThread"],
|
|
7031
|
+
_emnapi_worker_ref__sig: "vp",
|
|
6912
7032
|
_emnapi_worker_unref: __emnapi_worker_unref,
|
|
6913
7033
|
_emnapi_worker_unref__deps: ["$PThread"],
|
|
6914
7034
|
_emnapi_worker_unref__sig: "vp",
|
|
@@ -7044,10 +7164,8 @@ function _napi_get_version(env, result) {
|
|
|
7044
7164
|
napi_create_external_buffer: _napi_create_external_buffer,
|
|
7045
7165
|
napi_create_external_buffer__deps: ["emnapi_create_memory_view"],
|
|
7046
7166
|
napi_create_external_buffer__sig: "ipppppp",
|
|
7047
|
-
$emnapiCreateFunction: emnapiCreateFunction,
|
|
7048
|
-
$emnapiCreateFunction__deps: ["$emnapiString", "$emnapiCtx"],
|
|
7049
7167
|
napi_create_function: _napi_create_function,
|
|
7050
|
-
napi_create_function__deps: ["$emnapiCtx", "
|
|
7168
|
+
napi_create_function__deps: ["$emnapiCtx", "_emnapi_create_function"],
|
|
7051
7169
|
napi_create_function__sig: "ipppppp",
|
|
7052
7170
|
napi_create_int32: _napi_create_int32,
|
|
7053
7171
|
napi_create_int32__deps: ["$emnapiCtx"],
|
|
@@ -7058,9 +7176,6 @@ function _napi_get_version(env, result) {
|
|
|
7058
7176
|
napi_create_object: _napi_create_object,
|
|
7059
7177
|
napi_create_object__deps: ["$emnapiCtx"],
|
|
7060
7178
|
napi_create_object__sig: "ipp",
|
|
7061
|
-
napi_create_object_with_properties: _napi_create_object_with_properties,
|
|
7062
|
-
napi_create_object_with_properties__deps: ["$emnapiCtx"],
|
|
7063
|
-
napi_create_object_with_properties__sig: "ipppppp",
|
|
7064
7179
|
napi_create_promise: _napi_create_promise,
|
|
7065
7180
|
napi_create_promise__deps: ["$emnapiCtx"],
|
|
7066
7181
|
napi_create_promise__sig: "ippp",
|
|
@@ -7384,6 +7499,9 @@ function _napi_get_version(env, result) {
|
|
|
7384
7499
|
node_api_create_external_string_utf16: _node_api_create_external_string_utf16,
|
|
7385
7500
|
node_api_create_external_string_utf16__deps: ["$emnapiString", "napi_create_string_utf16"],
|
|
7386
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",
|
|
7387
7505
|
node_api_create_property_key_latin1: _node_api_create_property_key_latin1,
|
|
7388
7506
|
node_api_create_property_key_latin1__deps: ["napi_create_string_latin1"],
|
|
7389
7507
|
node_api_create_property_key_latin1__sig: "ipppp",
|
package/emnapi.gyp
CHANGED
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
'target_name': 'emnapi_basic',
|
|
49
49
|
'type': 'static_library',
|
|
50
50
|
'defines': [
|
|
51
|
-
'EMNAPI_DISABLE_UV'
|
|
52
51
|
],
|
|
53
52
|
'sources': [
|
|
54
53
|
'src/js_native_api.c',
|
|
@@ -56,6 +55,14 @@
|
|
|
56
55
|
'src/async_cleanup_hook.c',
|
|
57
56
|
'src/async_context.c',
|
|
58
57
|
'src/wasi_wait.c',
|
|
58
|
+
|
|
59
|
+
'src/uv/uv-common.c',
|
|
60
|
+
'src/uv/threadpool.c',
|
|
61
|
+
'src/uv/unix/loop.c',
|
|
62
|
+
'src/uv/unix/posix-hrtime.c',
|
|
63
|
+
'src/uv/unix/thread.c',
|
|
64
|
+
'src/uv/unix/async.c',
|
|
65
|
+
'src/uv/unix/core.c',
|
|
59
66
|
],
|
|
60
67
|
'link_settings': {
|
|
61
68
|
'target_conditions': [
|