@tailwindcss/oxide-wasm32-wasi 4.3.1 → 4.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.js +320 -98
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts +0 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.d.mts +0 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.d.ts +0 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js +385 -97
- package/node_modules/@emnapi/core/dist/emnapi-core.js +399 -120
- package/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts +0 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.min.js +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.min.mjs +1 -1
- package/node_modules/@emnapi/core/dist/emnapi-core.mjs +320 -98
- package/node_modules/@emnapi/core/package.json +2 -2
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.esm-bundler.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.iife.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.min.js +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.min.mjs +1 -1
- package/node_modules/@emnapi/runtime/dist/emnapi.mjs +1 -1
- package/node_modules/@emnapi/runtime/package.json +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.js +14 -23
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.d.ts +0 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.js +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.mts +0 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.ts +0 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js +14 -23
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.js +14 -23
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.d.mts +0 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.js +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.mjs +1 -1
- package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.mjs +14 -23
- package/node_modules/@emnapi/wasi-threads/package.json +1 -1
- package/package.json +4 -4
- package/tailwindcss-oxide.wasm32-wasi.wasm +0 -0
|
@@ -127,10 +127,10 @@ function createNapiModule(options) {
|
|
|
127
127
|
if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
|
|
128
128
|
throw new TypeError('Invalid wasm instance');
|
|
129
129
|
wasmInstance = instance;
|
|
130
|
-
var exports
|
|
130
|
+
var exports = instance.exports;
|
|
131
131
|
var module = options.module;
|
|
132
|
-
var memory = options.memory || exports
|
|
133
|
-
var table = options.table || exports
|
|
132
|
+
var memory = options.memory || exports.memory;
|
|
133
|
+
var table = options.table || exports.__indirect_function_table;
|
|
134
134
|
if (!(module instanceof _WebAssembly.Module))
|
|
135
135
|
throw new TypeError('Invalid wasm module');
|
|
136
136
|
if (!(memory instanceof _WebAssembly.Memory))
|
|
@@ -139,12 +139,12 @@ function createNapiModule(options) {
|
|
|
139
139
|
throw new TypeError('Invalid wasm table');
|
|
140
140
|
wasmMemory = memory;
|
|
141
141
|
wasmTable = table;
|
|
142
|
-
if (typeof exports
|
|
142
|
+
if (typeof exports.malloc !== 'function')
|
|
143
143
|
throw new TypeError('malloc is not exported');
|
|
144
|
-
if (typeof exports
|
|
144
|
+
if (typeof exports.free !== 'function')
|
|
145
145
|
throw new TypeError('free is not exported');
|
|
146
|
-
_malloc = exports
|
|
147
|
-
_free = exports
|
|
146
|
+
_malloc = exports.malloc;
|
|
147
|
+
_free = exports.free;
|
|
148
148
|
if (!napiModule.childThread) {
|
|
149
149
|
// main thread only
|
|
150
150
|
var moduleApiVersion = 8 /* Version.NODE_API_DEFAULT_MODULE_API_VERSION */;
|
|
@@ -157,11 +157,11 @@ function createNapiModule(options) {
|
|
|
157
157
|
var scope_1 = emnapiCtx.openScope(envObject);
|
|
158
158
|
try {
|
|
159
159
|
envObject.callIntoModule(function (_envObject) {
|
|
160
|
-
var exports
|
|
161
|
-
var exportsHandle = scope_1.add(exports
|
|
160
|
+
var exports = napiModule.exports;
|
|
161
|
+
var exportsHandle = scope_1.add(exports);
|
|
162
162
|
var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
|
|
163
163
|
var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
|
|
164
|
-
napiModule.exports = (!napiValue) ? exports
|
|
164
|
+
napiModule.exports = (!napiValue) ? exports : emnapiCtx.handleStore.get(napiValue).value;
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
167
|
catch (e) {
|
|
@@ -1059,7 +1059,7 @@ function createNapiModule(options) {
|
|
|
1059
1059
|
emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
|
|
1060
1060
|
if (typeof PThread !== 'undefined') {
|
|
1061
1061
|
PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
|
|
1062
|
-
PThread.
|
|
1062
|
+
Object.values(PThread.pthreads).forEach(emnapiTSFN.addListener);
|
|
1063
1063
|
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
1064
1064
|
PThread.getNewWorker = function () {
|
|
1065
1065
|
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
@@ -1081,7 +1081,7 @@ function createNapiModule(options) {
|
|
|
1081
1081
|
var payload = __emnapi__.payload;
|
|
1082
1082
|
if (type === 'tsfn-send') {
|
|
1083
1083
|
var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
|
|
1084
|
-
if (Atomics.load(new Int32Array(
|
|
1084
|
+
if (Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2) !== 0) {
|
|
1085
1085
|
emnapiTSFN.enqueue(payload.tsfn);
|
|
1086
1086
|
}
|
|
1087
1087
|
}
|
|
@@ -1105,13 +1105,28 @@ function createNapiModule(options) {
|
|
|
1105
1105
|
}
|
|
1106
1106
|
return true;
|
|
1107
1107
|
},
|
|
1108
|
+
/**
|
|
1109
|
+
* When another thread grows the shared WebAssembly.Memory, this agent's
|
|
1110
|
+
* cached `wasmMemory.buffer` may still have the old shorter length
|
|
1111
|
+
* (V8 refreshes it lazily). If a pointer derived from shared memory lies
|
|
1112
|
+
* beyond the cached length, `wasmMemory.grow(0)` forces the agent to
|
|
1113
|
+
* observe the current memory size and refreshes the buffer.
|
|
1114
|
+
*/
|
|
1115
|
+
ensureBufferFor: function (end) {
|
|
1116
|
+
var buffer = wasmMemory.buffer;
|
|
1117
|
+
if (end > buffer.byteLength) {
|
|
1118
|
+
wasmMemory.grow(0);
|
|
1119
|
+
buffer = wasmMemory.buffer;
|
|
1120
|
+
}
|
|
1121
|
+
return buffer;
|
|
1122
|
+
},
|
|
1108
1123
|
initQueue: function (func) {
|
|
1109
1124
|
var size = 2 * 4;
|
|
1110
1125
|
var queue = _malloc(size);
|
|
1111
1126
|
if (!queue)
|
|
1112
1127
|
return false;
|
|
1113
1128
|
queue >>>= 0;
|
|
1114
|
-
new Uint8Array(
|
|
1129
|
+
new Uint8Array(emnapiTSFN.ensureBufferFor(queue + size), queue, size).fill(0);
|
|
1115
1130
|
emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
|
|
1116
1131
|
return true;
|
|
1117
1132
|
},
|
|
@@ -1218,7 +1233,7 @@ function createNapiModule(options) {
|
|
|
1218
1233
|
var mutex = {
|
|
1219
1234
|
lock: function () {
|
|
1220
1235
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
1221
|
-
var i32a = new Int32Array(
|
|
1236
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1222
1237
|
if (isBrowserMain) {
|
|
1223
1238
|
while (true) {
|
|
1224
1239
|
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
@@ -1241,7 +1256,7 @@ function createNapiModule(options) {
|
|
|
1241
1256
|
return new Promise<void>(resolve => {
|
|
1242
1257
|
const again = (): void => { fn() }
|
|
1243
1258
|
const fn = (): void => {
|
|
1244
|
-
const i32a = new Int32Array(
|
|
1259
|
+
const i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1)
|
|
1245
1260
|
const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
|
|
1246
1261
|
if (oldValue === 0) {
|
|
1247
1262
|
resolve()
|
|
@@ -1253,7 +1268,7 @@ function createNapiModule(options) {
|
|
|
1253
1268
|
})
|
|
1254
1269
|
}, */
|
|
1255
1270
|
unlock: function () {
|
|
1256
|
-
var i32a = new Int32Array(
|
|
1271
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1257
1272
|
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
1258
1273
|
if (oldValue !== 10) {
|
|
1259
1274
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
@@ -1287,14 +1302,14 @@ function createNapiModule(options) {
|
|
|
1287
1302
|
var mutex = emnapiTSFN.getMutex(func);
|
|
1288
1303
|
var cond = {
|
|
1289
1304
|
wait: function () {
|
|
1290
|
-
var i32a = new Int32Array(
|
|
1305
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1291
1306
|
var value = Atomics.load(i32a, 0);
|
|
1292
1307
|
mutex.unlock();
|
|
1293
1308
|
Atomics.wait(i32a, 0, value);
|
|
1294
1309
|
mutex.lock();
|
|
1295
1310
|
},
|
|
1296
1311
|
/* waitAsync () {
|
|
1297
|
-
const i32a = new Int32Array(
|
|
1312
|
+
const i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1)
|
|
1298
1313
|
const value = Atomics.load(i32a, 0)
|
|
1299
1314
|
mutex.unlock()
|
|
1300
1315
|
const lock = (): Promise<void> => mutex.lockAsync()
|
|
@@ -1305,7 +1320,7 @@ function createNapiModule(options) {
|
|
|
1305
1320
|
}
|
|
1306
1321
|
}, */
|
|
1307
1322
|
signal: function () {
|
|
1308
|
-
var i32a = new Int32Array(
|
|
1323
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(index + 4), index, 1);
|
|
1309
1324
|
Atomics.add(i32a, 0, 1);
|
|
1310
1325
|
Atomics.notify(i32a, 0, 1);
|
|
1311
1326
|
}
|
|
@@ -1318,14 +1333,14 @@ function createNapiModule(options) {
|
|
|
1318
1333
|
addQueueSize: function (func) {
|
|
1319
1334
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1320
1335
|
var arr, index;
|
|
1321
|
-
arr = new Uint32Array(
|
|
1336
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1322
1337
|
index = (func + offset) >>> 2;
|
|
1323
1338
|
Atomics.add(arr, index, 1);
|
|
1324
1339
|
},
|
|
1325
1340
|
subQueueSize: function (func) {
|
|
1326
1341
|
var offset = emnapiTSFN.offset.queue_size;
|
|
1327
1342
|
var arr, index;
|
|
1328
|
-
arr = new Uint32Array(
|
|
1343
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1329
1344
|
index = (func + offset) >>> 2;
|
|
1330
1345
|
Atomics.sub(arr, index, 1);
|
|
1331
1346
|
},
|
|
@@ -1335,31 +1350,31 @@ function createNapiModule(options) {
|
|
|
1335
1350
|
addThreadCount: function (func) {
|
|
1336
1351
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1337
1352
|
var arr, index;
|
|
1338
|
-
arr = new Uint32Array(
|
|
1353
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1339
1354
|
index = (func + offset) >>> 2;
|
|
1340
1355
|
Atomics.add(arr, index, 1);
|
|
1341
1356
|
},
|
|
1342
1357
|
subThreadCount: function (func) {
|
|
1343
1358
|
var offset = emnapiTSFN.offset.thread_count;
|
|
1344
1359
|
var arr, index;
|
|
1345
|
-
arr = new Uint32Array(
|
|
1360
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(func + offset + 4));
|
|
1346
1361
|
index = (func + offset) >>> 2;
|
|
1347
1362
|
Atomics.sub(arr, index, 1);
|
|
1348
1363
|
},
|
|
1349
1364
|
getState: function (func) {
|
|
1350
|
-
return Atomics.load(new Int32Array(
|
|
1365
|
+
return Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.state + 4)), (func + emnapiTSFN.offset.state) >>> 2);
|
|
1351
1366
|
},
|
|
1352
1367
|
setState: function (func, value) {
|
|
1353
|
-
Atomics.store(new Int32Array(
|
|
1368
|
+
Atomics.store(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.state + 4)), (func + emnapiTSFN.offset.state) >>> 2, value);
|
|
1354
1369
|
},
|
|
1355
1370
|
getHandlesClosing: function (func) {
|
|
1356
|
-
return Atomics.load(new Int8Array(
|
|
1371
|
+
return Atomics.load(new Int8Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.handles_closing + 1)), (func + emnapiTSFN.offset.handles_closing));
|
|
1357
1372
|
},
|
|
1358
1373
|
setHandlesClosing: function (func, value) {
|
|
1359
|
-
Atomics.store(new Int8Array(
|
|
1374
|
+
Atomics.store(new Int8Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.handles_closing + 1)), (func + emnapiTSFN.offset.handles_closing), value);
|
|
1360
1375
|
},
|
|
1361
1376
|
getDispatchState: function (func) {
|
|
1362
|
-
return Atomics.load(new Uint32Array(
|
|
1377
|
+
return Atomics.load(new Uint32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.dispatch_state + 4)), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
|
|
1363
1378
|
},
|
|
1364
1379
|
getContext: function (func) {
|
|
1365
1380
|
return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
|
|
@@ -1389,12 +1404,12 @@ function createNapiModule(options) {
|
|
|
1389
1404
|
var ret;
|
|
1390
1405
|
var arr;
|
|
1391
1406
|
if (unsigned) {
|
|
1392
|
-
arr = new Uint32Array(
|
|
1407
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1393
1408
|
ret = Atomics.load(arr, offset >>> 2);
|
|
1394
1409
|
return ret;
|
|
1395
1410
|
}
|
|
1396
1411
|
else {
|
|
1397
|
-
arr = new Int32Array(
|
|
1412
|
+
arr = new Int32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1398
1413
|
ret = Atomics.load(arr, offset >>> 2);
|
|
1399
1414
|
return ret;
|
|
1400
1415
|
}
|
|
@@ -1402,12 +1417,12 @@ function createNapiModule(options) {
|
|
|
1402
1417
|
storeSizeTypeValue: function (offset, value, unsigned) {
|
|
1403
1418
|
var arr;
|
|
1404
1419
|
if (unsigned) {
|
|
1405
|
-
arr = new Uint32Array(
|
|
1420
|
+
arr = new Uint32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1406
1421
|
Atomics.store(arr, offset >>> 2, value);
|
|
1407
1422
|
return undefined;
|
|
1408
1423
|
}
|
|
1409
1424
|
else {
|
|
1410
|
-
arr = new Int32Array(
|
|
1425
|
+
arr = new Int32Array(emnapiTSFN.ensureBufferFor(offset + 4));
|
|
1411
1426
|
Atomics.store(arr, offset >>> 2, value >>> 0);
|
|
1412
1427
|
return undefined;
|
|
1413
1428
|
}
|
|
@@ -1423,18 +1438,20 @@ function createNapiModule(options) {
|
|
|
1423
1438
|
}
|
|
1424
1439
|
var resource = emnapiTSFN.getResource(func);
|
|
1425
1440
|
emnapiCtx.refStore.get(resource).dispose();
|
|
1441
|
+
emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.is_some + 1);
|
|
1426
1442
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
1427
1443
|
HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
|
|
1428
1444
|
emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
|
|
1429
1445
|
envObject.unref();
|
|
1430
|
-
var
|
|
1431
|
-
var
|
|
1446
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1447
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1448
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1432
1449
|
if (Atomics.load(arr, asyncRefOffset) > 0) {
|
|
1433
1450
|
Atomics.store(arr, asyncRefOffset, 0);
|
|
1434
1451
|
emnapiCtx.decreaseWaitingRequestCounter();
|
|
1435
1452
|
}
|
|
1436
1453
|
if (emnapiNodeBinding) {
|
|
1437
|
-
var view = new DataView(
|
|
1454
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1438
1455
|
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1439
1456
|
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1440
1457
|
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
@@ -1499,7 +1516,7 @@ function createNapiModule(options) {
|
|
|
1499
1516
|
var resource = emnapiTSFN.getResource(func);
|
|
1500
1517
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
1501
1518
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
1502
|
-
var view = new DataView(
|
|
1519
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1503
1520
|
var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
|
|
1504
1521
|
var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
|
|
1505
1522
|
emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
|
|
@@ -1537,7 +1554,7 @@ function createNapiModule(options) {
|
|
|
1537
1554
|
return;
|
|
1538
1555
|
}
|
|
1539
1556
|
emnapiTSFN.setHandlesClosing(func, 1);
|
|
1540
|
-
Atomics.store(new Int32Array(
|
|
1557
|
+
Atomics.store(new Int32Array(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.async_pending + 4)), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
|
|
1541
1558
|
emnapiCtx.feature.setImmediate(function () {
|
|
1542
1559
|
emnapiTSFN.finalize(func);
|
|
1543
1560
|
});
|
|
@@ -1609,7 +1626,7 @@ function createNapiModule(options) {
|
|
|
1609
1626
|
var resource = emnapiTSFN.getResource(func);
|
|
1610
1627
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
1611
1628
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
1612
|
-
var view = new DataView(
|
|
1629
|
+
var view = new DataView(emnapiTSFN.ensureBufferFor(func + emnapiTSFN.offset.trigger_async_id + 8));
|
|
1613
1630
|
emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
|
|
1614
1631
|
asyncId: view.getFloat64(func + emnapiTSFN.offset.async_id, true),
|
|
1615
1632
|
triggerAsyncId: view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true)
|
|
@@ -1628,8 +1645,9 @@ function createNapiModule(options) {
|
|
|
1628
1645
|
dispatch: function (func) {
|
|
1629
1646
|
var has_more = true;
|
|
1630
1647
|
var iterations_left = 1000;
|
|
1631
|
-
var
|
|
1632
|
-
var
|
|
1648
|
+
var dispatchStateAddress = func + emnapiTSFN.offset.dispatch_state;
|
|
1649
|
+
var ui32a = new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4));
|
|
1650
|
+
var index = dispatchStateAddress >>> 2;
|
|
1633
1651
|
while (has_more && --iterations_left !== 0) {
|
|
1634
1652
|
Atomics.store(ui32a, index, 1);
|
|
1635
1653
|
has_more = emnapiTSFN.dispatchOne(func);
|
|
@@ -1648,7 +1666,7 @@ function createNapiModule(options) {
|
|
|
1648
1666
|
// `scheduled` prevents queueing the same main-thread drain chain more than
|
|
1649
1667
|
// once while a previous wakeup is still in flight.
|
|
1650
1668
|
var scheduled = func + emnapiTSFN.offset.async_u_fd;
|
|
1651
|
-
var i32a = new Int32Array(
|
|
1669
|
+
var i32a = new Int32Array(emnapiTSFN.ensureBufferFor(Math.max(pending, scheduled) + 4));
|
|
1652
1670
|
if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
|
|
1653
1671
|
return;
|
|
1654
1672
|
}
|
|
@@ -1692,17 +1710,18 @@ function createNapiModule(options) {
|
|
|
1692
1710
|
});
|
|
1693
1711
|
},
|
|
1694
1712
|
send: function (func) {
|
|
1695
|
-
var
|
|
1713
|
+
var dispatchStateAddress = func + emnapiTSFN.offset.dispatch_state;
|
|
1714
|
+
var current_state = Atomics.or(new Uint32Array(emnapiTSFN.ensureBufferFor(dispatchStateAddress + 4)), dispatchStateAddress >>> 2, 1 << 1);
|
|
1696
1715
|
if ((current_state & 1) === 1) {
|
|
1697
1716
|
return;
|
|
1698
1717
|
}
|
|
1699
1718
|
var pendng = func + emnapiTSFN.offset.async_pending;
|
|
1700
1719
|
// A wakeup is already pending, so this send only needs to leave the queued
|
|
1701
1720
|
// work in the TSFN queue and let the existing drain pick it up.
|
|
1702
|
-
if (Atomics.load(new Int32Array(
|
|
1721
|
+
if (Atomics.load(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2) !== 0) {
|
|
1703
1722
|
return;
|
|
1704
1723
|
}
|
|
1705
|
-
if (Atomics.exchange(new Int32Array(
|
|
1724
|
+
if (Atomics.exchange(new Int32Array(emnapiTSFN.ensureBufferFor(pendng + 4)), pendng >>> 2, 1) === 0) {
|
|
1706
1725
|
if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
|
|
1707
1726
|
// Worker threads only post a wakeup token. Main-thread draining is
|
|
1708
1727
|
// serialized by enqueue() once the message is received.
|
|
@@ -1785,7 +1804,7 @@ function createNapiModule(options) {
|
|
|
1785
1804
|
if (!tsfn)
|
|
1786
1805
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
1787
1806
|
tsfn >>>= 0;
|
|
1788
|
-
new Uint8Array(
|
|
1807
|
+
new Uint8Array(emnapiTSFN.ensureBufferFor(tsfn + sizeofTSFN)).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
|
|
1789
1808
|
var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
1790
1809
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1791
1810
|
var resource_ = resourceRef.id;
|
|
@@ -1899,8 +1918,9 @@ function createNapiModule(options) {
|
|
|
1899
1918
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1900
1919
|
}
|
|
1901
1920
|
func >>>= 0;
|
|
1902
|
-
var
|
|
1903
|
-
var
|
|
1921
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1922
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1923
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1904
1924
|
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1905
1925
|
if (currentValue > 0) {
|
|
1906
1926
|
Atomics.store(arr, asyncRefOffset, currentValue - 1);
|
|
@@ -1917,8 +1937,9 @@ function createNapiModule(options) {
|
|
|
1917
1937
|
return 1 /* napi_status.napi_invalid_arg */;
|
|
1918
1938
|
}
|
|
1919
1939
|
func >>>= 0;
|
|
1920
|
-
var
|
|
1921
|
-
var
|
|
1940
|
+
var asyncRefAddress = func + emnapiTSFN.offset.async_ref;
|
|
1941
|
+
var asyncRefOffset = asyncRefAddress >>> 2;
|
|
1942
|
+
var arr = new Uint32Array(emnapiTSFN.ensureBufferFor(asyncRefAddress + 4));
|
|
1922
1943
|
var currentValue = Atomics.load(arr, asyncRefOffset);
|
|
1923
1944
|
if (!currentValue) {
|
|
1924
1945
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
@@ -1954,12 +1975,27 @@ function createNapiModule(options) {
|
|
|
1954
1975
|
/* napi_async_complete_callback */ complete: 6 * 4 + 24,
|
|
1955
1976
|
end: 7 * 4 + 24
|
|
1956
1977
|
},
|
|
1978
|
+
/**
|
|
1979
|
+
* When another thread grows the shared WebAssembly.Memory, this agent's
|
|
1980
|
+
* cached `wasmMemory.buffer` may still have the old shorter length
|
|
1981
|
+
* (V8 refreshes it lazily). If a pointer derived from shared memory lies
|
|
1982
|
+
* beyond the cached length, `wasmMemory.grow(0)` forces the agent to
|
|
1983
|
+
* observe the current memory size and refreshes the buffer.
|
|
1984
|
+
*/
|
|
1985
|
+
ensureBufferFor: function (end) {
|
|
1986
|
+
var buffer = wasmMemory.buffer;
|
|
1987
|
+
if (end > buffer.byteLength) {
|
|
1988
|
+
wasmMemory.grow(0);
|
|
1989
|
+
buffer = wasmMemory.buffer;
|
|
1990
|
+
}
|
|
1991
|
+
return buffer;
|
|
1992
|
+
},
|
|
1957
1993
|
init: function () {
|
|
1958
1994
|
emnapiAWMT.pool = [];
|
|
1959
1995
|
emnapiAWMT.workerReady = null;
|
|
1960
1996
|
if (typeof PThread !== 'undefined') {
|
|
1961
1997
|
PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
|
|
1962
|
-
PThread.
|
|
1998
|
+
Object.values(PThread.pthreads).forEach(emnapiAWMT.addListener);
|
|
1963
1999
|
var __original_getNewWorker_1 = PThread.getNewWorker;
|
|
1964
2000
|
PThread.getNewWorker = function () {
|
|
1965
2001
|
var r = __original_getNewWorker_1.apply(this, arguments);
|
|
@@ -2008,7 +2044,7 @@ function createNapiModule(options) {
|
|
|
2008
2044
|
emnapiAWMT.globalAddress >>>= 0;
|
|
2009
2045
|
var size = emnapiAWMT.globalOffset.end;
|
|
2010
2046
|
var addr = emnapiAWMT.globalAddress;
|
|
2011
|
-
new Uint8Array(
|
|
2047
|
+
new Uint8Array(emnapiAWMT.ensureBufferFor(addr + size), addr, size).fill(0);
|
|
2012
2048
|
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
|
|
2013
2049
|
emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
|
|
2014
2050
|
}
|
|
@@ -2049,8 +2085,8 @@ function createNapiModule(options) {
|
|
|
2049
2085
|
return worker.whenLoaded;
|
|
2050
2086
|
}
|
|
2051
2087
|
index >>>= 0;
|
|
2052
|
-
var view = new DataView(wasmMemory.buffer);
|
|
2053
2088
|
var tidOffset = 20;
|
|
2089
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(index + tidOffset + 4));
|
|
2054
2090
|
var tid = view.getInt32(index + tidOffset, true);
|
|
2055
2091
|
worker = PThread.pthreads[tid];
|
|
2056
2092
|
return worker.whenLoaded;
|
|
@@ -2059,22 +2095,27 @@ function createNapiModule(options) {
|
|
|
2059
2095
|
return emnapiAWMT.workerReady;
|
|
2060
2096
|
},
|
|
2061
2097
|
getResource: function (work) {
|
|
2098
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.resource + 4);
|
|
2062
2099
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2063
2100
|
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
|
|
2064
2101
|
},
|
|
2065
2102
|
getExecute: function (work) {
|
|
2103
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.execute + 4);
|
|
2066
2104
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2067
2105
|
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
|
|
2068
2106
|
},
|
|
2069
2107
|
getComplete: function (work) {
|
|
2108
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.complete + 4);
|
|
2070
2109
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2071
2110
|
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
|
|
2072
2111
|
},
|
|
2073
2112
|
getEnv: function (work) {
|
|
2113
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.env + 4);
|
|
2074
2114
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2075
2115
|
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
|
|
2076
2116
|
},
|
|
2077
2117
|
getData: function (work) {
|
|
2118
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.data + 4);
|
|
2078
2119
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2079
2120
|
return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
|
|
2080
2121
|
},
|
|
@@ -2083,7 +2124,7 @@ function createNapiModule(options) {
|
|
|
2083
2124
|
var mutex = {
|
|
2084
2125
|
lock: function () {
|
|
2085
2126
|
var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
|
|
2086
|
-
var i32a = new Int32Array(
|
|
2127
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
2087
2128
|
if (isBrowserMain) {
|
|
2088
2129
|
while (true) {
|
|
2089
2130
|
var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
|
|
@@ -2103,7 +2144,7 @@ function createNapiModule(options) {
|
|
|
2103
2144
|
}
|
|
2104
2145
|
},
|
|
2105
2146
|
unlock: function () {
|
|
2106
|
-
var i32a = new Int32Array(
|
|
2147
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
2107
2148
|
var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
|
|
2108
2149
|
if (oldValue !== 10) {
|
|
2109
2150
|
throw new Error('Tried to unlock while not holding the mutex');
|
|
@@ -2127,14 +2168,14 @@ function createNapiModule(options) {
|
|
|
2127
2168
|
var mutex = emnapiAWMT.getMutex();
|
|
2128
2169
|
var cond = {
|
|
2129
2170
|
wait: function () {
|
|
2130
|
-
var i32a = new Int32Array(
|
|
2171
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
2131
2172
|
var value = Atomics.load(i32a, 0);
|
|
2132
2173
|
mutex.unlock();
|
|
2133
2174
|
Atomics.wait(i32a, 0, value);
|
|
2134
2175
|
mutex.lock();
|
|
2135
2176
|
},
|
|
2136
2177
|
signal: function () {
|
|
2137
|
-
var i32a = new Int32Array(
|
|
2178
|
+
var i32a = new Int32Array(emnapiAWMT.ensureBufferFor(index + 4), index, 1);
|
|
2138
2179
|
Atomics.add(i32a, 0, 1);
|
|
2139
2180
|
Atomics.notify(i32a, 0, 1);
|
|
2140
2181
|
}
|
|
@@ -2142,11 +2183,14 @@ function createNapiModule(options) {
|
|
|
2142
2183
|
return cond;
|
|
2143
2184
|
},
|
|
2144
2185
|
queueInit: function (q) {
|
|
2186
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
2145
2187
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2146
2188
|
HEAP_DATA_VIEW.setUint32(q, q, true);
|
|
2147
2189
|
HEAP_DATA_VIEW.setUint32(q + 4, q, true);
|
|
2148
2190
|
},
|
|
2149
2191
|
queueInsertTail: function (h, q) {
|
|
2192
|
+
emnapiAWMT.ensureBufferFor(h + 4 + 4);
|
|
2193
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
2150
2194
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2151
2195
|
HEAP_DATA_VIEW.setUint32(q, h, true);
|
|
2152
2196
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -2158,6 +2202,7 @@ function createNapiModule(options) {
|
|
|
2158
2202
|
HEAP_DATA_VIEW.setUint32(h + 4, q, true);
|
|
2159
2203
|
},
|
|
2160
2204
|
queueRemove: function (q) {
|
|
2205
|
+
emnapiAWMT.ensureBufferFor(q + 4 + 4);
|
|
2161
2206
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2162
2207
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2163
2208
|
var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
|
|
@@ -2167,6 +2212,7 @@ function createNapiModule(options) {
|
|
|
2167
2212
|
HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
|
|
2168
2213
|
},
|
|
2169
2214
|
queueEmpty: function (q) {
|
|
2215
|
+
emnapiAWMT.ensureBufferFor(q + 4);
|
|
2170
2216
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2171
2217
|
// eslint-disable-next-line eqeqeq
|
|
2172
2218
|
return q == HEAP_DATA_VIEW.getUint32(q, true);
|
|
@@ -2182,7 +2228,7 @@ function createNapiModule(options) {
|
|
|
2182
2228
|
});
|
|
2183
2229
|
}
|
|
2184
2230
|
emnapiCtx.increaseWaitingRequestCounter();
|
|
2185
|
-
var statusBuffer = new Int32Array(
|
|
2231
|
+
var statusBuffer = new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1);
|
|
2186
2232
|
Atomics.store(statusBuffer, 0, 0 /* AsyncWorkStatus.Pending */);
|
|
2187
2233
|
var mutex = emnapiAWMT.getMutex();
|
|
2188
2234
|
var cond = emnapiAWMT.getCond();
|
|
@@ -2195,6 +2241,7 @@ function createNapiModule(options) {
|
|
|
2195
2241
|
mutex.unlock();
|
|
2196
2242
|
throw err;
|
|
2197
2243
|
}
|
|
2244
|
+
emnapiAWMT.ensureBufferFor(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads + 4);
|
|
2198
2245
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2199
2246
|
if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
|
|
2200
2247
|
cond.signal();
|
|
@@ -2204,6 +2251,7 @@ function createNapiModule(options) {
|
|
|
2204
2251
|
cancelWork: function (work) {
|
|
2205
2252
|
var cancelled = false;
|
|
2206
2253
|
emnapiAWMT.getMutex().execute(function () {
|
|
2254
|
+
emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4);
|
|
2207
2255
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2208
2256
|
cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2 /* AsyncWorkStatus.Completed */;
|
|
2209
2257
|
if (cancelled) {
|
|
@@ -2213,7 +2261,7 @@ function createNapiModule(options) {
|
|
|
2213
2261
|
if (!cancelled) {
|
|
2214
2262
|
return 9 /* napi_status.napi_generic_failure */;
|
|
2215
2263
|
}
|
|
2216
|
-
if (Atomics.compareExchange(new Int32Array(
|
|
2264
|
+
if (Atomics.compareExchange(new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1), 0, 0 /* AsyncWorkStatus.Pending */, 1 /* AsyncWorkStatus.Cancelled */) !== 0 /* AsyncWorkStatus.Pending */) {
|
|
2217
2265
|
return 9 /* napi_status.napi_generic_failure */;
|
|
2218
2266
|
}
|
|
2219
2267
|
emnapiCtx.feature.setImmediate(function () {
|
|
@@ -2240,7 +2288,7 @@ function createNapiModule(options) {
|
|
|
2240
2288
|
var resource = emnapiAWMT.getResource(work);
|
|
2241
2289
|
var resource_value = emnapiCtx.refStore.get(resource).get();
|
|
2242
2290
|
var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
|
|
2243
|
-
var view = new DataView(
|
|
2291
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.trigger_async_id + 8));
|
|
2244
2292
|
var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
|
|
2245
2293
|
var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
|
|
2246
2294
|
emnapiNodeBinding.node.makeCallback(resourceObject, callback, [], {
|
|
@@ -2311,7 +2359,7 @@ function createNapiModule(options) {
|
|
|
2311
2359
|
if (!aw)
|
|
2312
2360
|
return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
|
|
2313
2361
|
aw >>>= 0;
|
|
2314
|
-
new Uint8Array(
|
|
2362
|
+
new Uint8Array(emnapiAWMT.ensureBufferFor(aw + sizeofAW)).subarray(aw, aw + sizeofAW).fill(0);
|
|
2315
2363
|
var s = envObject.ensureHandleId(resourceObject);
|
|
2316
2364
|
var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1 /* ReferenceOwnership.kUserland */);
|
|
2317
2365
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -2354,7 +2402,7 @@ function createNapiModule(options) {
|
|
|
2354
2402
|
var resource = emnapiAWMT.getResource(work);
|
|
2355
2403
|
emnapiCtx.refStore.get(resource).dispose();
|
|
2356
2404
|
if (emnapiNodeBinding) {
|
|
2357
|
-
var view = new DataView(
|
|
2405
|
+
var view = new DataView(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.trigger_async_id + 8));
|
|
2358
2406
|
var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
|
|
2359
2407
|
var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
|
|
2360
2408
|
_emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
|
|
@@ -2422,10 +2470,11 @@ function createNapiModule(options) {
|
|
|
2422
2470
|
var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
|
|
2423
2471
|
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2424
2472
|
for (;;) {
|
|
2473
|
+
emnapiAWMT.ensureBufferFor(workerQueueAddr + 4);
|
|
2425
2474
|
while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
|
|
2426
|
-
Atomics.add(new Int32Array(
|
|
2475
|
+
Atomics.add(new Int32Array(emnapiAWMT.ensureBufferFor(idleThreadsAddr + 4), idleThreadsAddr, 1), 0, 1);
|
|
2427
2476
|
cond.wait();
|
|
2428
|
-
Atomics.sub(new Int32Array(
|
|
2477
|
+
Atomics.sub(new Int32Array(emnapiAWMT.ensureBufferFor(idleThreadsAddr + 4), idleThreadsAddr, 1), 0, 1);
|
|
2429
2478
|
}
|
|
2430
2479
|
var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
|
|
2431
2480
|
if (q === exitMessageAddr) {
|
|
@@ -2437,7 +2486,7 @@ function createNapiModule(options) {
|
|
|
2437
2486
|
emnapiAWMT.queueRemove(q);
|
|
2438
2487
|
emnapiAWMT.queueInit(q);
|
|
2439
2488
|
mutex.unlock();
|
|
2440
|
-
var statusBuffer = new Int32Array(
|
|
2489
|
+
var statusBuffer = new Int32Array(emnapiAWMT.ensureBufferFor(work + emnapiAWMT.offset.status + 4), work + emnapiAWMT.offset.status, 1);
|
|
2441
2490
|
if (Atomics.load(statusBuffer, 0) === 1 /* AsyncWorkStatus.Cancelled */) {
|
|
2442
2491
|
abort('unreachable');
|
|
2443
2492
|
}
|
|
@@ -2647,6 +2696,75 @@ function createNapiModule(options) {
|
|
|
2647
2696
|
return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
|
|
2648
2697
|
}
|
|
2649
2698
|
};
|
|
2699
|
+
/**
|
|
2700
|
+
* Metadata layout in wasm shared memory (allocated with _malloc):
|
|
2701
|
+
* offset 0: refcount (int32, 4 bytes - for Atomics)
|
|
2702
|
+
* offset POINTER_SIZE: external_data (pointer)
|
|
2703
|
+
* offset 2*POINTER_SIZE: byte_length (size_t)
|
|
2704
|
+
* offset 3*POINTER_SIZE: finalize_cb (pointer)
|
|
2705
|
+
* offset 4*POINTER_SIZE: finalize_data (pointer)
|
|
2706
|
+
* offset 5*POINTER_SIZE: finalize_hint (pointer)
|
|
2707
|
+
* Total: 6 * POINTER_SIZE bytes
|
|
2708
|
+
*/
|
|
2709
|
+
/**
|
|
2710
|
+
* @__postset
|
|
2711
|
+
* ```
|
|
2712
|
+
* emnapiExternalSAB.init();
|
|
2713
|
+
* ```
|
|
2714
|
+
*/
|
|
2715
|
+
var emnapiExternalSAB = {
|
|
2716
|
+
registry: undefined,
|
|
2717
|
+
handleTable: new WeakMap(),
|
|
2718
|
+
init: function () {
|
|
2719
|
+
emnapiExternalSAB.handleTable = new WeakMap();
|
|
2720
|
+
emnapiExternalSAB.registry = typeof FinalizationRegistry === 'function'
|
|
2721
|
+
? new FinalizationRegistry(function (metaPtr) {
|
|
2722
|
+
emnapiExternalSAB.release(metaPtr);
|
|
2723
|
+
})
|
|
2724
|
+
: undefined;
|
|
2725
|
+
},
|
|
2726
|
+
allocMeta: function (external_data, byte_length, finalize_cb, finalize_data, finalize_hint) {
|
|
2727
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2728
|
+
var size = 4 * 6;
|
|
2729
|
+
// eslint-disable-next-line prefer-const
|
|
2730
|
+
var metaPtr = _malloc(size);
|
|
2731
|
+
if (!metaPtr)
|
|
2732
|
+
throw new Error('Out of memory');
|
|
2733
|
+
metaPtr >>>= 0;
|
|
2734
|
+
// refcount = 1
|
|
2735
|
+
Atomics.store(new Int32Array(wasmMemory.buffer, metaPtr, 1), 0, 1);
|
|
2736
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2737
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 4, external_data, true);
|
|
2738
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 8, byte_length, true);
|
|
2739
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 12, finalize_cb, true);
|
|
2740
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 16, finalize_data, true);
|
|
2741
|
+
HEAP_DATA_VIEW.setUint32(metaPtr + 20, finalize_hint, true);
|
|
2742
|
+
return metaPtr;
|
|
2743
|
+
},
|
|
2744
|
+
readMeta: function (metaPtr) {
|
|
2745
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
2746
|
+
var external_data = HEAP_DATA_VIEW.getUint32(metaPtr + 4, true);
|
|
2747
|
+
var byte_length = HEAP_DATA_VIEW.getUint32(metaPtr + 8, true);
|
|
2748
|
+
var finalize_cb = HEAP_DATA_VIEW.getUint32(metaPtr + 12, true);
|
|
2749
|
+
var finalize_data = HEAP_DATA_VIEW.getUint32(metaPtr + 16, true);
|
|
2750
|
+
var finalize_hint = HEAP_DATA_VIEW.getUint32(metaPtr + 20, true);
|
|
2751
|
+
return { external_data: external_data, byte_length: byte_length, finalize_cb: finalize_cb, finalize_data: finalize_data, finalize_hint: finalize_hint };
|
|
2752
|
+
},
|
|
2753
|
+
release: function (metaPtr) {
|
|
2754
|
+
var oldRefcount = Atomics.sub(new Int32Array(wasmMemory.buffer, metaPtr, 1), 0, 1);
|
|
2755
|
+
if (oldRefcount === 1) {
|
|
2756
|
+
// refcount reached 0, we are the last holder
|
|
2757
|
+
var info = emnapiExternalSAB.readMeta(metaPtr);
|
|
2758
|
+
var finalize_cb = info.finalize_cb;
|
|
2759
|
+
if (finalize_cb) {
|
|
2760
|
+
var finalize_data = info.finalize_data;
|
|
2761
|
+
var finalize_hint = info.finalize_hint;
|
|
2762
|
+
(wasmTable.get(finalize_cb))(finalize_data, finalize_hint);
|
|
2763
|
+
}
|
|
2764
|
+
_free(metaPtr);
|
|
2765
|
+
}
|
|
2766
|
+
}
|
|
2767
|
+
};
|
|
2650
2768
|
/* eslint-disable @typescript-eslint/indent */
|
|
2651
2769
|
/**
|
|
2652
2770
|
* @__postset
|
|
@@ -4761,16 +4879,122 @@ function createNapiModule(options) {
|
|
|
4761
4879
|
HEAP_DATA_VIEW.setUint32(version + 8, versions[2], true);
|
|
4762
4880
|
return envObject.clearLastError();
|
|
4763
4881
|
}
|
|
4882
|
+
/**
|
|
4883
|
+
* Get the handle for an external SharedArrayBuffer.
|
|
4884
|
+
* Must be called on the emnapi main thread.
|
|
4885
|
+
* @__sig ippp
|
|
4886
|
+
*/
|
|
4887
|
+
function emnapi_get_external_sharedarraybuffer_handle(env, sharedarraybuffer, handle) {
|
|
4888
|
+
if (!env)
|
|
4889
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
4890
|
+
// @ts-expect-error
|
|
4891
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
4892
|
+
envObject.checkGCAccess();
|
|
4893
|
+
if (!envObject.tryCatch.isEmpty())
|
|
4894
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4895
|
+
if (!envObject.canCallIntoJs())
|
|
4896
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
4897
|
+
envObject.clearLastError();
|
|
4898
|
+
try {
|
|
4899
|
+
if (!sharedarraybuffer)
|
|
4900
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4901
|
+
if (!handle)
|
|
4902
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4903
|
+
handle >>>= 0;
|
|
4904
|
+
var jsValue = emnapiCtx.handleStore.get(sharedarraybuffer).value;
|
|
4905
|
+
if (!emnapiExternalMemory.isSharedArrayBuffer(jsValue)) {
|
|
4906
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4907
|
+
}
|
|
4908
|
+
var metaPtr = emnapiExternalSAB.handleTable.get(jsValue);
|
|
4909
|
+
if (metaPtr === undefined) {
|
|
4910
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
4911
|
+
}
|
|
4912
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
4913
|
+
HEAP_DATA_VIEW.setUint32(handle, metaPtr, true);
|
|
4914
|
+
return envObject.getReturnStatus();
|
|
4915
|
+
}
|
|
4916
|
+
catch (err) {
|
|
4917
|
+
envObject.tryCatch.setError(err);
|
|
4918
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
4919
|
+
}
|
|
4920
|
+
}
|
|
4921
|
+
/**
|
|
4922
|
+
* Acquire a reference to an external SharedArrayBuffer.
|
|
4923
|
+
* Can be called on any thread.
|
|
4924
|
+
* @__sig vp
|
|
4925
|
+
*/
|
|
4926
|
+
function emnapi_acquire_external_sharedarraybuffer(handle) {
|
|
4927
|
+
handle >>>= 0;
|
|
4928
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, handle, 1), 0, 1);
|
|
4929
|
+
}
|
|
4930
|
+
/**
|
|
4931
|
+
* Release a reference to an external SharedArrayBuffer.
|
|
4932
|
+
* Can be called on any thread.
|
|
4933
|
+
* @__sig vp
|
|
4934
|
+
*/
|
|
4935
|
+
function emnapi_release_external_sharedarraybuffer(handle) {
|
|
4936
|
+
handle >>>= 0;
|
|
4937
|
+
emnapiExternalSAB.release(handle);
|
|
4938
|
+
}
|
|
4939
|
+
/**
|
|
4940
|
+
* Acquire a reference to an external SharedArrayBuffer on the current thread.
|
|
4941
|
+
* Can be called on any thread. Increments refcount and registers in
|
|
4942
|
+
* the current thread's FinalizationRegistry.
|
|
4943
|
+
* Exposed as Module.emnapiAcquireExternalSharedArrayBuffer (emscripten) or
|
|
4944
|
+
* napiModule.emnapi.acquireExternalSharedArrayBuffer (core).
|
|
4945
|
+
*/
|
|
4946
|
+
function $emnapiAcquireExternalSharedArrayBuffer(handle, sab) {
|
|
4947
|
+
if (sab != null && !emnapiExternalMemory.isSharedArrayBuffer(sab)) {
|
|
4948
|
+
throw new TypeError('Expected a SharedArrayBuffer');
|
|
4949
|
+
}
|
|
4950
|
+
if (!emnapiExternalSAB.registry) {
|
|
4951
|
+
throw new Error('FinalizationRegistry is not supported in this environment');
|
|
4952
|
+
}
|
|
4953
|
+
handle >>>= 0;
|
|
4954
|
+
var meta = emnapiExternalSAB.readMeta(handle);
|
|
4955
|
+
// eslint-disable-next-line prefer-const
|
|
4956
|
+
var external_data = meta.external_data;
|
|
4957
|
+
external_data >>>= 0;
|
|
4958
|
+
if (sab == null) {
|
|
4959
|
+
sab = new SharedArrayBuffer(meta.byte_length);
|
|
4960
|
+
new Uint8Array(sab).set(new Uint8Array(wasmMemory.buffer, external_data, meta.byte_length));
|
|
4961
|
+
}
|
|
4962
|
+
else {
|
|
4963
|
+
if (emnapiExternalSAB.handleTable.has(sab)) {
|
|
4964
|
+
return sab;
|
|
4965
|
+
}
|
|
4966
|
+
}
|
|
4967
|
+
// Increment refcount atomically
|
|
4968
|
+
Atomics.add(new Int32Array(wasmMemory.buffer, handle, 1), 0, 1);
|
|
4969
|
+
// Register in emnapiExternalMemory.table for emnapi_sync_memory support
|
|
4970
|
+
if (!emnapiExternalMemory.table.has(sab)) {
|
|
4971
|
+
if (external_data) {
|
|
4972
|
+
emnapiExternalMemory.table.set(sab, {
|
|
4973
|
+
address: external_data,
|
|
4974
|
+
ownership: 1 /* ReferenceOwnership.kUserland */,
|
|
4975
|
+
runtimeAllocated: 0
|
|
4976
|
+
});
|
|
4977
|
+
}
|
|
4978
|
+
}
|
|
4979
|
+
// Register in handleTable and FinalizationRegistry for this thread
|
|
4980
|
+
emnapiExternalSAB.handleTable.set(sab, handle);
|
|
4981
|
+
emnapiExternalSAB.registry.register(sab, handle);
|
|
4982
|
+
return sab;
|
|
4983
|
+
}
|
|
4764
4984
|
var emnapiMod = /*#__PURE__*/ Object.freeze({
|
|
4765
4985
|
__proto__: null,
|
|
4986
|
+
$emnapiAcquireExternalSharedArrayBuffer: $emnapiAcquireExternalSharedArrayBuffer,
|
|
4766
4987
|
$emnapiGetMemoryAddress: $emnapiGetMemoryAddress,
|
|
4767
4988
|
$emnapiSyncMemory: $emnapiSyncMemory,
|
|
4989
|
+
emnapi_acquire_external_sharedarraybuffer: emnapi_acquire_external_sharedarraybuffer,
|
|
4768
4990
|
emnapi_create_memory_view: emnapi_create_memory_view,
|
|
4991
|
+
emnapi_get_external_sharedarraybuffer_handle: emnapi_get_external_sharedarraybuffer_handle,
|
|
4769
4992
|
emnapi_get_memory_address: emnapi_get_memory_address,
|
|
4770
4993
|
emnapi_get_runtime_version: emnapi_get_runtime_version,
|
|
4771
4994
|
emnapi_is_node_binding_available: emnapi_is_node_binding_available,
|
|
4772
4995
|
emnapi_is_support_bigint: emnapi_is_support_bigint,
|
|
4773
4996
|
emnapi_is_support_weakref: emnapi_is_support_weakref,
|
|
4997
|
+
emnapi_release_external_sharedarraybuffer: emnapi_release_external_sharedarraybuffer,
|
|
4774
4998
|
emnapi_sync_memory: emnapi_sync_memory
|
|
4775
4999
|
});
|
|
4776
5000
|
/**
|
|
@@ -5026,6 +5250,65 @@ function createNapiModule(options) {
|
|
|
5026
5250
|
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
5027
5251
|
}
|
|
5028
5252
|
}
|
|
5253
|
+
/**
|
|
5254
|
+
* @__sig ipppppp
|
|
5255
|
+
*/
|
|
5256
|
+
function node_api_create_external_sharedarraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result) {
|
|
5257
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5258
|
+
var value;
|
|
5259
|
+
if (!env)
|
|
5260
|
+
return 1 /* napi_status.napi_invalid_arg */;
|
|
5261
|
+
// @ts-expect-error
|
|
5262
|
+
var envObject = emnapiCtx.envStore.get(env);
|
|
5263
|
+
envObject.checkGCAccess();
|
|
5264
|
+
if (!envObject.tryCatch.isEmpty())
|
|
5265
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
5266
|
+
if (!envObject.canCallIntoJs())
|
|
5267
|
+
return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
|
|
5268
|
+
envObject.clearLastError();
|
|
5269
|
+
try {
|
|
5270
|
+
if (!result)
|
|
5271
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5272
|
+
byte_length >>>= 0;
|
|
5273
|
+
external_data >>>= 0;
|
|
5274
|
+
result >>>= 0;
|
|
5275
|
+
byte_length = byte_length >>> 0;
|
|
5276
|
+
if (!external_data) {
|
|
5277
|
+
byte_length = 0;
|
|
5278
|
+
}
|
|
5279
|
+
if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
|
|
5280
|
+
throw new RangeError('Memory out of range');
|
|
5281
|
+
}
|
|
5282
|
+
if (!emnapiExternalSAB.registry && finalize_cb) {
|
|
5283
|
+
throw emnapiCtx.createNotSupportWeakRefError('node_api_create_external_sharedarraybuffer', 'Parameter "finalize_cb" must be 0(NULL)');
|
|
5284
|
+
}
|
|
5285
|
+
var sharedArrayBuffer = new SharedArrayBuffer(byte_length);
|
|
5286
|
+
if (byte_length !== 0) {
|
|
5287
|
+
var u8arr = new Uint8Array(sharedArrayBuffer);
|
|
5288
|
+
u8arr.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
|
|
5289
|
+
emnapiExternalMemory.table.set(sharedArrayBuffer, {
|
|
5290
|
+
address: external_data,
|
|
5291
|
+
ownership: 1 /* ReferenceOwnership.kUserland */,
|
|
5292
|
+
runtimeAllocated: 0
|
|
5293
|
+
});
|
|
5294
|
+
}
|
|
5295
|
+
value = emnapiCtx.addToCurrentScope(sharedArrayBuffer).id;
|
|
5296
|
+
if (finalize_cb) {
|
|
5297
|
+
finalize_cb >>>= 0;
|
|
5298
|
+
finalize_hint >>>= 0;
|
|
5299
|
+
var metaPtr = emnapiExternalSAB.allocMeta(external_data, byte_length, finalize_cb, external_data, finalize_hint);
|
|
5300
|
+
emnapiExternalSAB.handleTable.set(sharedArrayBuffer, metaPtr);
|
|
5301
|
+
emnapiExternalSAB.registry.register(sharedArrayBuffer, metaPtr);
|
|
5302
|
+
}
|
|
5303
|
+
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
|
|
5304
|
+
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5305
|
+
return envObject.getReturnStatus();
|
|
5306
|
+
}
|
|
5307
|
+
catch (err) {
|
|
5308
|
+
envObject.tryCatch.setError(err);
|
|
5309
|
+
return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
|
|
5310
|
+
}
|
|
5311
|
+
}
|
|
5029
5312
|
/**
|
|
5030
5313
|
* @__sig ipp
|
|
5031
5314
|
*/
|
|
@@ -5146,9 +5429,6 @@ function createNapiModule(options) {
|
|
|
5146
5429
|
if (!result)
|
|
5147
5430
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5148
5431
|
var handle = emnapiCtx.handleStore.get(arraybuffer);
|
|
5149
|
-
if (!handle.isArrayBuffer()) {
|
|
5150
|
-
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5151
|
-
}
|
|
5152
5432
|
var buffer = handle.value;
|
|
5153
5433
|
byte_offset >>>= 0;
|
|
5154
5434
|
length >>>= 0;
|
|
@@ -5189,36 +5469,41 @@ function createNapiModule(options) {
|
|
|
5189
5469
|
HEAP_DATA_VIEW.setUint32(result, value, true);
|
|
5190
5470
|
return envObject.getReturnStatus();
|
|
5191
5471
|
};
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
|
|
5472
|
+
if (buffer instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(buffer)) {
|
|
5473
|
+
switch (type) {
|
|
5474
|
+
case 0 /* napi_typedarray_type.napi_int8_array */:
|
|
5475
|
+
return createTypedArray(envObject, Int8Array, 1, buffer, byte_offset, length);
|
|
5476
|
+
case 1 /* napi_typedarray_type.napi_uint8_array */:
|
|
5477
|
+
return createTypedArray(envObject, Uint8Array, 1, buffer, byte_offset, length);
|
|
5478
|
+
case 2 /* napi_typedarray_type.napi_uint8_clamped_array */:
|
|
5479
|
+
return createTypedArray(envObject, Uint8ClampedArray, 1, buffer, byte_offset, length);
|
|
5480
|
+
case 3 /* napi_typedarray_type.napi_int16_array */:
|
|
5481
|
+
return createTypedArray(envObject, Int16Array, 2, buffer, byte_offset, length);
|
|
5482
|
+
case 4 /* napi_typedarray_type.napi_uint16_array */:
|
|
5483
|
+
return createTypedArray(envObject, Uint16Array, 2, buffer, byte_offset, length);
|
|
5484
|
+
case 5 /* napi_typedarray_type.napi_int32_array */:
|
|
5485
|
+
return createTypedArray(envObject, Int32Array, 4, buffer, byte_offset, length);
|
|
5486
|
+
case 6 /* napi_typedarray_type.napi_uint32_array */:
|
|
5487
|
+
return createTypedArray(envObject, Uint32Array, 4, buffer, byte_offset, length);
|
|
5488
|
+
case 7 /* napi_typedarray_type.napi_float32_array */:
|
|
5489
|
+
return createTypedArray(envObject, Float32Array, 4, buffer, byte_offset, length);
|
|
5490
|
+
case 8 /* napi_typedarray_type.napi_float64_array */:
|
|
5491
|
+
return createTypedArray(envObject, Float64Array, 8, buffer, byte_offset, length);
|
|
5492
|
+
case 9 /* napi_typedarray_type.napi_bigint64_array */:
|
|
5493
|
+
return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
|
|
5494
|
+
case 10 /* napi_typedarray_type.napi_biguint64_array */:
|
|
5495
|
+
return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
|
|
5496
|
+
case 11 /* napi_typedarray_type.napi_float16_array */:
|
|
5497
|
+
if (typeof Float16Array !== 'function') {
|
|
5498
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5499
|
+
}
|
|
5500
|
+
return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
|
|
5501
|
+
default:
|
|
5217
5502
|
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
|
|
5503
|
+
}
|
|
5504
|
+
}
|
|
5505
|
+
else {
|
|
5506
|
+
return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
|
|
5222
5507
|
}
|
|
5223
5508
|
}
|
|
5224
5509
|
catch (err) {
|
|
@@ -5504,6 +5789,7 @@ function createNapiModule(options) {
|
|
|
5504
5789
|
napi_create_symbol: napi_create_symbol,
|
|
5505
5790
|
napi_create_typedarray: napi_create_typedarray,
|
|
5506
5791
|
node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
|
|
5792
|
+
node_api_create_external_sharedarraybuffer: node_api_create_external_sharedarraybuffer,
|
|
5507
5793
|
node_api_create_object_with_properties: node_api_create_object_with_properties,
|
|
5508
5794
|
node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
|
|
5509
5795
|
node_api_symbol_for: node_api_symbol_for
|
|
@@ -7924,11 +8210,13 @@ function createNapiModule(options) {
|
|
|
7924
8210
|
});
|
|
7925
8211
|
emnapiAWST.init();
|
|
7926
8212
|
emnapiExternalMemory.init();
|
|
8213
|
+
emnapiExternalSAB.init();
|
|
7927
8214
|
emnapiString.init();
|
|
7928
8215
|
emnapiTSFN.init();
|
|
7929
8216
|
PThread.init();
|
|
7930
8217
|
napiModule.emnapi.syncMemory = $emnapiSyncMemory;
|
|
7931
8218
|
napiModule.emnapi.getMemoryAddress = $emnapiGetMemoryAddress;
|
|
8219
|
+
napiModule.emnapi.acquireExternalSharedArrayBuffer = $emnapiAcquireExternalSharedArrayBuffer;
|
|
7932
8220
|
function addImports(mod) {
|
|
7933
8221
|
var keys = Object.keys(mod);
|
|
7934
8222
|
for (var i = 0; i < keys.length; ++i) {
|
|
@@ -8223,6 +8511,6 @@ var MessageHandler = /*#__PURE__*/ (function (_super) {
|
|
|
8223
8511
|
// }
|
|
8224
8512
|
// }
|
|
8225
8513
|
|
|
8226
|
-
var version = "1.
|
|
8514
|
+
var version = "1.11.1";
|
|
8227
8515
|
|
|
8228
8516
|
export { MessageHandler, createNapiModule, instantiateNapiModule, instantiateNapiModuleSync, loadNapiModule, loadNapiModuleSync, version };
|