@tailwindcss/oxide-wasm32-wasi 4.2.3 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/node_modules/@emnapi/core/dist/emnapi-core.cjs.js +854 -307
  2. package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts +3 -2
  3. package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js +1 -1
  4. package/node_modules/@emnapi/core/dist/emnapi-core.d.mts +3 -2
  5. package/node_modules/@emnapi/core/dist/emnapi-core.d.ts +3 -2
  6. package/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js +892 -313
  7. package/node_modules/@emnapi/core/dist/emnapi-core.js +904 -328
  8. package/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts +3 -2
  9. package/node_modules/@emnapi/core/dist/emnapi-core.min.js +1 -1
  10. package/node_modules/@emnapi/core/dist/emnapi-core.min.mjs +1 -1
  11. package/node_modules/@emnapi/core/dist/emnapi-core.mjs +854 -307
  12. package/node_modules/@emnapi/core/package.json +2 -2
  13. package/node_modules/@emnapi/runtime/dist/emnapi.cjs.js +32 -5
  14. package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.d.ts +8 -2
  15. package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -1
  16. package/node_modules/@emnapi/runtime/dist/emnapi.d.mts +8 -2
  17. package/node_modules/@emnapi/runtime/dist/emnapi.d.ts +8 -2
  18. package/node_modules/@emnapi/runtime/dist/emnapi.esm-bundler.js +33 -5
  19. package/node_modules/@emnapi/runtime/dist/emnapi.iife.d.ts +8 -2
  20. package/node_modules/@emnapi/runtime/dist/emnapi.iife.js +33 -5
  21. package/node_modules/@emnapi/runtime/dist/emnapi.js +33 -5
  22. package/node_modules/@emnapi/runtime/dist/emnapi.min.d.mts +8 -2
  23. package/node_modules/@emnapi/runtime/dist/emnapi.min.js +1 -1
  24. package/node_modules/@emnapi/runtime/dist/emnapi.min.mjs +1 -1
  25. package/node_modules/@emnapi/runtime/dist/emnapi.mjs +32 -5
  26. package/node_modules/@emnapi/runtime/package.json +1 -1
  27. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.js +17 -20
  28. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.d.ts +2 -0
  29. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.js +1 -1
  30. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.mts +2 -0
  31. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.ts +2 -0
  32. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js +17 -20
  33. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.js +17 -20
  34. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.d.mts +2 -0
  35. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.js +1 -1
  36. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.mjs +1 -1
  37. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.mjs +17 -20
  38. package/node_modules/@emnapi/wasi-threads/package.json +1 -1
  39. package/node_modules/@napi-rs/wasm-runtime/dist/fs-proxy.cjs +47 -12
  40. package/node_modules/@napi-rs/wasm-runtime/dist/fs.js +14310 -10201
  41. package/node_modules/@napi-rs/wasm-runtime/fs-proxy.js +47 -12
  42. package/node_modules/@napi-rs/wasm-runtime/package.json +6 -4
  43. package/package.json +5 -5
  44. package/tailwindcss-oxide.wasi-browser.js +1 -0
  45. package/tailwindcss-oxide.wasi.cjs +1 -1
  46. package/tailwindcss-oxide.wasm32-wasi.wasm +0 -0
  47. package/wasi-worker-browser.mjs +4 -0
@@ -116,7 +116,6 @@ function createNapiModule(options) {
116
116
  filename: '',
117
117
  childThread: ENVIRONMENT_IS_PTHREAD,
118
118
  initWorker: undefined,
119
- executeAsyncWork: undefined,
120
119
  waitThreadStart: waitThreadStart,
121
120
  PThread: undefined,
122
121
  init: function (options) {
@@ -317,6 +316,9 @@ function createNapiModule(options) {
317
316
  * @__sig vppp
318
317
  */
319
318
  function _emnapi_get_node_version(major, minor, patch) {
319
+ major >>>= 0;
320
+ minor >>>= 0;
321
+ patch >>>= 0;
320
322
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
321
323
  var versions = (typeof process === 'object' && process !== null &&
322
324
  typeof process.versions === 'object' && process.versions !== null &&
@@ -382,6 +384,7 @@ function createNapiModule(options) {
382
384
  */
383
385
  function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
384
386
  var envObject = emnapiCtx.envStore.get(env);
387
+ callback >>>= 0;
385
388
  envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
386
389
  }
387
390
  /**
@@ -487,9 +490,20 @@ function createNapiModule(options) {
487
490
  return worker;
488
491
  }
489
492
  /** @__sig vp */
493
+ function _emnapi_worker_ref(pthreadPtr) {
494
+ if (ENVIRONMENT_IS_PTHREAD)
495
+ return;
496
+ pthreadPtr >>>= 0;
497
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
498
+ if (worker && typeof worker.ref === 'function') {
499
+ worker.ref();
500
+ }
501
+ }
502
+ /** @__sig vp */
490
503
  function _emnapi_worker_unref(pthreadPtr) {
491
504
  if (ENVIRONMENT_IS_PTHREAD)
492
505
  return;
506
+ pthreadPtr >>>= 0;
493
507
  var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
494
508
  if (worker && typeof worker.unref === 'function') {
495
509
  worker.unref();
@@ -597,9 +611,9 @@ function createNapiModule(options) {
597
611
  _emnapi_async_send_js: _emnapi_async_send_js,
598
612
  _emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
599
613
  _emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
614
+ _emnapi_worker_ref: _emnapi_worker_ref,
600
615
  _emnapi_worker_unref: _emnapi_worker_unref
601
616
  });
602
- /* eslint-disable @typescript-eslint/indent */
603
617
  /** @__sig ipjp */
604
618
  function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
605
619
  if (!env)
@@ -607,22 +621,15 @@ function createNapiModule(options) {
607
621
  var envObject = emnapiCtx.envStore.get(env);
608
622
  if (!adjusted_value)
609
623
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
610
- var change_in_bytes_number = Number(change_in_bytes);
611
- if (change_in_bytes_number < 0) {
612
- return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
613
- }
614
- var old_size = wasmMemory.buffer.byteLength;
615
- var new_size = old_size + change_in_bytes_number;
616
- new_size = new_size + ((65536 - new_size % 65536) % 65536);
617
- if (wasmMemory.grow((new_size - old_size + 65535) >> 16) === -1) {
618
- return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
619
- }
624
+ // eslint-disable-next-line prefer-const
625
+ var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
626
+ adjusted_value >>>= 0;
620
627
  if (emnapiCtx.feature.supportBigInt) {
621
628
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
622
- HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(wasmMemory.buffer.byteLength), true);
629
+ HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
623
630
  }
624
631
  else {
625
- $emnapiSetValueI64(adjusted_value, wasmMemory.buffer.byteLength);
632
+ $emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
626
633
  }
627
634
  return envObject.clearLastError();
628
635
  }
@@ -790,6 +797,7 @@ function createNapiModule(options) {
790
797
  var asyncId = asyncContext.asyncId;
791
798
  var triggerAsyncId = asyncContext.triggerAsyncId;
792
799
  if (result) {
800
+ result >>>= 0;
793
801
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
794
802
  HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
795
803
  HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
@@ -833,6 +841,8 @@ function createNapiModule(options) {
833
841
  return;
834
842
  var resource = emnapiCtx.handleStore.get(async_resource).value;
835
843
  var callback = emnapiCtx.handleStore.get(cb).value;
844
+ argv >>>= 0;
845
+ size >>>= 0;
836
846
  size = size >>> 0;
837
847
  var arr = Array(size);
838
848
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -845,6 +855,7 @@ function createNapiModule(options) {
845
855
  triggerAsyncId: trigger_async_id
846
856
  });
847
857
  if (result) {
858
+ result >>>= 0;
848
859
  var envObject = emnapiCtx.envStore.get(env);
849
860
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
850
861
  v = envObject.ensureHandleId(ret);
@@ -875,6 +886,7 @@ function createNapiModule(options) {
875
886
  var low = Number(numberValue & BigInt(0xffffffff));
876
887
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
877
888
  var high = Number(numberValue >> BigInt(32));
889
+ result >>>= 0;
878
890
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
879
891
  HEAP_DATA_VIEW.setInt32(result, low, true);
880
892
  HEAP_DATA_VIEW.setInt32(result + 4, high, true);
@@ -885,6 +897,7 @@ function createNapiModule(options) {
885
897
  if (!emnapiNodeBinding) {
886
898
  return 9 /* napi_status.napi_generic_failure */;
887
899
  }
900
+ async_context >>>= 0;
888
901
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
889
902
  var low = HEAP_DATA_VIEW.getInt32(async_context, true);
890
903
  var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
@@ -933,10 +946,13 @@ function createNapiModule(options) {
933
946
  if (typeof v8func !== 'function') {
934
947
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
935
948
  }
949
+ async_context >>>= 0;
936
950
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
937
951
  var low = HEAP_DATA_VIEW.getInt32(async_context, true);
938
952
  var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
939
953
  var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
954
+ argv >>>= 0;
955
+ argc >>>= 0;
940
956
  argc = argc >>> 0;
941
957
  var arr = Array(argc);
942
958
  for (; i < argc; i++) {
@@ -950,6 +966,7 @@ function createNapiModule(options) {
950
966
  if (ret.status !== 0 /* napi_status.napi_ok */)
951
967
  return envObject.setLastError(ret.status);
952
968
  if (result) {
969
+ result >>>= 0;
953
970
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
954
971
  v = envObject.ensureHandleId(ret.value);
955
972
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -987,29 +1004,59 @@ function createNapiModule(options) {
987
1004
  * ```
988
1005
  */
989
1006
  var emnapiTSFN = {
1007
+ _liveSet: {},
990
1008
  offset: {
1009
+ __size__: 0,
991
1010
  /* napi_ref */ resource: 0,
992
- /* double */ async_id: 8,
993
- /* double */ trigger_async_id: 16,
994
- /* size_t */ queue_size: 24,
995
- /* void* */ queue: 1 * 4 + 24,
996
- /* size_t */ thread_count: 2 * 4 + 24,
997
- /* bool */ is_closing: 3 * 4 + 24,
998
- /* atomic_uchar */ dispatch_state: 3 * 4 + 28,
999
- /* void* */ context: 3 * 4 + 32,
1000
- /* size_t */ max_queue_size: 4 * 4 + 32,
1001
- /* napi_ref */ ref: 5 * 4 + 32,
1002
- /* napi_env */ env: 6 * 4 + 32,
1003
- /* void* */ finalize_data: 7 * 4 + 32,
1004
- /* napi_finalize */ finalize_cb: 8 * 4 + 32,
1005
- /* napi_threadsafe_function_call_js */ call_js_cb: 9 * 4 + 32,
1006
- /* bool */ handles_closing: 10 * 4 + 32,
1007
- /* bool */ async_ref: 10 * 4 + 36,
1008
- /* int32_t */ mutex: 10 * 4 + 40,
1009
- /* int32_t */ cond: 10 * 4 + 44,
1010
- end: 10 * 4 + 48
1011
+ /* double */ async_id: 0,
1012
+ /* double */ trigger_async_id: 0,
1013
+ /* size_t */ queue_size: 0,
1014
+ /* bool */ is_some: 0,
1015
+ /* void* */ queue: 0,
1016
+ // Reuse uv_async_t storage as JS-side wakeup state: pending event + scheduled drain.
1017
+ async_pending: 0,
1018
+ async_u_fd: 0,
1019
+ /* size_t */ thread_count: 0,
1020
+ /* int32_t */ state: 0,
1021
+ /* atomic_uchar */ dispatch_state: 0,
1022
+ /* void* */ context: 0,
1023
+ /* size_t */ max_queue_size: 0,
1024
+ /* napi_ref */ ref: 0,
1025
+ /* napi_env */ env: 0,
1026
+ /* void* */ finalize_data: 0,
1027
+ /* napi_finalize */ finalize_cb: 0,
1028
+ /* napi_threadsafe_function_call_js */ call_js_cb: 0,
1029
+ /* bool */ handles_closing: 0,
1030
+ /* bool */ async_ref: 0,
1031
+ /* int32_t */ mutex: 0,
1032
+ /* int32_t */ cond: 0
1011
1033
  },
1012
1034
  init: function () {
1035
+ emnapiTSFN._liveSet = new Set();
1036
+ emnapiTSFN.offset.__size__ = 184 /* NapiTSFNOffset32.__size__ */;
1037
+ emnapiTSFN.offset.resource = 0 /* NapiTSFNOffset32.async_resource_resource */;
1038
+ emnapiTSFN.offset.async_id = 8 /* NapiTSFNOffset32.async_resource_async_context_async_id */;
1039
+ emnapiTSFN.offset.trigger_async_id = 16 /* NapiTSFNOffset32.async_resource_async_context_trigger_async_id */;
1040
+ emnapiTSFN.offset.queue_size = 60 /* NapiTSFNOffset32.queue_size */;
1041
+ emnapiTSFN.offset.is_some = 24 /* NapiTSFNOffset32.async_resource_is_some */;
1042
+ emnapiTSFN.offset.queue = 64 /* NapiTSFNOffset32.queue */;
1043
+ emnapiTSFN.offset.async_pending = 132 /* NapiTSFNOffset32.async_pending */;
1044
+ emnapiTSFN.offset.async_u_fd = 96 /* NapiTSFNOffset32.async_u_fd */;
1045
+ emnapiTSFN.offset.thread_count = 136 /* NapiTSFNOffset32.thread_count */;
1046
+ emnapiTSFN.offset.state = 140 /* NapiTSFNOffset32.state */;
1047
+ emnapiTSFN.offset.dispatch_state = 144 /* NapiTSFNOffset32.dispatch_state */;
1048
+ emnapiTSFN.offset.context = 148 /* NapiTSFNOffset32.context */;
1049
+ emnapiTSFN.offset.max_queue_size = 152 /* NapiTSFNOffset32.max_queue_size */;
1050
+ emnapiTSFN.offset.ref = 156 /* NapiTSFNOffset32.ref */;
1051
+ emnapiTSFN.offset.env = 160 /* NapiTSFNOffset32.env */;
1052
+ emnapiTSFN.offset.finalize_data = 164 /* NapiTSFNOffset32.finalize_data */;
1053
+ emnapiTSFN.offset.finalize_cb = 168 /* NapiTSFNOffset32.finalize_cb */;
1054
+ emnapiTSFN.offset.call_js_cb = 172 /* NapiTSFNOffset32.call_js_cb */;
1055
+ emnapiTSFN.offset.handles_closing = 176 /* NapiTSFNOffset32.handles_closing */;
1056
+ emnapiTSFN.offset.async_ref = 180 /* NapiTSFNOffset32.async_ref */;
1057
+ emnapiTSFN.offset.mutex = 32 /* NapiTSFNOffset32.mutex */;
1058
+ emnapiTSFN.offset.cond = 56 /* NapiTSFNOffset32.cond */;
1059
+ emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
1013
1060
  if (typeof PThread !== 'undefined') {
1014
1061
  PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
1015
1062
  PThread.runningWorkers.forEach(emnapiTSFN.addListener);
@@ -1033,7 +1080,10 @@ function createNapiModule(options) {
1033
1080
  var type = __emnapi__.type;
1034
1081
  var payload = __emnapi__.payload;
1035
1082
  if (type === 'tsfn-send') {
1036
- emnapiTSFN.dispatch(payload.tsfn);
1083
+ var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
1084
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
1085
+ emnapiTSFN.enqueue(payload.tsfn);
1086
+ }
1037
1087
  }
1038
1088
  }
1039
1089
  };
@@ -1060,6 +1110,7 @@ function createNapiModule(options) {
1060
1110
  var queue = _malloc(size);
1061
1111
  if (!queue)
1062
1112
  return false;
1113
+ queue >>>= 0;
1063
1114
  new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
1064
1115
  emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
1065
1116
  return true;
@@ -1067,6 +1118,12 @@ function createNapiModule(options) {
1067
1118
  destroyQueue: function (func) {
1068
1119
  var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
1069
1120
  if (queue) {
1121
+ var node = emnapiTSFN.loadSizeTypeValue(queue, false);
1122
+ while (node !== 0) {
1123
+ var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
1124
+ _free(node);
1125
+ node = next;
1126
+ }
1070
1127
  _free(queue);
1071
1128
  }
1072
1129
  },
@@ -1079,6 +1136,7 @@ function createNapiModule(options) {
1079
1136
  var node = _malloc(size);
1080
1137
  if (!node)
1081
1138
  throw new Error('OOM');
1139
+ node >>>= 0;
1082
1140
  emnapiTSFN.storeSizeTypeValue(node, data, false);
1083
1141
  emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
1084
1142
  if (head === 0 && tail === 0) {
@@ -1114,11 +1172,11 @@ function createNapiModule(options) {
1114
1172
  var waitCondition = function () {
1115
1173
  var queueSize = emnapiTSFN.getQueueSize(func);
1116
1174
  var maxSize = emnapiTSFN.getMaxQueueSize(func);
1117
- var isClosing = emnapiTSFN.getIsClosing(func);
1118
- return queueSize >= maxSize && maxSize > 0 && !isClosing;
1175
+ return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0 /* State.kOpen */;
1119
1176
  };
1120
1177
  var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
1121
- return mutex.execute(function () {
1178
+ var shouldDelete = false;
1179
+ var ret = mutex.execute(function () {
1122
1180
  while (waitCondition()) {
1123
1181
  if (mode === 0 /* napi_threadsafe_function_call_mode.napi_tsfn_nonblocking */) {
1124
1182
  return 15 /* napi_status.napi_queue_full */;
@@ -1135,21 +1193,25 @@ function createNapiModule(options) {
1135
1193
  }
1136
1194
  cond.wait();
1137
1195
  }
1138
- if (emnapiTSFN.getIsClosing(func)) {
1139
- if (emnapiTSFN.getThreadCount(func) === 0) {
1140
- return 1 /* napi_status.napi_invalid_arg */;
1141
- }
1142
- else {
1143
- emnapiTSFN.subThreadCount(func);
1144
- return 16 /* napi_status.napi_closing */;
1145
- }
1146
- }
1147
- else {
1196
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
1148
1197
  emnapiTSFN.pushQueue(func, data);
1149
1198
  emnapiTSFN.send(func);
1150
1199
  return 0 /* napi_status.napi_ok */;
1151
1200
  }
1201
+ if (emnapiTSFN.getThreadCount(func) === 0) {
1202
+ return 1 /* napi_status.napi_invalid_arg */;
1203
+ }
1204
+ emnapiTSFN.subThreadCount(func);
1205
+ if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
1206
+ return 16 /* napi_status.napi_closing */;
1207
+ }
1208
+ shouldDelete = true;
1209
+ return 16 /* napi_status.napi_closing */;
1152
1210
  });
1211
+ if (shouldDelete) {
1212
+ emnapiTSFN.destroy(func);
1213
+ }
1214
+ return ret;
1153
1215
  },
1154
1216
  getMutex: function (func) {
1155
1217
  var index = func + emnapiTSFN.offset.mutex;
@@ -1159,7 +1221,7 @@ function createNapiModule(options) {
1159
1221
  var i32a = new Int32Array(wasmMemory.buffer, index, 1);
1160
1222
  if (isBrowserMain) {
1161
1223
  while (true) {
1162
- var oldValue = Atomics.compareExchange(i32a, 0, 0, 1);
1224
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
1163
1225
  if (oldValue === 0) {
1164
1226
  return;
1165
1227
  }
@@ -1167,11 +1229,11 @@ function createNapiModule(options) {
1167
1229
  }
1168
1230
  else {
1169
1231
  while (true) {
1170
- var oldValue = Atomics.compareExchange(i32a, 0, 0, 1);
1232
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
1171
1233
  if (oldValue === 0) {
1172
1234
  return;
1173
1235
  }
1174
- Atomics.wait(i32a, 0, 1);
1236
+ Atomics.wait(i32a, 0, 10);
1175
1237
  }
1176
1238
  }
1177
1239
  },
@@ -1180,20 +1242,20 @@ function createNapiModule(options) {
1180
1242
  const again = (): void => { fn() }
1181
1243
  const fn = (): void => {
1182
1244
  const i32a = new Int32Array(wasmMemory.buffer, index, 1)
1183
- const oldValue = Atomics.compareExchange(i32a, 0, 0, 1)
1245
+ const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
1184
1246
  if (oldValue === 0) {
1185
1247
  resolve()
1186
1248
  return
1187
1249
  }
1188
- (Atomics as any).waitAsync(i32a, 0, 1).value.then(again)
1250
+ (Atomics as any).waitAsync(i32a, 0, 10).value.then(again)
1189
1251
  }
1190
1252
  fn()
1191
1253
  })
1192
1254
  }, */
1193
1255
  unlock: function () {
1194
1256
  var i32a = new Int32Array(wasmMemory.buffer, index, 1);
1195
- var oldValue = Atomics.compareExchange(i32a, 0, 1, 0);
1196
- if (oldValue !== 1) {
1257
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
1258
+ if (oldValue !== 10) {
1197
1259
  throw new Error('Tried to unlock while not holding the mutex');
1198
1260
  }
1199
1261
  Atomics.notify(i32a, 0, 1);
@@ -1257,14 +1319,14 @@ function createNapiModule(options) {
1257
1319
  var offset = emnapiTSFN.offset.queue_size;
1258
1320
  var arr, index;
1259
1321
  arr = new Uint32Array(wasmMemory.buffer);
1260
- index = (func + offset) >> 2;
1322
+ index = (func + offset) >>> 2;
1261
1323
  Atomics.add(arr, index, 1);
1262
1324
  },
1263
1325
  subQueueSize: function (func) {
1264
1326
  var offset = emnapiTSFN.offset.queue_size;
1265
1327
  var arr, index;
1266
1328
  arr = new Uint32Array(wasmMemory.buffer);
1267
- index = (func + offset) >> 2;
1329
+ index = (func + offset) >>> 2;
1268
1330
  Atomics.sub(arr, index, 1);
1269
1331
  },
1270
1332
  getThreadCount: function (func) {
@@ -1274,30 +1336,30 @@ function createNapiModule(options) {
1274
1336
  var offset = emnapiTSFN.offset.thread_count;
1275
1337
  var arr, index;
1276
1338
  arr = new Uint32Array(wasmMemory.buffer);
1277
- index = (func + offset) >> 2;
1339
+ index = (func + offset) >>> 2;
1278
1340
  Atomics.add(arr, index, 1);
1279
1341
  },
1280
1342
  subThreadCount: function (func) {
1281
1343
  var offset = emnapiTSFN.offset.thread_count;
1282
1344
  var arr, index;
1283
1345
  arr = new Uint32Array(wasmMemory.buffer);
1284
- index = (func + offset) >> 2;
1346
+ index = (func + offset) >>> 2;
1285
1347
  Atomics.sub(arr, index, 1);
1286
1348
  },
1287
- getIsClosing: function (func) {
1288
- return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.is_closing) >> 2);
1349
+ getState: function (func) {
1350
+ return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
1289
1351
  },
1290
- setIsClosing: function (func, value) {
1291
- Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.is_closing) >> 2, value);
1352
+ setState: function (func, value) {
1353
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
1292
1354
  },
1293
1355
  getHandlesClosing: function (func) {
1294
- return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing) >> 2);
1356
+ return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
1295
1357
  },
1296
1358
  setHandlesClosing: function (func, value) {
1297
- Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing) >> 2, value);
1359
+ Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
1298
1360
  },
1299
1361
  getDispatchState: function (func) {
1300
- return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >> 2);
1362
+ return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
1301
1363
  },
1302
1364
  getContext: function (func) {
1303
1365
  return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
@@ -1328,12 +1390,12 @@ function createNapiModule(options) {
1328
1390
  var arr;
1329
1391
  if (unsigned) {
1330
1392
  arr = new Uint32Array(wasmMemory.buffer);
1331
- ret = Atomics.load(arr, offset >> 2);
1393
+ ret = Atomics.load(arr, offset >>> 2);
1332
1394
  return ret;
1333
1395
  }
1334
1396
  else {
1335
1397
  arr = new Int32Array(wasmMemory.buffer);
1336
- ret = Atomics.load(arr, offset >> 2);
1398
+ ret = Atomics.load(arr, offset >>> 2);
1337
1399
  return ret;
1338
1400
  }
1339
1401
  },
@@ -1341,54 +1403,82 @@ function createNapiModule(options) {
1341
1403
  var arr;
1342
1404
  if (unsigned) {
1343
1405
  arr = new Uint32Array(wasmMemory.buffer);
1344
- Atomics.store(arr, offset >> 2, value);
1406
+ Atomics.store(arr, offset >>> 2, value);
1345
1407
  return undefined;
1346
1408
  }
1347
1409
  else {
1348
1410
  arr = new Int32Array(wasmMemory.buffer);
1349
- Atomics.store(arr, offset >> 2, value >>> 0);
1411
+ Atomics.store(arr, offset >>> 2, value >>> 0);
1350
1412
  return undefined;
1351
1413
  }
1352
1414
  },
1415
+ releaseResources: function (func) {
1416
+ if (emnapiTSFN.getState(func) !== 2 /* State.kClosed */) {
1417
+ emnapiTSFN.setState(func, 2 /* State.kClosed */);
1418
+ var env = emnapiTSFN.getEnv(func);
1419
+ var envObject = emnapiCtx.envStore.get(env);
1420
+ var ref = emnapiTSFN.getRef(func);
1421
+ if (ref) {
1422
+ emnapiCtx.refStore.get(ref).dispose();
1423
+ }
1424
+ var resource = emnapiTSFN.getResource(func);
1425
+ emnapiCtx.refStore.get(resource).dispose();
1426
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1427
+ HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
1428
+ emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
1429
+ envObject.unref();
1430
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
1431
+ var arr = new Uint32Array(wasmMemory.buffer);
1432
+ if (Atomics.load(arr, asyncRefOffset) > 0) {
1433
+ Atomics.store(arr, asyncRefOffset, 0);
1434
+ emnapiCtx.decreaseWaitingRequestCounter();
1435
+ }
1436
+ if (emnapiNodeBinding) {
1437
+ var view = new DataView(wasmMemory.buffer);
1438
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
1439
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
1440
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
1441
+ }
1442
+ }
1443
+ },
1353
1444
  destroy: function (func) {
1445
+ emnapiTSFN._liveSet.delete(func);
1354
1446
  emnapiTSFN.destroyQueue(func);
1355
- var env = emnapiTSFN.getEnv(func);
1356
- var envObject = emnapiCtx.envStore.get(env);
1357
- var ref = emnapiTSFN.getRef(func);
1358
- if (ref) {
1359
- emnapiCtx.refStore.get(ref).dispose();
1360
- }
1361
- emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
1362
- envObject.unref();
1363
- var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
1364
- var arr = new Int32Array(wasmMemory.buffer);
1365
- if (Atomics.load(arr, asyncRefOffset)) {
1366
- Atomics.store(arr, asyncRefOffset, 0);
1367
- emnapiCtx.decreaseWaitingRequestCounter();
1368
- }
1369
- var resource = emnapiTSFN.getResource(func);
1370
- emnapiCtx.refStore.get(resource).dispose();
1371
- if (emnapiNodeBinding) {
1372
- var view = new DataView(wasmMemory.buffer);
1373
- var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
1374
- var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
1375
- _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
1376
- }
1447
+ emnapiTSFN.releaseResources(func);
1377
1448
  _free(func);
1378
1449
  },
1379
- emptyQueueAndDelete: function (func) {
1450
+ emptyQueue: function (func) {
1451
+ var drainQueue = [];
1452
+ emnapiTSFN.getMutex(func).execute(function () {
1453
+ while (emnapiTSFN.getQueueSize(func) > 0) {
1454
+ drainQueue.push(emnapiTSFN.shiftQueue(func));
1455
+ }
1456
+ });
1380
1457
  var callJsCb = emnapiTSFN.getCallJSCb(func);
1381
1458
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1382
1459
  var context = emnapiTSFN.getContext(func);
1383
1460
  var data;
1384
- while (emnapiTSFN.getQueueSize(func) > 0) {
1461
+ for (var i = 0; i < drainQueue.length; i++) {
1385
1462
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1386
- data = emnapiTSFN.shiftQueue(func);
1463
+ data = drainQueue[i];
1387
1464
  if (callJsCb) {
1388
1465
  (wasmTable.get(callJsCb))(0, 0, context, data);
1389
1466
  }
1390
1467
  }
1391
- emnapiTSFN.destroy(func);
1468
+ },
1469
+ maybeDelete: function (func) {
1470
+ var shouldDelete = false;
1471
+ emnapiTSFN.getMutex(func).execute(function () {
1472
+ if (emnapiTSFN.getThreadCount(func) > 0) {
1473
+ emnapiTSFN.releaseResources(func);
1474
+ }
1475
+ else {
1476
+ shouldDelete = true;
1477
+ }
1478
+ });
1479
+ if (shouldDelete) {
1480
+ emnapiTSFN.destroy(func);
1481
+ }
1392
1482
  },
1393
1483
  finalize: function (func) {
1394
1484
  var env = emnapiTSFN.getEnv(func);
@@ -1403,6 +1493,7 @@ function createNapiModule(options) {
1403
1493
  envObject.callFinalizerInternal(0, finalize, data, context);
1404
1494
  };
1405
1495
  try {
1496
+ emnapiTSFN.emptyQueue(func);
1406
1497
  if (finalize) {
1407
1498
  if (emnapiNodeBinding) {
1408
1499
  var resource = emnapiTSFN.getResource(func);
@@ -1420,7 +1511,7 @@ function createNapiModule(options) {
1420
1511
  f();
1421
1512
  }
1422
1513
  }
1423
- emnapiTSFN.emptyQueueAndDelete(func);
1514
+ emnapiTSFN.maybeDelete(func);
1424
1515
  }
1425
1516
  finally {
1426
1517
  emnapiCtx.closeScope(envObject);
@@ -1436,7 +1527,7 @@ function createNapiModule(options) {
1436
1527
  try {
1437
1528
  if (set_closing) {
1438
1529
  emnapiTSFN.getMutex(func).execute(function () {
1439
- emnapiTSFN.setIsClosing(func, 1);
1530
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
1440
1531
  if (emnapiTSFN.getMaxQueueSize(func) > 0) {
1441
1532
  emnapiTSFN.getCond(func).signal();
1442
1533
  }
@@ -1446,6 +1537,7 @@ function createNapiModule(options) {
1446
1537
  return;
1447
1538
  }
1448
1539
  emnapiTSFN.setHandlesClosing(func, 1);
1540
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
1449
1541
  emnapiCtx.feature.setImmediate(function () {
1450
1542
  emnapiTSFN.finalize(func);
1451
1543
  });
@@ -1462,10 +1554,7 @@ function createNapiModule(options) {
1462
1554
  var mutex = emnapiTSFN.getMutex(func);
1463
1555
  var cond = emnapiTSFN.getCond(func);
1464
1556
  mutex.execute(function () {
1465
- if (emnapiTSFN.getIsClosing(func)) {
1466
- emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
1467
- }
1468
- else {
1557
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
1469
1558
  var size = emnapiTSFN.getQueueSize(func);
1470
1559
  if (size > 0) {
1471
1560
  data = emnapiTSFN.shiftQueue(func);
@@ -1478,7 +1567,7 @@ function createNapiModule(options) {
1478
1567
  }
1479
1568
  if (size === 0) {
1480
1569
  if (emnapiTSFN.getThreadCount(func) === 0) {
1481
- emnapiTSFN.setIsClosing(func, 1);
1570
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
1482
1571
  if (emnapiTSFN.getMaxQueueSize(func) > 0) {
1483
1572
  cond.signal();
1484
1573
  }
@@ -1489,6 +1578,9 @@ function createNapiModule(options) {
1489
1578
  has_more = true;
1490
1579
  }
1491
1580
  }
1581
+ else {
1582
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
1583
+ }
1492
1584
  });
1493
1585
  if (popped_value) {
1494
1586
  var env = emnapiTSFN.getEnv(func);
@@ -1537,7 +1629,7 @@ function createNapiModule(options) {
1537
1629
  var has_more = true;
1538
1630
  var iterations_left = 1000;
1539
1631
  var ui32a = new Uint32Array(wasmMemory.buffer);
1540
- var index = (func + emnapiTSFN.offset.dispatch_state) >> 2;
1632
+ var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
1541
1633
  while (has_more && --iterations_left !== 0) {
1542
1634
  Atomics.store(ui32a, index, 1);
1543
1635
  has_more = emnapiTSFN.dispatchOne(func);
@@ -1549,25 +1641,85 @@ function createNapiModule(options) {
1549
1641
  emnapiTSFN.send(func);
1550
1642
  }
1551
1643
  },
1552
- send: function (func) {
1553
- var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >> 2, 1 << 1);
1554
- if ((current_state & 1) === 1) {
1644
+ enqueue: function (func) {
1645
+ // `pending` means a worker thread has requested a wakeup that has not
1646
+ // been drained on the main thread yet.
1647
+ var pending = func + emnapiTSFN.offset.async_pending;
1648
+ // `scheduled` prevents queueing the same main-thread drain chain more than
1649
+ // once while a previous wakeup is still in flight.
1650
+ var scheduled = func + emnapiTSFN.offset.async_u_fd;
1651
+ var i32a = new Int32Array(wasmMemory.buffer);
1652
+ if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
1555
1653
  return;
1556
1654
  }
1557
- if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
1558
- postMessage({
1559
- __emnapi__: {
1560
- type: 'tsfn-send',
1561
- payload: {
1562
- tsfn: func
1655
+ // Match uv_async_send-style coalescing in JS: the first turn represents
1656
+ // the wakeup reaching the main thread, and the second turn performs the
1657
+ // actual TSFN drain after nearby Send/Signal calls have had a chance to
1658
+ // collapse into the shared AsyncProgressWorker state.
1659
+ emnapiCtx.feature.setImmediate(function () {
1660
+ if (!emnapiTSFN._liveSet.has(func)) {
1661
+ return;
1662
+ }
1663
+ if (Atomics.load(i32a, pending >>> 2) === 0) {
1664
+ Atomics.store(i32a, scheduled >>> 2, 0);
1665
+ return;
1666
+ }
1667
+ emnapiCtx.feature.setImmediate(function () {
1668
+ try {
1669
+ // Consume the coalesced wakeup once, then let dispatch() observe any
1670
+ // queue mutations through dispatch_state like the C implementation.
1671
+ if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
1672
+ return;
1673
+ }
1674
+ // After destroy(), the func address is freed. Skip dispatch
1675
+ // to avoid use-after-free (JS-side lifecycle check).
1676
+ if (!emnapiTSFN._liveSet.has(func)) {
1677
+ return;
1678
+ }
1679
+ emnapiTSFN.dispatch(func);
1680
+ }
1681
+ finally {
1682
+ // Allow a later wakeup to schedule a new drain chain. If another
1683
+ // worker-thread send raced with this drain, enqueue one more turn.
1684
+ if (emnapiTSFN._liveSet.has(func)) {
1685
+ Atomics.store(i32a, scheduled >>> 2, 0);
1686
+ if (Atomics.load(i32a, pending >>> 2) !== 0) {
1687
+ emnapiTSFN.enqueue(func);
1688
+ }
1563
1689
  }
1564
1690
  }
1565
1691
  });
1692
+ });
1693
+ },
1694
+ send: function (func) {
1695
+ var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
1696
+ if ((current_state & 1) === 1) {
1697
+ return;
1566
1698
  }
1567
- else {
1568
- emnapiCtx.feature.setImmediate(function () {
1569
- emnapiTSFN.dispatch(func);
1570
- });
1699
+ var pendng = func + emnapiTSFN.offset.async_pending;
1700
+ // A wakeup is already pending, so this send only needs to leave the queued
1701
+ // work in the TSFN queue and let the existing drain pick it up.
1702
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
1703
+ return;
1704
+ }
1705
+ if (Atomics.exchange(new Int32Array(wasmMemory.buffer), pendng >>> 2, 1) === 0) {
1706
+ if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
1707
+ // Worker threads only post a wakeup token. Main-thread draining is
1708
+ // serialized by enqueue() once the message is received.
1709
+ postMessage({
1710
+ __emnapi__: {
1711
+ type: 'tsfn-send',
1712
+ payload: {
1713
+ tsfn: func
1714
+ }
1715
+ }
1716
+ });
1717
+ }
1718
+ else {
1719
+ // On the main thread we can skip the cross-thread hop and schedule the
1720
+ // coalesced drain chain directly.
1721
+ emnapiTSFN.enqueue(func);
1722
+ }
1571
1723
  }
1572
1724
  }
1573
1725
  };
@@ -1580,6 +1732,13 @@ function createNapiModule(options) {
1580
1732
  envObject.checkGCAccess();
1581
1733
  if (!async_resource_name)
1582
1734
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
1735
+ max_queue_size >>>= 0;
1736
+ initial_thread_count >>>= 0;
1737
+ env >>>= 0;
1738
+ thread_finalize_data >>>= 0;
1739
+ thread_finalize_cb >>>= 0;
1740
+ context >>>= 0;
1741
+ call_js_cb >>>= 0;
1583
1742
  max_queue_size = max_queue_size >>> 0;
1584
1743
  initial_thread_count = initial_thread_count >>> 0;
1585
1744
  if (initial_thread_count === 0) {
@@ -1588,6 +1747,7 @@ function createNapiModule(options) {
1588
1747
  if (!result)
1589
1748
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
1590
1749
  var ref = 0;
1750
+ func >>>= 0;
1591
1751
  if (!func) {
1592
1752
  if (!call_js_cb)
1593
1753
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
@@ -1619,22 +1779,25 @@ function createNapiModule(options) {
1619
1779
  asyncResourceName = String(asyncResourceName);
1620
1780
  var resource_name = envObject.ensureHandleId(asyncResourceName);
1621
1781
  // tsfn create
1622
- var sizeofTSFN = emnapiTSFN.offset.end;
1782
+ var sizeofTSFN = emnapiTSFN.offset.__size__;
1783
+ // eslint-disable-next-line prefer-const
1623
1784
  var tsfn = _malloc(sizeofTSFN);
1624
1785
  if (!tsfn)
1625
1786
  return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
1787
+ tsfn >>>= 0;
1626
1788
  new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
1627
1789
  var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
1628
1790
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1629
1791
  var resource_ = resourceRef.id;
1630
1792
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1631
- HEAP_DATA_VIEW.setUint32(tsfn, resource_, true);
1793
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
1632
1794
  if (!emnapiTSFN.initQueue(tsfn)) {
1633
1795
  _free(tsfn);
1634
1796
  resourceRef.dispose();
1635
1797
  return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
1636
1798
  }
1637
1799
  _emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
1800
+ HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
1638
1801
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
1639
1802
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
1640
1803
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
@@ -1644,9 +1807,11 @@ function createNapiModule(options) {
1644
1807
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
1645
1808
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
1646
1809
  emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
1810
+ emnapiTSFN._liveSet.add(tsfn);
1647
1811
  envObject.ref();
1648
1812
  emnapiCtx.increaseWaitingRequestCounter();
1649
- HEAP_DATA_VIEW.setInt32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
1813
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
1814
+ result >>>= 0;
1650
1815
  HEAP_DATA_VIEW.setUint32(result, tsfn, true);
1651
1816
  return envObject.clearLastError();
1652
1817
  }
@@ -1656,6 +1821,8 @@ function createNapiModule(options) {
1656
1821
  abort();
1657
1822
  return 1 /* napi_status.napi_invalid_arg */;
1658
1823
  }
1824
+ func >>>= 0;
1825
+ result >>>= 0;
1659
1826
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1660
1827
  var context = emnapiTSFN.getContext(func);
1661
1828
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -1668,6 +1835,8 @@ function createNapiModule(options) {
1668
1835
  abort();
1669
1836
  return 1 /* napi_status.napi_invalid_arg */;
1670
1837
  }
1838
+ func >>>= 0;
1839
+ data >>>= 0;
1671
1840
  return emnapiTSFN.push(func, data, mode);
1672
1841
  }
1673
1842
  /** @__sig ip */
@@ -1676,13 +1845,14 @@ function createNapiModule(options) {
1676
1845
  abort();
1677
1846
  return 1 /* napi_status.napi_invalid_arg */;
1678
1847
  }
1848
+ func >>>= 0;
1679
1849
  var mutex = emnapiTSFN.getMutex(func);
1680
1850
  return mutex.execute(function () {
1681
- if (emnapiTSFN.getIsClosing(func)) {
1682
- return 16 /* napi_status.napi_closing */;
1851
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
1852
+ emnapiTSFN.addThreadCount(func);
1853
+ return 0 /* napi_status.napi_ok */;
1683
1854
  }
1684
- emnapiTSFN.addThreadCount(func);
1685
- return 0 /* napi_status.napi_ok */;
1855
+ return 16 /* napi_status.napi_closing */;
1686
1856
  });
1687
1857
  }
1688
1858
  /** @__sig ipi */
@@ -1691,26 +1861,36 @@ function createNapiModule(options) {
1691
1861
  abort();
1692
1862
  return 1 /* napi_status.napi_invalid_arg */;
1693
1863
  }
1864
+ func >>>= 0;
1694
1865
  var mutex = emnapiTSFN.getMutex(func);
1695
1866
  var cond = emnapiTSFN.getCond(func);
1696
- return mutex.execute(function () {
1867
+ var shouldDelete = false;
1868
+ var ret = mutex.execute(function () {
1697
1869
  if (emnapiTSFN.getThreadCount(func) === 0) {
1698
1870
  return 1 /* napi_status.napi_invalid_arg */;
1699
1871
  }
1700
1872
  emnapiTSFN.subThreadCount(func);
1701
1873
  if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
1702
- var isClosing = emnapiTSFN.getIsClosing(func);
1703
- if (!isClosing) {
1704
- var isClosingValue = (mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) ? 1 : 0;
1705
- emnapiTSFN.setIsClosing(func, isClosingValue);
1706
- if (isClosingValue && emnapiTSFN.getMaxQueueSize(func) > 0) {
1874
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
1875
+ if (mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
1876
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
1877
+ }
1878
+ if (emnapiTSFN.getState(func) === 1 /* State.kClosing */ && emnapiTSFN.getMaxQueueSize(func) > 0) {
1707
1879
  cond.signal();
1708
1880
  }
1709
1881
  emnapiTSFN.send(func);
1710
1882
  }
1711
1883
  }
1884
+ if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
1885
+ return 0 /* napi_status.napi_ok */;
1886
+ }
1887
+ shouldDelete = true;
1712
1888
  return 0 /* napi_status.napi_ok */;
1713
1889
  });
1890
+ if (shouldDelete) {
1891
+ emnapiTSFN.destroy(func);
1892
+ }
1893
+ return ret;
1714
1894
  }
1715
1895
  /** @__sig ipp */
1716
1896
  function napi_unref_threadsafe_function(env, func) {
@@ -1718,11 +1898,15 @@ function createNapiModule(options) {
1718
1898
  abort();
1719
1899
  return 1 /* napi_status.napi_invalid_arg */;
1720
1900
  }
1721
- var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
1722
- var arr = new Int32Array(wasmMemory.buffer);
1723
- if (Atomics.load(arr, asyncRefOffset)) {
1724
- Atomics.store(arr, asyncRefOffset, 0);
1725
- emnapiCtx.decreaseWaitingRequestCounter();
1901
+ func >>>= 0;
1902
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
1903
+ var arr = new Uint32Array(wasmMemory.buffer);
1904
+ var currentValue = Atomics.load(arr, asyncRefOffset);
1905
+ if (currentValue > 0) {
1906
+ Atomics.store(arr, asyncRefOffset, currentValue - 1);
1907
+ if (currentValue === 1) {
1908
+ emnapiCtx.decreaseWaitingRequestCounter();
1909
+ }
1726
1910
  }
1727
1911
  return 0 /* napi_status.napi_ok */;
1728
1912
  }
@@ -1732,34 +1916,57 @@ function createNapiModule(options) {
1732
1916
  abort();
1733
1917
  return 1 /* napi_status.napi_invalid_arg */;
1734
1918
  }
1735
- var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
1736
- var arr = new Int32Array(wasmMemory.buffer);
1737
- if (!Atomics.load(arr, asyncRefOffset)) {
1738
- Atomics.store(arr, asyncRefOffset, 1);
1919
+ func >>>= 0;
1920
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
1921
+ var arr = new Uint32Array(wasmMemory.buffer);
1922
+ var currentValue = Atomics.load(arr, asyncRefOffset);
1923
+ if (!currentValue) {
1739
1924
  emnapiCtx.increaseWaitingRequestCounter();
1740
1925
  }
1926
+ Atomics.store(arr, asyncRefOffset, currentValue + 1);
1741
1927
  return 0 /* napi_status.napi_ok */;
1742
1928
  }
1743
1929
  var emnapiAWMT = {
1744
- unusedWorkers: [],
1745
- runningWorkers: [],
1746
- workQueue: [],
1930
+ pool: [],
1747
1931
  workerReady: null,
1932
+ globalAddress: 0,
1933
+ globalOffset: {
1934
+ idle_threads: 0,
1935
+ q: 1 * 4,
1936
+ next: 1 * 4,
1937
+ prev: 2 * 4,
1938
+ mutex: 3 * 4,
1939
+ cond: 4 * 4,
1940
+ exit_message: 5 * 4,
1941
+ end: 7 * 4
1942
+ },
1748
1943
  offset: {
1749
1944
  /* napi_ref */ resource: 0,
1750
1945
  /* double */ async_id: 8,
1751
1946
  /* double */ trigger_async_id: 16,
1752
1947
  /* napi_env */ env: 24,
1753
- /* void* */ data: 1 * 4 + 24,
1754
- /* napi_async_execute_callback */ execute: 2 * 4 + 24,
1755
- /* napi_async_complete_callback */ complete: 3 * 4 + 24,
1756
- end: 4 * 4 + 24
1948
+ /* int32_t */ status: 1 * 4 + 24, // 0 for pending, 1 for cancelled, 2 for completed
1949
+ queue: 2 * 4 + 24,
1950
+ queue_next: 2 * 4 + 24,
1951
+ queue_prev: 3 * 4 + 24,
1952
+ /* void* */ data: 4 * 4 + 24,
1953
+ /* napi_async_execute_callback */ execute: 5 * 4 + 24,
1954
+ /* napi_async_complete_callback */ complete: 6 * 4 + 24,
1955
+ end: 7 * 4 + 24
1757
1956
  },
1758
1957
  init: function () {
1759
- emnapiAWMT.unusedWorkers = [];
1760
- emnapiAWMT.runningWorkers = [];
1761
- emnapiAWMT.workQueue = [];
1958
+ emnapiAWMT.pool = [];
1762
1959
  emnapiAWMT.workerReady = null;
1960
+ if (typeof PThread !== 'undefined') {
1961
+ PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
1962
+ PThread.runningWorkers.forEach(emnapiAWMT.addListener);
1963
+ var __original_getNewWorker_1 = PThread.getNewWorker;
1964
+ PThread.getNewWorker = function () {
1965
+ var r = __original_getNewWorker_1.apply(this, arguments);
1966
+ emnapiAWMT.addListener(r);
1967
+ return r;
1968
+ };
1969
+ }
1763
1970
  },
1764
1971
  addListener: function (worker) {
1765
1972
  if (!worker)
@@ -1773,18 +1980,8 @@ function createNapiModule(options) {
1773
1980
  var type = __emnapi__.type;
1774
1981
  var payload = __emnapi__.payload;
1775
1982
  if (type === 'async-work-complete') {
1776
- emnapiCtx.decreaseWaitingRequestCounter();
1777
- emnapiAWMT.runningWorkers.splice(emnapiAWMT.runningWorkers.indexOf(worker), 1);
1778
- emnapiAWMT.unusedWorkers.push(worker);
1779
- emnapiAWMT.checkIdleWorker();
1780
1983
  emnapiAWMT.callComplete(payload.work, 0 /* napi_status.napi_ok */);
1781
1984
  }
1782
- else if (type === 'async-work-queue') {
1783
- emnapiAWMT.scheduleWork(payload.work);
1784
- }
1785
- else if (type === 'async-work-cancel') {
1786
- emnapiAWMT.cancelWork(payload.work);
1787
- }
1788
1985
  }
1789
1986
  };
1790
1987
  var dispose = function () {
@@ -1805,6 +2002,26 @@ function createNapiModule(options) {
1805
2002
  }
1806
2003
  return true;
1807
2004
  },
2005
+ initGlobal: function () {
2006
+ if (!emnapiAWMT.globalAddress) {
2007
+ emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
2008
+ emnapiAWMT.globalAddress >>>= 0;
2009
+ var size = emnapiAWMT.globalOffset.end;
2010
+ var addr = emnapiAWMT.globalAddress;
2011
+ new Uint8Array(wasmMemory.buffer, addr, size).fill(0);
2012
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
2013
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
2014
+ }
2015
+ },
2016
+ terminateWorkers: function () {
2017
+ emnapiAWMT.pool.forEach(function (w) {
2018
+ var _a, _b;
2019
+ (_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
2020
+ (_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
2021
+ w.terminate();
2022
+ });
2023
+ emnapiAWMT.pool.length = 0;
2024
+ },
1808
2025
  initWorkers: function (n) {
1809
2026
  if (ENVIRONMENT_IS_PTHREAD) {
1810
2027
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
@@ -1812,137 +2029,200 @@ function createNapiModule(options) {
1812
2029
  }
1813
2030
  if (emnapiAWMT.workerReady)
1814
2031
  return emnapiAWMT.workerReady;
1815
- if (typeof onCreateWorker !== 'function') {
1816
- throw new TypeError('`options.onCreateWorker` is not a function');
1817
- }
1818
- var promises = [];
1819
- var args = [];
1820
2032
  if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
1821
2033
  throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
1822
2034
  }
2035
+ var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
2036
+ var args = [];
2037
+ emnapiAWMT.initGlobal();
1823
2038
  for (var i = 0; i < n; ++i) {
1824
- args.push(wasmInstance.exports.emnapi_async_worker_create());
2039
+ args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
1825
2040
  }
1826
- try {
1827
- var _loop_1 = function (i) {
1828
- var worker = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
1829
- var p = PThread.loadWasmModuleToWorker(worker);
1830
- emnapiAWMT.addListener(worker);
1831
- promises.push(p.then(function () {
1832
- if (typeof worker.unref === 'function') {
1833
- worker.unref();
1834
- }
1835
- }));
1836
- emnapiAWMT.unusedWorkers.push(worker);
1837
- var arg = args[i];
1838
- worker.threadBlockBase = arg;
1839
- worker.postMessage({
1840
- __emnapi__: {
1841
- type: 'async-worker-init',
1842
- payload: { arg: arg }
1843
- }
1844
- });
1845
- };
1846
- for (var i = 0; i < n; ++i) {
1847
- _loop_1(i);
2041
+ var promises = args.map(function (index) {
2042
+ if (index === 0) {
2043
+ return Promise.reject(new Error('Failed to create async worker'));
1848
2044
  }
1849
- }
1850
- catch (err) {
1851
- for (var i = 0; i < n; ++i) {
1852
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1853
- var arg = args[i];
1854
- _free(arg);
2045
+ var worker;
2046
+ if (index < 0) {
2047
+ worker = emnapiAWMT.pool[-index - 1];
2048
+ if (worker)
2049
+ return worker.whenLoaded;
1855
2050
  }
1856
- throw err;
1857
- }
2051
+ index >>>= 0;
2052
+ var view = new DataView(wasmMemory.buffer);
2053
+ var tidOffset = 20;
2054
+ var tid = view.getInt32(index + tidOffset, true);
2055
+ worker = PThread.pthreads[tid];
2056
+ return worker.whenLoaded;
2057
+ });
1858
2058
  emnapiAWMT.workerReady = Promise.all(promises);
1859
2059
  return emnapiAWMT.workerReady;
1860
2060
  },
1861
- checkIdleWorker: function () {
1862
- if (emnapiAWMT.unusedWorkers.length > 0 && emnapiAWMT.workQueue.length > 0) {
1863
- var worker = emnapiAWMT.unusedWorkers.shift();
1864
- var work = emnapiAWMT.workQueue.shift();
1865
- emnapiAWMT.runningWorkers.push(worker);
1866
- worker.postMessage({
1867
- __emnapi__: {
1868
- type: 'async-work-execute',
1869
- payload: { work: work }
1870
- }
1871
- });
1872
- }
1873
- },
1874
2061
  getResource: function (work) {
1875
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.resource, false);
2062
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2063
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
1876
2064
  },
1877
2065
  getExecute: function (work) {
1878
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.execute, false);
2066
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2067
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
1879
2068
  },
1880
2069
  getComplete: function (work) {
1881
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.complete, false);
2070
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2071
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
1882
2072
  },
1883
2073
  getEnv: function (work) {
1884
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.env, false);
2074
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2075
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
1885
2076
  },
1886
2077
  getData: function (work) {
1887
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.data, false);
2078
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2079
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
2080
+ },
2081
+ getMutex: function () {
2082
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
2083
+ var mutex = {
2084
+ lock: function () {
2085
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
2086
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
2087
+ if (isBrowserMain) {
2088
+ while (true) {
2089
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
2090
+ if (oldValue === 0) {
2091
+ return;
2092
+ }
2093
+ }
2094
+ }
2095
+ else {
2096
+ while (true) {
2097
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
2098
+ if (oldValue === 0) {
2099
+ return;
2100
+ }
2101
+ Atomics.wait(i32a, 0, 10);
2102
+ }
2103
+ }
2104
+ },
2105
+ unlock: function () {
2106
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
2107
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
2108
+ if (oldValue !== 10) {
2109
+ throw new Error('Tried to unlock while not holding the mutex');
2110
+ }
2111
+ Atomics.notify(i32a, 0, 1);
2112
+ },
2113
+ execute: function (fn) {
2114
+ mutex.lock();
2115
+ try {
2116
+ return fn();
2117
+ }
2118
+ finally {
2119
+ mutex.unlock();
2120
+ }
2121
+ }
2122
+ };
2123
+ return mutex;
2124
+ },
2125
+ getCond: function () {
2126
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
2127
+ var mutex = emnapiAWMT.getMutex();
2128
+ var cond = {
2129
+ wait: function () {
2130
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
2131
+ var value = Atomics.load(i32a, 0);
2132
+ mutex.unlock();
2133
+ Atomics.wait(i32a, 0, value);
2134
+ mutex.lock();
2135
+ },
2136
+ signal: function () {
2137
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
2138
+ Atomics.add(i32a, 0, 1);
2139
+ Atomics.notify(i32a, 0, 1);
2140
+ }
2141
+ };
2142
+ return cond;
2143
+ },
2144
+ queueInit: function (q) {
2145
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2146
+ HEAP_DATA_VIEW.setUint32(q, q, true);
2147
+ HEAP_DATA_VIEW.setUint32(q + 4, q, true);
2148
+ },
2149
+ queueInsertTail: function (h, q) {
2150
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2151
+ HEAP_DATA_VIEW.setUint32(q, h, true);
2152
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2153
+ var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
2154
+ HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
2155
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2156
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
2157
+ HEAP_DATA_VIEW.setUint32(qprev, q, true);
2158
+ HEAP_DATA_VIEW.setUint32(h + 4, q, true);
2159
+ },
2160
+ queueRemove: function (q) {
2161
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2162
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2163
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
2164
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2165
+ var qnext = HEAP_DATA_VIEW.getUint32(q, true);
2166
+ HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
2167
+ HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
2168
+ },
2169
+ queueEmpty: function (q) {
2170
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2171
+ // eslint-disable-next-line eqeqeq
2172
+ return q == HEAP_DATA_VIEW.getUint32(q, true);
1888
2173
  },
1889
2174
  scheduleWork: function (work) {
1890
2175
  var _a;
1891
- if (ENVIRONMENT_IS_PTHREAD) {
1892
- var postMessage_1 = napiModule.postMessage;
1893
- postMessage_1({
1894
- __emnapi__: {
1895
- type: 'async-work-queue',
1896
- payload: { work: work }
1897
- }
2176
+ if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
2177
+ emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
2178
+ emnapiAWMT.workerReady.ready = true;
2179
+ }).catch(function (err) {
2180
+ emnapiAWMT.workerReady = null;
2181
+ throw err;
1898
2182
  });
1899
- return;
1900
2183
  }
1901
2184
  emnapiCtx.increaseWaitingRequestCounter();
1902
- emnapiAWMT.workQueue.push(work);
1903
- if ((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready) {
1904
- emnapiAWMT.checkIdleWorker();
2185
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
2186
+ Atomics.store(statusBuffer, 0, 0 /* AsyncWorkStatus.Pending */);
2187
+ var mutex = emnapiAWMT.getMutex();
2188
+ var cond = emnapiAWMT.getCond();
2189
+ mutex.lock();
2190
+ try {
2191
+ emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
1905
2192
  }
1906
- else {
1907
- var fail = function (err) {
1908
- emnapiCtx.decreaseWaitingRequestCounter();
1909
- throw err;
1910
- };
1911
- try {
1912
- emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
1913
- emnapiAWMT.workerReady.ready = true;
1914
- emnapiAWMT.checkIdleWorker();
1915
- }, fail);
1916
- }
1917
- catch (err) {
1918
- fail(err);
1919
- }
2193
+ catch (err) {
2194
+ emnapiCtx.decreaseWaitingRequestCounter();
2195
+ mutex.unlock();
2196
+ throw err;
2197
+ }
2198
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2199
+ if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
2200
+ cond.signal();
1920
2201
  }
2202
+ mutex.unlock();
1921
2203
  },
1922
2204
  cancelWork: function (work) {
1923
- if (ENVIRONMENT_IS_PTHREAD) {
1924
- var postMessage_2 = napiModule.postMessage;
1925
- postMessage_2({
1926
- __emnapi__: {
1927
- type: 'async-work-cancel',
1928
- payload: { work: work }
1929
- }
1930
- });
1931
- return 0 /* napi_status.napi_ok */;
2205
+ var cancelled = false;
2206
+ emnapiAWMT.getMutex().execute(function () {
2207
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2208
+ cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2 /* AsyncWorkStatus.Completed */;
2209
+ if (cancelled) {
2210
+ emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
2211
+ }
2212
+ });
2213
+ if (!cancelled) {
2214
+ return 9 /* napi_status.napi_generic_failure */;
1932
2215
  }
1933
- var index = emnapiAWMT.workQueue.indexOf(work);
1934
- if (index !== -1) {
1935
- emnapiAWMT.workQueue.splice(index, 1);
1936
- emnapiCtx.feature.setImmediate(function () {
1937
- emnapiCtx.decreaseWaitingRequestCounter();
1938
- emnapiAWMT.checkIdleWorker();
1939
- emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
1940
- });
1941
- return 0 /* napi_status.napi_ok */;
2216
+ if (Atomics.compareExchange(new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1), 0, 0 /* AsyncWorkStatus.Pending */, 1 /* AsyncWorkStatus.Cancelled */) !== 0 /* AsyncWorkStatus.Pending */) {
2217
+ return 9 /* napi_status.napi_generic_failure */;
1942
2218
  }
1943
- return 9 /* napi_status.napi_generic_failure */;
2219
+ emnapiCtx.feature.setImmediate(function () {
2220
+ emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
2221
+ });
2222
+ return 0 /* napi_status.napi_ok */;
1944
2223
  },
1945
2224
  callComplete: function (work, status) {
2225
+ emnapiCtx.decreaseWaitingRequestCounter();
1946
2226
  var complete = emnapiAWMT.getComplete(work);
1947
2227
  var env = emnapiAWMT.getEnv(work);
1948
2228
  var data = emnapiAWMT.getData(work);
@@ -1977,6 +2257,7 @@ function createNapiModule(options) {
1977
2257
  }
1978
2258
  }
1979
2259
  };
2260
+ emnapiAWMT.init();
1980
2261
  /** @__sig ippppppp */
1981
2262
  var napi_create_async_work = singleThreadAsyncWork
1982
2263
  ? function (env, resource, resource_name, execute, complete, data, result) {
@@ -2001,6 +2282,7 @@ function createNapiModule(options) {
2001
2282
  var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
2002
2283
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2003
2284
  var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
2285
+ result >>>= 0;
2004
2286
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2005
2287
  HEAP_DATA_VIEW.setUint32(result, id, true);
2006
2288
  return envObject.clearLastError();
@@ -2028,6 +2310,7 @@ function createNapiModule(options) {
2028
2310
  var aw = _malloc(sizeofAW);
2029
2311
  if (!aw)
2030
2312
  return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
2313
+ aw >>>= 0;
2031
2314
  new Uint8Array(wasmMemory.buffer).subarray(aw, aw + sizeofAW).fill(0);
2032
2315
  var s = envObject.ensureHandleId(resourceObject);
2033
2316
  var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1 /* ReferenceOwnership.kUserland */);
@@ -2040,6 +2323,8 @@ function createNapiModule(options) {
2040
2323
  HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
2041
2324
  HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
2042
2325
  HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
2326
+ emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
2327
+ result >>>= 0;
2043
2328
  HEAP_DATA_VIEW.setUint32(result, aw, true);
2044
2329
  return envObject.clearLastError();
2045
2330
  };
@@ -2053,6 +2338,7 @@ function createNapiModule(options) {
2053
2338
  envObject.checkGCAccess();
2054
2339
  if (!work)
2055
2340
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2341
+ work >>>= 0;
2056
2342
  emnapiAWST.remove(work);
2057
2343
  return envObject.clearLastError();
2058
2344
  }
@@ -2064,6 +2350,7 @@ function createNapiModule(options) {
2064
2350
  envObject.checkGCAccess();
2065
2351
  if (!work)
2066
2352
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2353
+ work >>>= 0;
2067
2354
  var resource = emnapiAWMT.getResource(work);
2068
2355
  emnapiCtx.refStore.get(resource).dispose();
2069
2356
  if (emnapiNodeBinding) {
@@ -2083,6 +2370,7 @@ function createNapiModule(options) {
2083
2370
  var envObject = emnapiCtx.envStore.get(env);
2084
2371
  if (!work)
2085
2372
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2373
+ work >>>= 0;
2086
2374
  emnapiAWST.queue(work);
2087
2375
  return envObject.clearLastError();
2088
2376
  }
@@ -2092,6 +2380,7 @@ function createNapiModule(options) {
2092
2380
  var envObject = emnapiCtx.envStore.get(env);
2093
2381
  if (!work)
2094
2382
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2383
+ work >>>= 0;
2095
2384
  emnapiAWMT.scheduleWork(work);
2096
2385
  return envObject.clearLastError();
2097
2386
  };
@@ -2103,6 +2392,7 @@ function createNapiModule(options) {
2103
2392
  var envObject = emnapiCtx.envStore.get(env);
2104
2393
  if (!work)
2105
2394
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2395
+ work >>>= 0;
2106
2396
  var status = emnapiAWST.cancel(work);
2107
2397
  if (status === 0 /* napi_status.napi_ok */)
2108
2398
  return envObject.clearLastError();
@@ -2114,42 +2404,128 @@ function createNapiModule(options) {
2114
2404
  var envObject = emnapiCtx.envStore.get(env);
2115
2405
  if (!work)
2116
2406
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2407
+ work >>>= 0;
2117
2408
  var status = emnapiAWMT.cancelWork(work);
2118
2409
  if (status === 0 /* napi_status.napi_ok */)
2119
2410
  return envObject.clearLastError();
2120
2411
  return envObject.setLastError(status);
2121
2412
  };
2122
- function initWorker(startArg) {
2413
+ /** @__sig pp */
2414
+ function _emnapi_async_worker(globalAddress) {
2415
+ globalAddress >>>= 0;
2416
+ emnapiAWMT.globalAddress = globalAddress;
2417
+ var mutex = emnapiAWMT.getMutex();
2418
+ var cond = emnapiAWMT.getCond();
2419
+ mutex.lock();
2420
+ var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
2421
+ var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
2422
+ var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
2423
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2424
+ for (;;) {
2425
+ while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
2426
+ Atomics.add(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
2427
+ cond.wait();
2428
+ Atomics.sub(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
2429
+ }
2430
+ var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
2431
+ if (q === exitMessageAddr) {
2432
+ cond.signal();
2433
+ mutex.unlock();
2434
+ break;
2435
+ }
2436
+ var work = q - emnapiAWMT.offset.queue;
2437
+ emnapiAWMT.queueRemove(q);
2438
+ emnapiAWMT.queueInit(q);
2439
+ mutex.unlock();
2440
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
2441
+ if (Atomics.load(statusBuffer, 0) === 1 /* AsyncWorkStatus.Cancelled */) {
2442
+ abort('unreachable');
2443
+ }
2444
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2445
+ var execute = emnapiAWMT.getExecute(work);
2446
+ var env = emnapiAWMT.getEnv(work);
2447
+ var data = emnapiAWMT.getData(work);
2448
+ (wasmTable.get(execute))(env, data);
2449
+ Atomics.store(statusBuffer, 0, 2 /* AsyncWorkStatus.Completed */);
2450
+ var postMessage_1 = napiModule.postMessage;
2451
+ postMessage_1({
2452
+ __emnapi__: {
2453
+ type: 'async-work-complete',
2454
+ payload: { work: work }
2455
+ }
2456
+ });
2457
+ mutex.lock();
2458
+ }
2459
+ return 0;
2460
+ }
2461
+ /** @__sig ipp */
2462
+ function _emnapi_spawn_worker(f, globalAddress) {
2463
+ if (typeof onCreateWorker !== 'function') {
2464
+ throw new TypeError('`options.onCreateWorker` is not a function');
2465
+ }
2466
+ var promises = [];
2467
+ var args = [];
2468
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
2469
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
2470
+ }
2471
+ args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
2472
+ var handleError = function (e) {
2473
+ if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
2474
+ emnapiAWMT.terminateWorkers();
2475
+ }
2476
+ };
2477
+ var ret;
2478
+ try {
2479
+ var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
2480
+ var p = PThread.loadWasmModuleToWorker(worker_1);
2481
+ if (ENVIRONMENT_IS_NODE) {
2482
+ worker_1.on('error', handleError);
2483
+ }
2484
+ else {
2485
+ worker_1.addEventListener('error', handleError, false);
2486
+ }
2487
+ emnapiAWMT.addListener(worker_1);
2488
+ emnapiTSFN.addListener(worker_1);
2489
+ promises.push(p.then(function () {
2490
+ if (typeof worker_1.unref === 'function') {
2491
+ worker_1.unref();
2492
+ }
2493
+ }));
2494
+ ret = emnapiAWMT.pool.push(worker_1) - 1;
2495
+ var arg = args[0];
2496
+ worker_1.threadBlockBase = arg;
2497
+ worker_1.postMessage({
2498
+ __emnapi__: {
2499
+ type: 'async-worker-init',
2500
+ payload: { arg: arg, func: [f, globalAddress] }
2501
+ }
2502
+ });
2503
+ }
2504
+ catch (err) {
2505
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2506
+ var arg = args[0];
2507
+ _free(arg);
2508
+ throw err;
2509
+ }
2510
+ return ret;
2511
+ }
2512
+ function initWorker(startArg, func) {
2123
2513
  if (napiModule.childThread) {
2124
2514
  if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
2125
2515
  throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
2126
2516
  }
2127
2517
  wasmInstance.exports.emnapi_async_worker_init(startArg);
2518
+ (wasmTable.get(func[0]))(func[1]);
2128
2519
  }
2129
2520
  else {
2130
2521
  throw new Error('startThread is only available in child threads');
2131
2522
  }
2132
2523
  }
2133
- function executeAsyncWork(work) {
2134
- if (!ENVIRONMENT_IS_PTHREAD)
2135
- return;
2136
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2137
- var execute = emnapiAWMT.getExecute(work);
2138
- var env = emnapiAWMT.getEnv(work);
2139
- var data = emnapiAWMT.getData(work);
2140
- (wasmTable.get(execute))(env, data);
2141
- var postMessage = napiModule.postMessage;
2142
- postMessage({
2143
- __emnapi__: {
2144
- type: 'async-work-complete',
2145
- payload: { work: work }
2146
- }
2147
- });
2148
- }
2149
2524
  napiModule.initWorker = initWorker;
2150
- napiModule.executeAsyncWork = executeAsyncWork;
2151
2525
  var asyncWorkMod = /*#__PURE__*/ Object.freeze({
2152
2526
  __proto__: null,
2527
+ _emnapi_async_worker: _emnapi_async_worker,
2528
+ _emnapi_spawn_worker: _emnapi_spawn_worker,
2153
2529
  napi_cancel_async_work: napi_cancel_async_work,
2154
2530
  napi_create_async_work: napi_create_async_work,
2155
2531
  napi_delete_async_work: napi_delete_async_work,
@@ -2219,6 +2595,7 @@ function createNapiModule(options) {
2219
2595
  var pointer = _malloc(arrayBuffer.byteLength);
2220
2596
  if (!pointer)
2221
2597
  throw new Error('Out of memory');
2598
+ pointer >>>= 0;
2222
2599
  new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
2223
2600
  info.address = pointer;
2224
2601
  info.ownership = emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
@@ -2240,8 +2617,7 @@ function createNapiModule(options) {
2240
2617
  }
2241
2618
  return view;
2242
2619
  }
2243
- var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) ||
2244
- ((typeof SharedArrayBuffer === 'function') && (view.buffer instanceof SharedArrayBuffer));
2620
+ var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
2245
2621
  if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
2246
2622
  var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
2247
2623
  var Ctor = info.Ctor;
@@ -2381,7 +2757,7 @@ function createNapiModule(options) {
2381
2757
  ptr >>>= 0;
2382
2758
  var HEAPU8 = new Uint8Array(wasmMemory.buffer);
2383
2759
  var end = ptr;
2384
- if (length === -1) {
2760
+ if (length === -1 || length === 4294967295) {
2385
2761
  for (; HEAPU8[end];)
2386
2762
  ++end;
2387
2763
  }
@@ -2472,12 +2848,12 @@ function createNapiModule(options) {
2472
2848
  return '';
2473
2849
  ptr >>>= 0;
2474
2850
  var end = ptr;
2475
- if (length === -1) {
2476
- var idx = end >> 1;
2851
+ if (length === -1 || length === 4294967295) {
2852
+ var idx = end >>> 1;
2477
2853
  var HEAPU16 = new Uint16Array(wasmMemory.buffer);
2478
2854
  while (HEAPU16[idx])
2479
2855
  ++idx;
2480
- end = idx << 1;
2856
+ end = (idx << 1) >>> 0;
2481
2857
  }
2482
2858
  else {
2483
2859
  end = ptr + (length >>> 0) * 2;
@@ -2510,12 +2886,13 @@ function createNapiModule(options) {
2510
2886
  return outPtr - startPtr;
2511
2887
  },
2512
2888
  newString: function (env, str, length, result, stringMaker) {
2889
+ length >>>= 0;
2513
2890
  if (!env)
2514
2891
  return 1 /* napi_status.napi_invalid_arg */;
2515
2892
  // @ts-expect-error
2516
2893
  var envObject = emnapiCtx.envStore.get(env);
2517
2894
  envObject.checkGCAccess();
2518
- var autoLength = length === -1;
2895
+ var autoLength = length === -1 || length === 4294967295;
2519
2896
  var sizelength = length >>> 0;
2520
2897
  if (length !== 0) {
2521
2898
  if (!str)
@@ -2525,7 +2902,9 @@ function createNapiModule(options) {
2525
2902
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2526
2903
  if (!(autoLength || (sizelength <= 2147483647)))
2527
2904
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2905
+ str >>>= 0;
2528
2906
  var strValue = stringMaker(str, autoLength, sizelength);
2907
+ result >>>= 0;
2529
2908
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2530
2909
  var value = emnapiCtx.addToCurrentScope(strValue).id;
2531
2910
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -2533,12 +2912,13 @@ function createNapiModule(options) {
2533
2912
  return envObject.clearLastError();
2534
2913
  },
2535
2914
  newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
2915
+ length >>>= 0;
2536
2916
  if (!env)
2537
2917
  return 1 /* napi_status.napi_invalid_arg */;
2538
2918
  // @ts-expect-error
2539
2919
  var envObject = emnapiCtx.envStore.get(env);
2540
2920
  envObject.checkGCAccess();
2541
- var autoLength = length === -1;
2921
+ var autoLength = length === -1 || length === 4294967295;
2542
2922
  var sizelength = length >>> 0;
2543
2923
  if (length !== 0) {
2544
2924
  if (!str)
@@ -2584,6 +2964,7 @@ function createNapiModule(options) {
2584
2964
  if (!handle.isArray()) {
2585
2965
  return envObject.setLastError(8 /* napi_status.napi_array_expected */);
2586
2966
  }
2967
+ result >>>= 0;
2587
2968
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2588
2969
  var v = handle.value.length >>> 0;
2589
2970
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -2612,11 +2993,13 @@ function createNapiModule(options) {
2612
2993
  }
2613
2994
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2614
2995
  if (data) {
2996
+ data >>>= 0;
2615
2997
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2616
2998
  var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
2617
2999
  HEAP_DATA_VIEW.setUint32(data, p, true);
2618
3000
  }
2619
3001
  if (byte_length) {
3002
+ byte_length >>>= 0;
2620
3003
  HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
2621
3004
  }
2622
3005
  return envObject.clearLastError();
@@ -2689,6 +3072,7 @@ function createNapiModule(options) {
2689
3072
  catch (_) {
2690
3073
  return envObject.setLastError(2 /* napi_status.napi_object_expected */);
2691
3074
  }
3075
+ result >>>= 0;
2692
3076
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2693
3077
  var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
2694
3078
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -2718,6 +3102,7 @@ function createNapiModule(options) {
2718
3102
  var v = handle.value;
2719
3103
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2720
3104
  if (type) {
3105
+ type >>>= 0;
2721
3106
  var t = void 0;
2722
3107
  if (v instanceof Int8Array) {
2723
3108
  t = 0 /* napi_typedarray_type.napi_int8_array */;
@@ -2761,24 +3146,27 @@ function createNapiModule(options) {
2761
3146
  }
2762
3147
  HEAP_DATA_VIEW.setInt32(type, t, true);
2763
3148
  }
3149
+ v = emnapiExternalMemory.getOrUpdateMemoryView(v);
2764
3150
  if (length) {
3151
+ length >>>= 0;
2765
3152
  HEAP_DATA_VIEW.setUint32(length, v.length, true);
2766
3153
  }
2767
- var buffer;
2768
3154
  if (data || arraybuffer) {
2769
- buffer = v.buffer;
2770
3155
  if (data) {
3156
+ data >>>= 0;
2771
3157
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2772
3158
  var p = emnapiExternalMemory.getViewPointer(v, true).address;
2773
3159
  HEAP_DATA_VIEW.setUint32(data, p, true);
2774
3160
  }
2775
3161
  if (arraybuffer) {
3162
+ arraybuffer >>>= 0;
2776
3163
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2777
- var ab = envObject.ensureHandleId(buffer);
3164
+ var ab = envObject.ensureHandleId(v.buffer);
2778
3165
  HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
2779
3166
  }
2780
3167
  }
2781
3168
  if (byte_offset) {
3169
+ byte_offset >>>= 0;
2782
3170
  HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
2783
3171
  }
2784
3172
  return envObject.clearLastError();
@@ -2817,26 +3205,28 @@ function createNapiModule(options) {
2817
3205
  if (!handle.isDataView()) {
2818
3206
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2819
3207
  }
2820
- var v = handle.value;
3208
+ var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
2821
3209
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2822
3210
  if (byte_length) {
3211
+ byte_length >>>= 0;
2823
3212
  HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
2824
3213
  }
2825
- var buffer;
2826
3214
  if (data || arraybuffer) {
2827
- buffer = v.buffer;
2828
3215
  if (data) {
3216
+ data >>>= 0;
2829
3217
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2830
3218
  var p = emnapiExternalMemory.getViewPointer(v, true).address;
2831
3219
  HEAP_DATA_VIEW.setUint32(data, p, true);
2832
3220
  }
2833
3221
  if (arraybuffer) {
3222
+ arraybuffer >>>= 0;
2834
3223
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2835
- var ab = envObject.ensureHandleId(buffer);
3224
+ var ab = envObject.ensureHandleId(v.buffer);
2836
3225
  HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
2837
3226
  }
2838
3227
  }
2839
3228
  if (byte_offset) {
3229
+ byte_offset >>>= 0;
2840
3230
  HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
2841
3231
  }
2842
3232
  return envObject.clearLastError();
@@ -2866,6 +3256,7 @@ function createNapiModule(options) {
2866
3256
  if (!handle.isDate()) {
2867
3257
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
2868
3258
  }
3259
+ result >>>= 0;
2869
3260
  v = handle.value.valueOf();
2870
3261
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2871
3262
  HEAP_DATA_VIEW.setFloat64(result, v, true);
@@ -2893,6 +3284,7 @@ function createNapiModule(options) {
2893
3284
  if (typeof handle.value !== 'boolean') {
2894
3285
  return envObject.setLastError(7 /* napi_status.napi_boolean_expected */);
2895
3286
  }
3287
+ result >>>= 0;
2896
3288
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2897
3289
  var r = handle.value ? 1 : 0;
2898
3290
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -2916,6 +3308,7 @@ function createNapiModule(options) {
2916
3308
  if (typeof handle.value !== 'number') {
2917
3309
  return envObject.setLastError(6 /* napi_status.napi_number_expected */);
2918
3310
  }
3311
+ result >>>= 0;
2919
3312
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2920
3313
  var r = handle.value;
2921
3314
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -2945,6 +3338,8 @@ function createNapiModule(options) {
2945
3338
  if (typeof numberValue !== 'bigint') {
2946
3339
  return envObject.setLastError(6 /* napi_status.napi_number_expected */);
2947
3340
  }
3341
+ lossless >>>= 0;
3342
+ result >>>= 0;
2948
3343
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2949
3344
  if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
2950
3345
  HEAP_DATA_VIEW.setInt8(lossless, 1, true);
@@ -2987,6 +3382,8 @@ function createNapiModule(options) {
2987
3382
  if (typeof numberValue !== 'bigint') {
2988
3383
  return envObject.setLastError(6 /* napi_status.napi_number_expected */);
2989
3384
  }
3385
+ lossless >>>= 0;
3386
+ result >>>= 0;
2990
3387
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2991
3388
  if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
2992
3389
  HEAP_DATA_VIEW.setInt8(lossless, 1, true);
@@ -3024,8 +3421,12 @@ function createNapiModule(options) {
3024
3421
  return envObject.setLastError(17 /* napi_status.napi_bigint_expected */);
3025
3422
  }
3026
3423
  var isMinus = handle.value < BigInt(0);
3424
+ sign_bit >>>= 0;
3425
+ words >>>= 0;
3426
+ word_count >>>= 0;
3027
3427
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3028
3428
  var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
3429
+ word_count_int >>>= 0;
3029
3430
  var wordCount = 0;
3030
3431
  var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
3031
3432
  while (bigintValue !== BigInt(0)) {
@@ -3079,6 +3480,7 @@ function createNapiModule(options) {
3079
3480
  if (!handle.isExternal()) {
3080
3481
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3081
3482
  }
3483
+ result >>>= 0;
3082
3484
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3083
3485
  var p = handle.data();
3084
3486
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -3102,6 +3504,7 @@ function createNapiModule(options) {
3102
3504
  if (typeof handle.value !== 'number') {
3103
3505
  return envObject.setLastError(6 /* napi_status.napi_number_expected */);
3104
3506
  }
3507
+ result >>>= 0;
3105
3508
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3106
3509
  var v = new Int32Array([handle.value])[0];
3107
3510
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -3126,6 +3529,7 @@ function createNapiModule(options) {
3126
3529
  return envObject.setLastError(6 /* napi_status.napi_number_expected */);
3127
3530
  }
3128
3531
  var numberValue = handle.value;
3532
+ result >>>= 0;
3129
3533
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3130
3534
  if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
3131
3535
  HEAP_DATA_VIEW.setInt32(result, 0, true);
@@ -3155,6 +3559,9 @@ function createNapiModule(options) {
3155
3559
  envObject.checkGCAccess();
3156
3560
  if (!value)
3157
3561
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3562
+ result >>>= 0;
3563
+ buf >>>= 0;
3564
+ buf_size >>>= 0;
3158
3565
  buf_size = buf_size >>> 0;
3159
3566
  var handle = emnapiCtx.handleStore.get(value);
3160
3567
  if (typeof handle.value !== 'string') {
@@ -3197,6 +3604,9 @@ function createNapiModule(options) {
3197
3604
  envObject.checkGCAccess();
3198
3605
  if (!value)
3199
3606
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3607
+ result >>>= 0;
3608
+ buf >>>= 0;
3609
+ buf_size >>>= 0;
3200
3610
  buf_size = buf_size >>> 0;
3201
3611
  var handle = emnapiCtx.handleStore.get(value);
3202
3612
  if (typeof handle.value !== 'string') {
@@ -3233,6 +3643,9 @@ function createNapiModule(options) {
3233
3643
  envObject.checkGCAccess();
3234
3644
  if (!value)
3235
3645
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3646
+ result >>>= 0;
3647
+ buf >>>= 0;
3648
+ buf_size >>>= 0;
3236
3649
  buf_size = buf_size >>> 0;
3237
3650
  var handle = emnapiCtx.handleStore.get(value);
3238
3651
  if (typeof handle.value !== 'string') {
@@ -3273,6 +3686,7 @@ function createNapiModule(options) {
3273
3686
  if (typeof handle.value !== 'number') {
3274
3687
  return envObject.setLastError(6 /* napi_status.napi_number_expected */);
3275
3688
  }
3689
+ result >>>= 0;
3276
3690
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3277
3691
  var v = new Uint32Array([handle.value])[0];
3278
3692
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -3313,6 +3727,7 @@ function createNapiModule(options) {
3313
3727
  envObject.checkGCAccess();
3314
3728
  if (!result)
3315
3729
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3730
+ result >>>= 0;
3316
3731
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3317
3732
  var v = emnapiCtx.addToCurrentScope(value).id;
3318
3733
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -3330,6 +3745,7 @@ function createNapiModule(options) {
3330
3745
  envObject.checkGCAccess();
3331
3746
  if (!result)
3332
3747
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3748
+ result >>>= 0;
3333
3749
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3334
3750
  var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
3335
3751
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -3351,6 +3767,7 @@ function createNapiModule(options) {
3351
3767
  value = Number(low);
3352
3768
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3353
3769
  var v1 = emnapiCtx.addToCurrentScope(value).id;
3770
+ high >>>= 0;
3354
3771
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3355
3772
  HEAP_DATA_VIEW.setUint32(high, v1, true);
3356
3773
  return envObject.clearLastError();
@@ -3366,6 +3783,7 @@ function createNapiModule(options) {
3366
3783
  envObject.checkGCAccess();
3367
3784
  if (!result)
3368
3785
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3786
+ result >>>= 0;
3369
3787
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3370
3788
  var v = emnapiCtx.addToCurrentScope(value).id;
3371
3789
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -3466,6 +3884,7 @@ function createNapiModule(options) {
3466
3884
  value = low;
3467
3885
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3468
3886
  var v1 = emnapiCtx.addToCurrentScope(value).id;
3887
+ high >>>= 0;
3469
3888
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3470
3889
  HEAP_DATA_VIEW.setUint32(high, v1, true);
3471
3890
  return envObject.clearLastError();
@@ -3488,6 +3907,7 @@ function createNapiModule(options) {
3488
3907
  value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
3489
3908
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3490
3909
  var v1 = emnapiCtx.addToCurrentScope(value).id;
3910
+ high >>>= 0;
3491
3911
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3492
3912
  HEAP_DATA_VIEW.setUint32(high, v1, true);
3493
3913
  return envObject.clearLastError();
@@ -3514,6 +3934,8 @@ function createNapiModule(options) {
3514
3934
  }
3515
3935
  if (!result)
3516
3936
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3937
+ words >>>= 0;
3938
+ word_count >>>= 0;
3517
3939
  word_count = word_count >>> 0;
3518
3940
  if (word_count > 2147483647) {
3519
3941
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
@@ -3530,6 +3952,7 @@ function createNapiModule(options) {
3530
3952
  value += wordi << BigInt(64 * i);
3531
3953
  }
3532
3954
  value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
3955
+ result >>>= 0;
3533
3956
  v = emnapiCtx.addToCurrentScope(value).id;
3534
3957
  HEAP_DATA_VIEW.setUint32(result, v, true);
3535
3958
  return envObject.getReturnStatus();
@@ -3558,6 +3981,7 @@ function createNapiModule(options) {
3558
3981
  node_api_create_property_key_utf8: node_api_create_property_key_utf8
3559
3982
  });
3560
3983
  function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
3984
+ utf8name >>>= 0;
3561
3985
  var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
3562
3986
  var f;
3563
3987
  var napiCallback = (wasmTable.get(cb));
@@ -3700,6 +4124,7 @@ function createNapiModule(options) {
3700
4124
  if (!finalize_cb)
3701
4125
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3702
4126
  reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1 /* ReferenceOwnership.kUserland */, finalize_cb, native_object, finalize_hint);
4127
+ result >>>= 0;
3703
4128
  referenceId = reference.id;
3704
4129
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3705
4130
  HEAP_DATA_VIEW.setUint32(result, referenceId, true);
@@ -3750,6 +4175,7 @@ function createNapiModule(options) {
3750
4175
  if (!ref)
3751
4176
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3752
4177
  if (result) {
4178
+ result >>>= 0;
3753
4179
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3754
4180
  data = ref.data();
3755
4181
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -3793,12 +4219,15 @@ function createNapiModule(options) {
3793
4219
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3794
4220
  if (!constructor)
3795
4221
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4222
+ length >>>= 0;
4223
+ properties >>>= 0;
4224
+ property_count >>>= 0;
3796
4225
  property_count = property_count >>> 0;
3797
4226
  if (property_count > 0) {
3798
4227
  if (!properties)
3799
4228
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3800
4229
  }
3801
- if ((length < -1) || (length > 2147483647) || (!utf8name)) {
4230
+ if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
3802
4231
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
3803
4232
  }
3804
4233
  var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
@@ -3817,6 +4246,7 @@ function createNapiModule(options) {
3817
4246
  var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
3818
4247
  var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
3819
4248
  attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
4249
+ attributes >>>= 0;
3820
4250
  var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
3821
4251
  if (utf8Name) {
3822
4252
  propertyName = emnapiString.UTF8ToString(utf8Name, -1);
@@ -3839,6 +4269,7 @@ function createNapiModule(options) {
3839
4269
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3840
4270
  var valueHandle = emnapiCtx.addToCurrentScope(F);
3841
4271
  valueHandleId = valueHandle.id;
4272
+ result >>>= 0;
3842
4273
  HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
3843
4274
  return envObject.getReturnStatus();
3844
4275
  }
@@ -3887,6 +4318,7 @@ function createNapiModule(options) {
3887
4318
  if (!(value.isObject() || value.isFunction())) {
3888
4319
  return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
3889
4320
  }
4321
+ type_tag >>>= 0;
3890
4322
  if (!type_tag) {
3891
4323
  return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
3892
4324
  }
@@ -3936,6 +4368,7 @@ function createNapiModule(options) {
3936
4368
  }
3937
4369
  var binding = envObject.getObjectBinding(value.value);
3938
4370
  if (binding.tag !== null) {
4371
+ type_tag >>>= 0;
3939
4372
  var tag = binding.tag;
3940
4373
  var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
3941
4374
  ret = (tag[0] === typeTag[0] &&
@@ -3946,6 +4379,7 @@ function createNapiModule(options) {
3946
4379
  else {
3947
4380
  ret = false;
3948
4381
  }
4382
+ result >>>= 0;
3949
4383
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3950
4384
  HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
3951
4385
  return envObject.getReturnStatus();
@@ -3977,8 +4411,12 @@ function createNapiModule(options) {
3977
4411
  }
3978
4412
  var handle = handleResult.handle;
3979
4413
  var ownership = !result ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
4414
+ finalize_data >>>= 0;
4415
+ finalize_cb >>>= 0;
4416
+ finalize_hint >>>= 0;
3980
4417
  var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
3981
4418
  if (result) {
4419
+ result >>>= 0;
3982
4420
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3983
4421
  var referenceId = reference.id;
3984
4422
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4026,6 +4464,9 @@ function createNapiModule(options) {
4026
4464
  try {
4027
4465
  if (!result)
4028
4466
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4467
+ byte_length >>>= 0;
4468
+ external_data >>>= 0;
4469
+ result >>>= 0;
4029
4470
  byte_length = byte_length >>> 0;
4030
4471
  if (!external_data) {
4031
4472
  byte_length = 0;
@@ -4145,7 +4586,7 @@ function createNapiModule(options) {
4145
4586
  var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
4146
4587
  if (!pointer)
4147
4588
  throw new Error('Unknown ArrayBuffer address');
4148
- if (typeof len !== 'number' || len === -1) {
4589
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
4149
4590
  len = arrayBufferOrView.byteLength - offset;
4150
4591
  }
4151
4592
  len = len >>> 0;
@@ -4167,7 +4608,7 @@ function createNapiModule(options) {
4167
4608
  var pointer = viewPointerInfo.address;
4168
4609
  if (!pointer)
4169
4610
  throw new Error('Unknown ArrayBuffer address');
4170
- if (typeof len !== 'number' || len === -1) {
4611
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
4171
4612
  len = latestView.byteLength - offset;
4172
4613
  }
4173
4614
  len = len >>> 0;
@@ -4204,6 +4645,9 @@ function createNapiModule(options) {
4204
4645
  try {
4205
4646
  if (!arraybuffer_or_view)
4206
4647
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4648
+ arraybuffer_or_view >>>= 0;
4649
+ offset >>>= 0;
4650
+ len >>>= 0;
4207
4651
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4208
4652
  var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
4209
4653
  var handle = envObject.ctx.handleStore.get(handleId);
@@ -4212,6 +4656,7 @@ function createNapiModule(options) {
4212
4656
  }
4213
4657
  var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
4214
4658
  if (handle.value !== ret) {
4659
+ arraybuffer_or_view >>>= 0;
4215
4660
  v = envObject.ensureHandleId(ret);
4216
4661
  HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
4217
4662
  }
@@ -4270,13 +4715,16 @@ function createNapiModule(options) {
4270
4715
  p = info.address;
4271
4716
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4272
4717
  if (address) {
4718
+ address >>>= 0;
4273
4719
  HEAP_DATA_VIEW.setUint32(address, p, true);
4274
4720
  }
4275
4721
  if (ownership) {
4722
+ ownership >>>= 0;
4276
4723
  ownershipOut = info.ownership;
4277
4724
  HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
4278
4725
  }
4279
4726
  if (runtime_allocated) {
4727
+ runtime_allocated >>>= 0;
4280
4728
  runtimeAllocated = info.runtimeAllocated;
4281
4729
  HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
4282
4730
  }
@@ -4306,6 +4754,7 @@ function createNapiModule(options) {
4306
4754
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4307
4755
  var versions = runtimeVersion.split('.')
4308
4756
  .map(function (n) { return Number(n); });
4757
+ version >>>= 0;
4309
4758
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4310
4759
  HEAP_DATA_VIEW.setUint32(version, versions[0], true);
4311
4760
  HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
@@ -4335,6 +4784,7 @@ function createNapiModule(options) {
4335
4784
  envObject.checkGCAccess();
4336
4785
  if (!result)
4337
4786
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4787
+ result >>>= 0;
4338
4788
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4339
4789
  var value = emnapiCtx.addToCurrentScope([]).id;
4340
4790
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4352,6 +4802,8 @@ function createNapiModule(options) {
4352
4802
  envObject.checkGCAccess();
4353
4803
  if (!result)
4354
4804
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4805
+ length >>>= 0;
4806
+ result >>>= 0;
4355
4807
  length = length >>> 0;
4356
4808
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4357
4809
  var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
@@ -4360,9 +4812,11 @@ function createNapiModule(options) {
4360
4812
  return envObject.clearLastError();
4361
4813
  }
4362
4814
  function emnapiCreateArrayBuffer(byte_length, data, shared) {
4815
+ byte_length >>>= 0;
4363
4816
  byte_length = byte_length >>> 0;
4364
4817
  var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
4365
4818
  if (data) {
4819
+ data >>>= 0;
4366
4820
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4367
4821
  var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
4368
4822
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4389,6 +4843,7 @@ function createNapiModule(options) {
4389
4843
  try {
4390
4844
  if (!result)
4391
4845
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4846
+ result >>>= 0;
4392
4847
  var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
4393
4848
  value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
4394
4849
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4419,6 +4874,7 @@ function createNapiModule(options) {
4419
4874
  try {
4420
4875
  if (!result)
4421
4876
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4877
+ result >>>= 0;
4422
4878
  var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
4423
4879
  value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
4424
4880
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4449,6 +4905,7 @@ function createNapiModule(options) {
4449
4905
  try {
4450
4906
  if (!result)
4451
4907
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4908
+ result >>>= 0;
4452
4909
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4453
4910
  value = emnapiCtx.addToCurrentScope(new Date(time)).id;
4454
4911
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4486,6 +4943,7 @@ function createNapiModule(options) {
4486
4943
  if (finalize_cb) {
4487
4944
  emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0 /* ReferenceOwnership.kRuntime */, finalize_cb, data, finalize_hint);
4488
4945
  }
4946
+ result >>>= 0;
4489
4947
  value = externalHandle.id;
4490
4948
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4491
4949
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4515,6 +4973,9 @@ function createNapiModule(options) {
4515
4973
  try {
4516
4974
  if (!result)
4517
4975
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4976
+ byte_length >>>= 0;
4977
+ external_data >>>= 0;
4978
+ result >>>= 0;
4518
4979
  byte_length = byte_length >>> 0;
4519
4980
  if (!external_data) {
4520
4981
  byte_length = 0;
@@ -4576,6 +5037,7 @@ function createNapiModule(options) {
4576
5037
  envObject.checkGCAccess();
4577
5038
  if (!result)
4578
5039
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5040
+ result >>>= 0;
4579
5041
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4580
5042
  var value = emnapiCtx.addToCurrentScope({}).id;
4581
5043
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4585,7 +5047,7 @@ function createNapiModule(options) {
4585
5047
  /**
4586
5048
  * @__sig ipppppp
4587
5049
  */
4588
- function napi_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
5050
+ function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
4589
5051
  if (!env)
4590
5052
  return 1 /* napi_status.napi_invalid_arg */;
4591
5053
  // @ts-expect-error
@@ -4593,6 +5055,7 @@ function createNapiModule(options) {
4593
5055
  envObject.checkGCAccess();
4594
5056
  if (!result)
4595
5057
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5058
+ property_count >>>= 0;
4596
5059
  property_count = property_count >>> 0;
4597
5060
  if (property_count > 0) {
4598
5061
  if (!property_names)
@@ -4604,6 +5067,8 @@ function createNapiModule(options) {
4604
5067
  ? emnapiCtx.handleStore.get(prototype_or_null).value
4605
5068
  : null;
4606
5069
  var properties = {};
5070
+ property_names >>>= 0;
5071
+ property_values >>>= 0;
4607
5072
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4608
5073
  for (var i = 0; i < property_count; i++) {
4609
5074
  var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
@@ -4625,6 +5090,7 @@ function createNapiModule(options) {
4625
5090
  }
4626
5091
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4627
5092
  var value = emnapiCtx.addToCurrentScope(obj).id;
5093
+ result >>>= 0;
4628
5094
  HEAP_DATA_VIEW.setUint32(result, value, true);
4629
5095
  return envObject.clearLastError();
4630
5096
  }
@@ -4639,6 +5105,7 @@ function createNapiModule(options) {
4639
5105
  envObject.checkGCAccess();
4640
5106
  if (!result)
4641
5107
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5108
+ result >>>= 0;
4642
5109
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4643
5110
  if (!description) {
4644
5111
  // eslint-disable-next-line symbol-description, @typescript-eslint/no-unused-vars
@@ -4683,6 +5150,8 @@ function createNapiModule(options) {
4683
5150
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4684
5151
  }
4685
5152
  var buffer = handle.value;
5153
+ byte_offset >>>= 0;
5154
+ length >>>= 0;
4686
5155
  var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
4687
5156
  var _a;
4688
5157
  byte_offset = byte_offset >>> 0;
@@ -4713,6 +5182,7 @@ function createNapiModule(options) {
4713
5182
  });
4714
5183
  }
4715
5184
  }
5185
+ result >>>= 0;
4716
5186
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4717
5187
  value = emnapiCtx.addToCurrentScope(out).id;
4718
5188
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4781,7 +5251,9 @@ function createNapiModule(options) {
4781
5251
  if (!Buffer) {
4782
5252
  throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
4783
5253
  }
5254
+ result >>>= 0;
4784
5255
  var buffer = void 0;
5256
+ size >>>= 0;
4785
5257
  size = size >>> 0;
4786
5258
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4787
5259
  if (!data || (size === 0)) {
@@ -4793,6 +5265,7 @@ function createNapiModule(options) {
4793
5265
  pointer = _malloc(size);
4794
5266
  if (!pointer)
4795
5267
  throw new Error('Out of memory');
5268
+ pointer >>>= 0;
4796
5269
  new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
4797
5270
  var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
4798
5271
  var viewDescriptor = {
@@ -4806,6 +5279,7 @@ function createNapiModule(options) {
4806
5279
  (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
4807
5280
  value = emnapiCtx.addToCurrentScope(buffer_1).id;
4808
5281
  HEAP_DATA_VIEW.setUint32(result, value, true);
5282
+ data >>>= 0;
4809
5283
  HEAP_DATA_VIEW.setUint32(data, pointer, true);
4810
5284
  }
4811
5285
  return envObject.getReturnStatus();
@@ -4840,8 +5314,11 @@ function createNapiModule(options) {
4840
5314
  }
4841
5315
  var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
4842
5316
  var buffer = Buffer.from(arrayBuffer);
5317
+ data >>>= 0;
5318
+ length >>>= 0;
4843
5319
  buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
4844
5320
  value = emnapiCtx.addToCurrentScope(buffer).id;
5321
+ result >>>= 0;
4845
5322
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4846
5323
  HEAP_DATA_VIEW.setUint32(result, value, true);
4847
5324
  return envObject.getReturnStatus();
@@ -4878,6 +5355,8 @@ function createNapiModule(options) {
4878
5355
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4879
5356
  if (!result)
4880
5357
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5358
+ byte_offset >>>= 0;
5359
+ byte_length >>>= 0;
4881
5360
  byte_offset = byte_offset >>> 0;
4882
5361
  byte_length = byte_length >>> 0;
4883
5362
  var handle = emnapiCtx.handleStore.get(arraybuffer);
@@ -4906,6 +5385,7 @@ function createNapiModule(options) {
4906
5385
  });
4907
5386
  }
4908
5387
  }
5388
+ result >>>= 0;
4909
5389
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4910
5390
  value = emnapiCtx.addToCurrentScope(out).id;
4911
5391
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4936,6 +5416,8 @@ function createNapiModule(options) {
4936
5416
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4937
5417
  if (!result)
4938
5418
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5419
+ byte_length >>>= 0;
5420
+ byte_offset >>>= 0;
4939
5421
  byte_length = byte_length >>> 0;
4940
5422
  byte_offset = byte_offset >>> 0;
4941
5423
  var value = emnapiCtx.handleStore.get(arraybuffer).value;
@@ -4957,6 +5439,7 @@ function createNapiModule(options) {
4957
5439
  });
4958
5440
  }
4959
5441
  }
5442
+ result >>>= 0;
4960
5443
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4961
5444
  var v = emnapiCtx.addToCurrentScope(dataview).id;
4962
5445
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -4986,7 +5469,10 @@ function createNapiModule(options) {
4986
5469
  envObject.checkGCAccess();
4987
5470
  if (!result)
4988
5471
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
4989
- var autoLength = length === -1;
5472
+ length >>>= 0;
5473
+ utf8description >>>= 0;
5474
+ result >>>= 0;
5475
+ var autoLength = length === -1 || length === 4294967295;
4990
5476
  var sizelength = length >>> 0;
4991
5477
  if (length !== 0) {
4992
5478
  if (!utf8description)
@@ -5015,10 +5501,10 @@ function createNapiModule(options) {
5015
5501
  napi_create_external_arraybuffer: napi_create_external_arraybuffer,
5016
5502
  napi_create_external_buffer: napi_create_external_buffer,
5017
5503
  napi_create_object: napi_create_object,
5018
- napi_create_object_with_properties: napi_create_object_with_properties,
5019
5504
  napi_create_symbol: napi_create_symbol,
5020
5505
  napi_create_typedarray: napi_create_typedarray,
5021
5506
  node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
5507
+ node_api_create_object_with_properties: node_api_create_object_with_properties,
5022
5508
  node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
5023
5509
  node_api_symbol_for: node_api_symbol_for
5024
5510
  });
@@ -5031,6 +5517,7 @@ function createNapiModule(options) {
5031
5517
  envObject.checkGCAccess();
5032
5518
  if (!result)
5033
5519
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5520
+ result >>>= 0;
5034
5521
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5035
5522
  var v = value === 0 ? 3 /* GlobalHandle.FALSE */ : 4 /* GlobalHandle.TRUE */;
5036
5523
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5046,6 +5533,7 @@ function createNapiModule(options) {
5046
5533
  envObject.checkGCAccess();
5047
5534
  if (!result)
5048
5535
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5536
+ result >>>= 0;
5049
5537
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5050
5538
  var value = 5 /* GlobalHandle.GLOBAL */;
5051
5539
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5061,6 +5549,7 @@ function createNapiModule(options) {
5061
5549
  envObject.checkGCAccess();
5062
5550
  if (!result)
5063
5551
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5552
+ result >>>= 0;
5064
5553
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5065
5554
  var value = 2 /* GlobalHandle.NULL */;
5066
5555
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5076,6 +5565,7 @@ function createNapiModule(options) {
5076
5565
  envObject.checkGCAccess();
5077
5566
  if (!result)
5078
5567
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5568
+ result >>>= 0;
5079
5569
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5080
5570
  var value = 1 /* GlobalHandle.UNDEFINED */;
5081
5571
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5094,6 +5584,9 @@ function createNapiModule(options) {
5094
5584
  if (!env)
5095
5585
  return 1 /* napi_status.napi_invalid_arg */;
5096
5586
  var envObject = emnapiCtx.envStore.get(env);
5587
+ data >>>= 0;
5588
+ finalize_cb >>>= 0;
5589
+ finalize_hint >>>= 0;
5097
5590
  envObject.setInstanceData(data, finalize_cb, finalize_hint);
5098
5591
  return envObject.clearLastError();
5099
5592
  }
@@ -5104,6 +5597,7 @@ function createNapiModule(options) {
5104
5597
  var envObject = emnapiCtx.envStore.get(env);
5105
5598
  if (!data)
5106
5599
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5600
+ data >>>= 0;
5107
5601
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5108
5602
  var value = envObject.getInstanceData();
5109
5603
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5117,6 +5611,9 @@ function createNapiModule(options) {
5117
5611
  });
5118
5612
  /** @__sig vpppp */
5119
5613
  function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
5614
+ error_code >>>= 0;
5615
+ engine_error_code >>>= 0;
5616
+ engine_reserved >>>= 0;
5120
5617
  var envObject = emnapiCtx.envStore.get(env);
5121
5618
  var lastError = envObject.lastError;
5122
5619
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -5125,6 +5622,7 @@ function createNapiModule(options) {
5125
5622
  var engineErrorCode = lastError.engineErrorCode >>> 0;
5126
5623
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5127
5624
  var engineReserved = lastError.engineReserved;
5625
+ engineReserved >>>= 0;
5128
5626
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5129
5627
  HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
5130
5628
  HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
@@ -5168,6 +5666,8 @@ function createNapiModule(options) {
5168
5666
  try {
5169
5667
  if (!msg)
5170
5668
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5669
+ code >>>= 0;
5670
+ msg >>>= 0;
5171
5671
  var error = new Error(emnapiString.UTF8ToString(msg, -1));
5172
5672
  if (code)
5173
5673
  error.code = emnapiString.UTF8ToString(code, -1);
@@ -5194,6 +5694,8 @@ function createNapiModule(options) {
5194
5694
  try {
5195
5695
  if (!msg)
5196
5696
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5697
+ code >>>= 0;
5698
+ msg >>>= 0;
5197
5699
  var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
5198
5700
  if (code)
5199
5701
  error.code = emnapiString.UTF8ToString(code, -1);
@@ -5220,6 +5722,8 @@ function createNapiModule(options) {
5220
5722
  try {
5221
5723
  if (!msg)
5222
5724
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5725
+ code >>>= 0;
5726
+ msg >>>= 0;
5223
5727
  var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
5224
5728
  if (code)
5225
5729
  error.code = emnapiString.UTF8ToString(code, -1);
@@ -5246,6 +5750,8 @@ function createNapiModule(options) {
5246
5750
  try {
5247
5751
  if (!msg)
5248
5752
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5753
+ code >>>= 0;
5754
+ msg >>>= 0;
5249
5755
  var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
5250
5756
  if (code)
5251
5757
  error.code = emnapiString.UTF8ToString(code, -1);
@@ -5268,6 +5774,7 @@ function createNapiModule(options) {
5268
5774
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5269
5775
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5270
5776
  var r = envObject.tryCatch.hasCaught();
5777
+ result >>>= 0;
5271
5778
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5272
5779
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
5273
5780
  return envObject.clearLastError();
@@ -5295,6 +5802,7 @@ function createNapiModule(options) {
5295
5802
  }
5296
5803
  error.code = codeValue;
5297
5804
  }
5805
+ result >>>= 0;
5298
5806
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5299
5807
  var value = emnapiCtx.addToCurrentScope(error).id;
5300
5808
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5324,6 +5832,7 @@ function createNapiModule(options) {
5324
5832
  }
5325
5833
  error.code = codeValue;
5326
5834
  }
5835
+ result >>>= 0;
5327
5836
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5328
5837
  var value = emnapiCtx.addToCurrentScope(error).id;
5329
5838
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5353,6 +5862,7 @@ function createNapiModule(options) {
5353
5862
  }
5354
5863
  error.code = codeValue;
5355
5864
  }
5865
+ result >>>= 0;
5356
5866
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5357
5867
  var value = emnapiCtx.addToCurrentScope(error).id;
5358
5868
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5382,6 +5892,7 @@ function createNapiModule(options) {
5382
5892
  }
5383
5893
  error.code = codeValue;
5384
5894
  }
5895
+ result >>>= 0;
5385
5896
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5386
5897
  var value = emnapiCtx.addToCurrentScope(error).id;
5387
5898
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5397,6 +5908,7 @@ function createNapiModule(options) {
5397
5908
  envObject.checkGCAccess();
5398
5909
  if (!result)
5399
5910
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5911
+ result >>>= 0;
5400
5912
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5401
5913
  if (!envObject.tryCatch.hasCaught()) {
5402
5914
  HEAP_DATA_VIEW.setUint32(result, 1, true); // ID_UNDEFINED
@@ -5413,6 +5925,10 @@ function createNapiModule(options) {
5413
5925
  }
5414
5926
  /** @__sig vpppp */
5415
5927
  function napi_fatal_error(location, location_len, message, message_len) {
5928
+ location >>>= 0;
5929
+ location_len >>>= 0;
5930
+ message >>>= 0;
5931
+ message_len >>>= 0;
5416
5932
  var locationStr = emnapiString.UTF8ToString(location, location_len);
5417
5933
  var messageStr = emnapiString.UTF8ToString(message, message_len);
5418
5934
  if (emnapiNodeBinding) {
@@ -5469,9 +5985,23 @@ function createNapiModule(options) {
5469
5985
  node_api_throw_syntax_error: node_api_throw_syntax_error
5470
5986
  });
5471
5987
  /** @__sig ipppppp */
5472
- function napi_create_function(env, utf8name, length, cb, data, result) {
5988
+ function _emnapi_create_function(env, utf8name, length, cb, data, result) {
5989
+ length >>>= 0;
5990
+ var envObject = emnapiCtx.envStore.get(env);
5991
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
5992
+ if (fresult.status !== 0 /* napi_status.napi_ok */)
5993
+ return envObject.setLastError(fresult.status);
5994
+ var f = fresult.f;
5995
+ var valueHandle = emnapiCtx.addToCurrentScope(f);
5996
+ result >>>= 0;
5473
5997
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5474
- var value;
5998
+ var value = valueHandle.id;
5999
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6000
+ HEAP_DATA_VIEW.setUint32(result, value, true);
6001
+ return envObject.getReturnStatus();
6002
+ }
6003
+ /** @__sig ipppppp */
6004
+ function napi_create_function(env, utf8name, length, cb, data, result) {
5475
6005
  if (!env)
5476
6006
  return 1 /* napi_status.napi_invalid_arg */;
5477
6007
  // @ts-expect-error
@@ -5487,15 +6017,7 @@ function createNapiModule(options) {
5487
6017
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5488
6018
  if (!cb)
5489
6019
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5490
- var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
5491
- if (fresult.status !== 0 /* napi_status.napi_ok */)
5492
- return envObject.setLastError(fresult.status);
5493
- var f = fresult.f;
5494
- var valueHandle = emnapiCtx.addToCurrentScope(f);
5495
- value = valueHandle.id;
5496
- var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5497
- HEAP_DATA_VIEW.setUint32(result, value, true);
5498
- return envObject.getReturnStatus();
6020
+ return _emnapi_create_function(env, utf8name, length, cb, data, result);
5499
6021
  }
5500
6022
  catch (err) {
5501
6023
  envObject.tryCatch.setError(err);
@@ -5510,11 +6032,14 @@ function createNapiModule(options) {
5510
6032
  if (!cbinfo)
5511
6033
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5512
6034
  var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
6035
+ argc >>>= 0;
6036
+ argv >>>= 0;
5513
6037
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5514
6038
  if (argv) {
5515
6039
  if (!argc)
5516
6040
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5517
6041
  var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
6042
+ argcValue >>>= 0;
5518
6043
  var len = cbinfoValue.args.length;
5519
6044
  var arrlen = argcValue < len ? argcValue : len;
5520
6045
  var i = 0;
@@ -5533,11 +6058,13 @@ function createNapiModule(options) {
5533
6058
  HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
5534
6059
  }
5535
6060
  if (this_arg) {
6061
+ this_arg >>>= 0;
5536
6062
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5537
6063
  var v = envObject.ensureHandleId(cbinfoValue.thiz);
5538
6064
  HEAP_DATA_VIEW.setUint32(this_arg, v, true);
5539
6065
  }
5540
6066
  if (data) {
6067
+ data >>>= 0;
5541
6068
  HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
5542
6069
  }
5543
6070
  return envObject.clearLastError();
@@ -5560,6 +6087,9 @@ function createNapiModule(options) {
5560
6087
  try {
5561
6088
  if (!recv)
5562
6089
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6090
+ argc >>>= 0;
6091
+ argv >>>= 0;
6092
+ result >>>= 0;
5563
6093
  argc = argc >>> 0;
5564
6094
  if (argc > 0) {
5565
6095
  if (!argv)
@@ -5607,6 +6137,9 @@ function createNapiModule(options) {
5607
6137
  try {
5608
6138
  if (!constructor)
5609
6139
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6140
+ argc >>>= 0;
6141
+ argv >>>= 0;
6142
+ result >>>= 0;
5610
6143
  argc = argc >>> 0;
5611
6144
  if (argc > 0) {
5612
6145
  if (!argv)
@@ -5659,8 +6192,10 @@ function createNapiModule(options) {
5659
6192
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5660
6193
  if (!result)
5661
6194
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6195
+ result >>>= 0;
5662
6196
  var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
5663
6197
  var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
6198
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unused-vars
5664
6199
  var value = thiz == null || thiz.constructor == null
5665
6200
  ? 0
5666
6201
  : thiz instanceof fn
@@ -5672,6 +6207,7 @@ function createNapiModule(options) {
5672
6207
  }
5673
6208
  var functionMod = /*#__PURE__*/ Object.freeze({
5674
6209
  __proto__: null,
6210
+ _emnapi_create_function: _emnapi_create_function,
5675
6211
  napi_call_function: napi_call_function,
5676
6212
  napi_create_function: napi_create_function,
5677
6213
  napi_get_cb_info: napi_get_cb_info,
@@ -5689,6 +6225,7 @@ function createNapiModule(options) {
5689
6225
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5690
6226
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5691
6227
  var scope = emnapiCtx.openScope(envObject);
6228
+ result >>>= 0;
5692
6229
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5693
6230
  HEAP_DATA_VIEW.setUint32(result, scope.id, true);
5694
6231
  return envObject.clearLastError();
@@ -5719,6 +6256,7 @@ function createNapiModule(options) {
5719
6256
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5720
6257
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5721
6258
  var scope = emnapiCtx.openScope(envObject);
6259
+ result >>>= 0;
5722
6260
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5723
6261
  HEAP_DATA_VIEW.setUint32(result, scope.id, true);
5724
6262
  return envObject.clearLastError();
@@ -5753,6 +6291,8 @@ function createNapiModule(options) {
5753
6291
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
5754
6292
  var scopeObject = emnapiCtx.scopeStore.get(scope);
5755
6293
  if (!scopeObject.escapeCalled()) {
6294
+ escapee >>>= 0;
6295
+ result >>>= 0;
5756
6296
  var newHandle = scopeObject.escape(escapee);
5757
6297
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5758
6298
  var value = newHandle ? newHandle.id : 0;
@@ -5781,6 +6321,7 @@ function createNapiModule(options) {
5781
6321
  }
5782
6322
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5783
6323
  var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1 /* ReferenceOwnership.kUserland */);
6324
+ result >>>= 0;
5784
6325
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5785
6326
  HEAP_DATA_VIEW.setUint32(result, ref.id, true);
5786
6327
  return envObject.clearLastError();
@@ -5807,6 +6348,7 @@ function createNapiModule(options) {
5807
6348
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5808
6349
  var count = emnapiCtx.refStore.get(ref).ref();
5809
6350
  if (result) {
6351
+ result >>>= 0;
5810
6352
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5811
6353
  HEAP_DATA_VIEW.setUint32(result, count, true);
5812
6354
  }
@@ -5829,6 +6371,7 @@ function createNapiModule(options) {
5829
6371
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5830
6372
  var count = reference.unref();
5831
6373
  if (result) {
6374
+ result >>>= 0;
5832
6375
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5833
6376
  HEAP_DATA_VIEW.setUint32(result, count, true);
5834
6377
  }
@@ -5848,6 +6391,7 @@ function createNapiModule(options) {
5848
6391
  var reference = emnapiCtx.refStore.get(ref);
5849
6392
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5850
6393
  var handleId = reference.get(envObject);
6394
+ result >>>= 0;
5851
6395
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5852
6396
  HEAP_DATA_VIEW.setUint32(result, handleId, true);
5853
6397
  return envObject.clearLastError();
@@ -5859,6 +6403,8 @@ function createNapiModule(options) {
5859
6403
  var envObject = emnapiCtx.envStore.get(env);
5860
6404
  if (!fun)
5861
6405
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6406
+ fun >>>= 0;
6407
+ arg >>>= 0;
5862
6408
  emnapiCtx.addCleanupHook(envObject, fun, arg);
5863
6409
  return 0 /* napi_status.napi_ok */;
5864
6410
  }
@@ -5869,6 +6415,8 @@ function createNapiModule(options) {
5869
6415
  var envObject = emnapiCtx.envStore.get(env);
5870
6416
  if (!fun)
5871
6417
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6418
+ fun >>>= 0;
6419
+ arg >>>= 0;
5872
6420
  emnapiCtx.removeCleanupHook(envObject, fun, arg);
5873
6421
  return 0 /* napi_status.napi_ok */;
5874
6422
  }
@@ -5935,8 +6483,10 @@ function createNapiModule(options) {
5935
6483
  var p = new Promise(function (resolve, reject) {
5936
6484
  var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
5937
6485
  deferredObjectId = deferredObject.id;
6486
+ deferred >>>= 0;
5938
6487
  HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
5939
6488
  });
6489
+ promise >>>= 0;
5940
6490
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5941
6491
  value = emnapiCtx.addToCurrentScope(p).id;
5942
6492
  HEAP_DATA_VIEW.setUint32(promise, value, true);
@@ -6011,6 +6561,7 @@ function createNapiModule(options) {
6011
6561
  if (!is_promise)
6012
6562
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6013
6563
  var h = emnapiCtx.handleStore.get(value);
6564
+ is_promise >>>= 0;
6014
6565
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6015
6566
  var r = h.isPromise() ? 1 : 0;
6016
6567
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -6158,6 +6709,7 @@ function createNapiModule(options) {
6158
6709
  }
6159
6710
  }
6160
6711
  }
6712
+ result >>>= 0;
6161
6713
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6162
6714
  value = emnapiCtx.addToCurrentScope(ret).id;
6163
6715
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -6236,6 +6788,7 @@ function createNapiModule(options) {
6236
6788
  catch (_) {
6237
6789
  return envObject.setLastError(2 /* napi_status.napi_object_expected */);
6238
6790
  }
6791
+ result >>>= 0;
6239
6792
  r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
6240
6793
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6241
6794
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6278,6 +6831,7 @@ function createNapiModule(options) {
6278
6831
  catch (_) {
6279
6832
  return envObject.setLastError(2 /* napi_status.napi_object_expected */);
6280
6833
  }
6834
+ result >>>= 0;
6281
6835
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6282
6836
  value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
6283
6837
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -6325,6 +6879,7 @@ function createNapiModule(options) {
6325
6879
  }
6326
6880
  }
6327
6881
  if (result) {
6882
+ result >>>= 0;
6328
6883
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6329
6884
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
6330
6885
  }
@@ -6372,6 +6927,7 @@ function createNapiModule(options) {
6372
6927
  return envObject.setLastError(4 /* napi_status.napi_name_expected */);
6373
6928
  }
6374
6929
  r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
6930
+ result >>>= 0;
6375
6931
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6376
6932
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
6377
6933
  return envObject.getReturnStatus();
@@ -6405,6 +6961,7 @@ function createNapiModule(options) {
6405
6961
  if (!cname) {
6406
6962
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6407
6963
  }
6964
+ cname >>>= 0;
6408
6965
  emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
6409
6966
  return envObject.getReturnStatus();
6410
6967
  }
@@ -6446,6 +7003,8 @@ function createNapiModule(options) {
6446
7003
  catch (_) {
6447
7004
  return envObject.setLastError(2 /* napi_status.napi_object_expected */);
6448
7005
  }
7006
+ utf8name >>>= 0;
7007
+ result >>>= 0;
6449
7008
  r = emnapiString.UTF8ToString(utf8name, -1) in v;
6450
7009
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6451
7010
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
@@ -6489,6 +7048,8 @@ function createNapiModule(options) {
6489
7048
  catch (_) {
6490
7049
  return envObject.setLastError(2 /* napi_status.napi_object_expected */);
6491
7050
  }
7051
+ utf8name >>>= 0;
7052
+ result >>>= 0;
6492
7053
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6493
7054
  value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
6494
7055
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -6559,6 +7120,7 @@ function createNapiModule(options) {
6559
7120
  catch (_) {
6560
7121
  return envObject.setLastError(2 /* napi_status.napi_object_expected */);
6561
7122
  }
7123
+ result >>>= 0;
6562
7124
  r = ((index >>> 0) in v) ? 1 : 0;
6563
7125
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6564
7126
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6599,6 +7161,7 @@ function createNapiModule(options) {
6599
7161
  catch (_) {
6600
7162
  return envObject.setLastError(2 /* napi_status.napi_object_expected */);
6601
7163
  }
7164
+ result >>>= 0;
6602
7165
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6603
7166
  value = envObject.ensureHandleId(v[index >>> 0]);
6604
7167
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -6643,6 +7206,7 @@ function createNapiModule(options) {
6643
7206
  }
6644
7207
  }
6645
7208
  if (result) {
7209
+ result >>>= 0;
6646
7210
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6647
7211
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
6648
7212
  }
@@ -6668,6 +7232,8 @@ function createNapiModule(options) {
6668
7232
  return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
6669
7233
  envObject.clearLastError();
6670
7234
  try {
7235
+ properties >>>= 0;
7236
+ property_count >>>= 0;
6671
7237
  property_count = property_count >>> 0;
6672
7238
  if (property_count > 0) {
6673
7239
  if (!properties)
@@ -6692,6 +7258,7 @@ function createNapiModule(options) {
6692
7258
  var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
6693
7259
  var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
6694
7260
  attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
7261
+ attributes >>>= 0;
6695
7262
  var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
6696
7263
  if (utf8Name) {
6697
7264
  propertyName = emnapiString.UTF8ToString(utf8Name, -1);
@@ -6816,6 +7383,7 @@ function createNapiModule(options) {
6816
7383
  }
6817
7384
  var g = emnapiCtx.handleStore.get(5 /* GlobalHandle.GLOBAL */).value;
6818
7385
  var ret = g.eval(v8Script.value);
7386
+ result >>>= 0;
6819
7387
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6820
7388
  value = envObject.ensureHandleId(ret);
6821
7389
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -6844,6 +7412,7 @@ function createNapiModule(options) {
6844
7412
  if (!result)
6845
7413
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6846
7414
  var v = emnapiCtx.handleStore.get(value);
7415
+ result >>>= 0;
6847
7416
  var r;
6848
7417
  if (v.isNumber()) {
6849
7418
  r = 3 /* napi_valuetype.napi_number */;
@@ -6908,6 +7477,7 @@ function createNapiModule(options) {
6908
7477
  if (!result)
6909
7478
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
6910
7479
  var handle = emnapiCtx.handleStore.get(value);
7480
+ result >>>= 0;
6911
7481
  v = handle.value ? 4 /* GlobalHandle.TRUE */ : 3 /* GlobalHandle.FALSE */;
6912
7482
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6913
7483
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -6941,6 +7511,7 @@ function createNapiModule(options) {
6941
7511
  if (handle.isBigInt()) {
6942
7512
  throw new TypeError('Cannot convert a BigInt value to a number');
6943
7513
  }
7514
+ result >>>= 0;
6944
7515
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6945
7516
  v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
6946
7517
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -6975,6 +7546,7 @@ function createNapiModule(options) {
6975
7546
  if (handle.value == null) {
6976
7547
  throw new TypeError('Cannot convert undefined or null to object');
6977
7548
  }
7549
+ result >>>= 0;
6978
7550
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6979
7551
  v = envObject.ensureHandleId(Object(handle.value));
6980
7552
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7009,6 +7581,7 @@ function createNapiModule(options) {
7009
7581
  if (handle.isSymbol()) {
7010
7582
  throw new TypeError('Cannot convert a Symbol value to a string');
7011
7583
  }
7584
+ result >>>= 0;
7012
7585
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7013
7586
  v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
7014
7587
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7041,6 +7614,7 @@ function createNapiModule(options) {
7041
7614
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7042
7615
  if (!constructor)
7043
7616
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7617
+ result >>>= 0;
7044
7618
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
7045
7619
  HEAP_DATA_VIEW.setInt8(result, 0, true);
7046
7620
  var ctor = emnapiCtx.handleStore.get(constructor);
@@ -7070,6 +7644,7 @@ function createNapiModule(options) {
7070
7644
  if (!result)
7071
7645
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7072
7646
  var h = emnapiCtx.handleStore.get(value);
7647
+ result >>>= 0;
7073
7648
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7074
7649
  var r = h.isArray() ? 1 : 0;
7075
7650
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7088,6 +7663,7 @@ function createNapiModule(options) {
7088
7663
  if (!result)
7089
7664
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7090
7665
  var h = emnapiCtx.handleStore.get(value);
7666
+ result >>>= 0;
7091
7667
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7092
7668
  var r = h.isArrayBuffer() ? 1 : 0;
7093
7669
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7106,6 +7682,7 @@ function createNapiModule(options) {
7106
7682
  if (!result)
7107
7683
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7108
7684
  var h = emnapiCtx.handleStore.get(value);
7685
+ result >>>= 0;
7109
7686
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7110
7687
  var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
7111
7688
  (Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
@@ -7127,6 +7704,7 @@ function createNapiModule(options) {
7127
7704
  if (!result)
7128
7705
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7129
7706
  var h = emnapiCtx.handleStore.get(value);
7707
+ result >>>= 0;
7130
7708
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7131
7709
  var r = h.isDate() ? 1 : 0;
7132
7710
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7145,6 +7723,7 @@ function createNapiModule(options) {
7145
7723
  if (!result)
7146
7724
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7147
7725
  var val = emnapiCtx.handleStore.get(value).value;
7726
+ result >>>= 0;
7148
7727
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7149
7728
  var r = (val instanceof Error) ? 1 : 0;
7150
7729
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7163,6 +7742,7 @@ function createNapiModule(options) {
7163
7742
  if (!result)
7164
7743
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7165
7744
  var h = emnapiCtx.handleStore.get(value);
7745
+ result >>>= 0;
7166
7746
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7167
7747
  var r = h.isTypedArray() ? 1 : 0;
7168
7748
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7181,6 +7761,7 @@ function createNapiModule(options) {
7181
7761
  if (!result)
7182
7762
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7183
7763
  var h = emnapiCtx.handleStore.get(value);
7764
+ result >>>= 0;
7184
7765
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7185
7766
  var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
7186
7767
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7199,6 +7780,7 @@ function createNapiModule(options) {
7199
7780
  if (!result)
7200
7781
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7201
7782
  var h = emnapiCtx.handleStore.get(value);
7783
+ result >>>= 0;
7202
7784
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7203
7785
  var r = h.isDataView() ? 1 : 0;
7204
7786
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -7228,6 +7810,7 @@ function createNapiModule(options) {
7228
7810
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7229
7811
  var lv = emnapiCtx.handleStore.get(lhs).value;
7230
7812
  var rv = emnapiCtx.handleStore.get(rhs).value;
7813
+ result >>>= 0;
7231
7814
  r = (lv === rv) ? 1 : 0;
7232
7815
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
7233
7816
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -7282,6 +7865,7 @@ function createNapiModule(options) {
7282
7865
  if (!result)
7283
7866
  return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
7284
7867
  var h = emnapiCtx.handleStore.get(arraybuffer);
7868
+ result >>>= 0;
7285
7869
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
7286
7870
  if (h.isArrayBuffer() && h.value.byteLength === 0) {
7287
7871
  try {
@@ -7613,12 +8197,7 @@ var MessageHandler = /*#__PURE__*/ (function (_super) {
7613
8197
  try {
7614
8198
  if (type === 'async-worker-init') {
7615
8199
  this.handleAfterLoad(e, function () {
7616
- _this.napiModule.initWorker(payload_1.arg);
7617
- });
7618
- }
7619
- else if (type === 'async-work-execute') {
7620
- this.handleAfterLoad(e, function () {
7621
- _this.napiModule.executeAsyncWork(payload_1.work);
8200
+ _this.napiModule.initWorker(payload_1.arg, payload_1.func);
7622
8201
  });
7623
8202
  }
7624
8203
  }
@@ -7644,6 +8223,6 @@ var MessageHandler = /*#__PURE__*/ (function (_super) {
7644
8223
  // }
7645
8224
  // }
7646
8225
 
7647
- var version = "1.8.1";
8226
+ var version = "1.10.0";
7648
8227
 
7649
8228
  export { MessageHandler, createNapiModule, instantiateNapiModule, instantiateNapiModuleSync, loadNapiModule, loadNapiModuleSync, version };