@tailwindcss/oxide-wasm32-wasi 0.0.0-insiders.effcd27 → 0.0.0-insiders.f036f80

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 +1043 -353
  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 +1096 -358
  7. package/node_modules/@emnapi/core/dist/emnapi-core.js +1113 -378
  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 +1043 -353
  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 +11 -3
  15. package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -1
  16. package/node_modules/@emnapi/runtime/dist/emnapi.d.mts +11 -3
  17. package/node_modules/@emnapi/runtime/dist/emnapi.d.ts +11 -3
  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 +11 -3
  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 +9665 -5416
  41. package/node_modules/@napi-rs/wasm-runtime/fs-proxy.js +47 -12
  42. package/node_modules/@napi-rs/wasm-runtime/package.json +18 -11
  43. package/package.json +6 -6
  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
@@ -108,7 +108,6 @@ function createNapiModule(options) {
108
108
  filename: '',
109
109
  childThread: ENVIRONMENT_IS_PTHREAD,
110
110
  initWorker: undefined,
111
- executeAsyncWork: undefined,
112
111
  waitThreadStart: waitThreadStart,
113
112
  PThread: undefined,
114
113
  init: function (options) {
@@ -120,10 +119,10 @@ function createNapiModule(options) {
120
119
  if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
121
120
  throw new TypeError('Invalid wasm instance');
122
121
  wasmInstance = instance;
123
- var exports = instance.exports;
122
+ var exports$1 = instance.exports;
124
123
  var module = options.module;
125
- var memory = options.memory || exports.memory;
126
- var table = options.table || exports.__indirect_function_table;
124
+ var memory = options.memory || exports$1.memory;
125
+ var table = options.table || exports$1.__indirect_function_table;
127
126
  if (!(module instanceof _WebAssembly.Module))
128
127
  throw new TypeError('Invalid wasm module');
129
128
  if (!(memory instanceof _WebAssembly.Memory))
@@ -132,12 +131,12 @@ function createNapiModule(options) {
132
131
  throw new TypeError('Invalid wasm table');
133
132
  wasmMemory = memory;
134
133
  wasmTable = table;
135
- if (typeof exports.malloc !== 'function')
134
+ if (typeof exports$1.malloc !== 'function')
136
135
  throw new TypeError('malloc is not exported');
137
- if (typeof exports.free !== 'function')
136
+ if (typeof exports$1.free !== 'function')
138
137
  throw new TypeError('free is not exported');
139
- _malloc = exports.malloc;
140
- _free = exports.free;
138
+ _malloc = exports$1.malloc;
139
+ _free = exports$1.free;
141
140
  if (!napiModule.childThread) {
142
141
  var moduleApiVersion = 8;
143
142
  var node_api_module_get_api_version_v1 = instance.exports.node_api_module_get_api_version_v1;
@@ -148,11 +147,11 @@ function createNapiModule(options) {
148
147
  var scope_1 = emnapiCtx.openScope(envObject);
149
148
  try {
150
149
  envObject.callIntoModule(function (_envObject) {
151
- var exports = napiModule.exports;
152
- var exportsHandle = scope_1.add(exports);
150
+ var exports$1 = napiModule.exports;
151
+ var exportsHandle = scope_1.add(exports$1);
153
152
  var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
154
153
  var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
155
- napiModule.exports = (!napiValue) ? exports : emnapiCtx.handleStore.get(napiValue).value;
154
+ napiModule.exports = (!napiValue) ? exports$1 : emnapiCtx.handleStore.get(napiValue).value;
156
155
  });
157
156
  }
158
157
  catch (e) {
@@ -296,6 +295,9 @@ function createNapiModule(options) {
296
295
  return envObject.clearLastError();
297
296
  }
298
297
  function _emnapi_get_node_version(major, minor, patch) {
298
+ major >>>= 0;
299
+ minor >>>= 0;
300
+ patch >>>= 0;
299
301
  var versions = (typeof process === 'object' && process !== null &&
300
302
  typeof process.versions === 'object' && process.versions !== null &&
301
303
  typeof process.versions.node === 'string')
@@ -339,6 +341,7 @@ function createNapiModule(options) {
339
341
  }
340
342
  function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
341
343
  var envObject = emnapiCtx.envStore.get(env);
344
+ callback >>>= 0;
342
345
  envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
343
346
  }
344
347
  function _emnapi_ctx_increase_waiting_request_counter() {
@@ -403,9 +406,19 @@ function createNapiModule(options) {
403
406
  var worker = PThread.pthreads[tid];
404
407
  return worker;
405
408
  }
409
+ function _emnapi_worker_ref(pthreadPtr) {
410
+ if (ENVIRONMENT_IS_PTHREAD)
411
+ return;
412
+ pthreadPtr >>>= 0;
413
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
414
+ if (worker && typeof worker.ref === 'function') {
415
+ worker.ref();
416
+ }
417
+ }
406
418
  function _emnapi_worker_unref(pthreadPtr) {
407
419
  if (ENVIRONMENT_IS_PTHREAD)
408
420
  return;
421
+ pthreadPtr >>>= 0;
409
422
  var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
410
423
  if (worker && typeof worker.unref === 'function') {
411
424
  worker.unref();
@@ -506,6 +519,7 @@ function createNapiModule(options) {
506
519
  _emnapi_async_send_js: _emnapi_async_send_js,
507
520
  _emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
508
521
  _emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
522
+ _emnapi_worker_ref: _emnapi_worker_ref,
509
523
  _emnapi_worker_unref: _emnapi_worker_unref
510
524
  });
511
525
  function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
@@ -514,22 +528,14 @@ function createNapiModule(options) {
514
528
  var envObject = emnapiCtx.envStore.get(env);
515
529
  if (!adjusted_value)
516
530
  return envObject.setLastError(1);
517
- var change_in_bytes_number = Number(change_in_bytes);
518
- if (change_in_bytes_number < 0) {
519
- return envObject.setLastError(1);
520
- }
521
- var old_size = wasmMemory.buffer.byteLength;
522
- var new_size = old_size + change_in_bytes_number;
523
- new_size = new_size + ((65536 - new_size % 65536) % 65536);
524
- if (wasmMemory.grow((new_size - old_size + 65535) >> 16) === -1) {
525
- return envObject.setLastError(9);
526
- }
531
+ var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
532
+ adjusted_value >>>= 0;
527
533
  if (emnapiCtx.feature.supportBigInt) {
528
534
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
529
- HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(wasmMemory.buffer.byteLength), true);
535
+ HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
530
536
  }
531
537
  else {
532
- $emnapiSetValueI64(adjusted_value, wasmMemory.buffer.byteLength);
538
+ $emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
533
539
  }
534
540
  return envObject.clearLastError();
535
541
  }
@@ -687,6 +693,7 @@ function createNapiModule(options) {
687
693
  var asyncId = asyncContext.asyncId;
688
694
  var triggerAsyncId = asyncContext.triggerAsyncId;
689
695
  if (result) {
696
+ result >>>= 0;
690
697
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
691
698
  HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
692
699
  HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
@@ -707,6 +714,8 @@ function createNapiModule(options) {
707
714
  return;
708
715
  var resource = emnapiCtx.handleStore.get(async_resource).value;
709
716
  var callback = emnapiCtx.handleStore.get(cb).value;
717
+ argv >>>= 0;
718
+ size >>>= 0;
710
719
  size = size >>> 0;
711
720
  var arr = Array(size);
712
721
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -719,6 +728,7 @@ function createNapiModule(options) {
719
728
  triggerAsyncId: trigger_async_id
720
729
  });
721
730
  if (result) {
731
+ result >>>= 0;
722
732
  var envObject = emnapiCtx.envStore.get(env);
723
733
  v = envObject.ensureHandleId(ret);
724
734
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -745,6 +755,7 @@ function createNapiModule(options) {
745
755
  }
746
756
  var low = Number(numberValue & BigInt(0xffffffff));
747
757
  var high = Number(numberValue >> BigInt(32));
758
+ result >>>= 0;
748
759
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
749
760
  HEAP_DATA_VIEW.setInt32(result, low, true);
750
761
  HEAP_DATA_VIEW.setInt32(result + 4, high, true);
@@ -754,6 +765,7 @@ function createNapiModule(options) {
754
765
  if (!emnapiNodeBinding) {
755
766
  return 9;
756
767
  }
768
+ async_context >>>= 0;
757
769
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
758
770
  var low = HEAP_DATA_VIEW.getInt32(async_context, true);
759
771
  var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
@@ -796,10 +808,13 @@ function createNapiModule(options) {
796
808
  if (typeof v8func !== 'function') {
797
809
  return envObject.setLastError(1);
798
810
  }
811
+ async_context >>>= 0;
799
812
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
800
813
  var low = HEAP_DATA_VIEW.getInt32(async_context, true);
801
814
  var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
802
815
  var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
816
+ argv >>>= 0;
817
+ argc >>>= 0;
803
818
  argc = argc >>> 0;
804
819
  var arr = Array(argc);
805
820
  for (; i < argc; i++) {
@@ -813,6 +828,7 @@ function createNapiModule(options) {
813
828
  if (ret.status !== 0)
814
829
  return envObject.setLastError(ret.status);
815
830
  if (result) {
831
+ result >>>= 0;
816
832
  v = envObject.ensureHandleId(ret.value);
817
833
  HEAP_DATA_VIEW.setUint32(result, v, true);
818
834
  }
@@ -840,29 +856,58 @@ function createNapiModule(options) {
840
856
  napi_open_callback_scope: napi_open_callback_scope
841
857
  });
842
858
  var emnapiTSFN = {
859
+ _liveSet: {},
843
860
  offset: {
861
+ __size__: 0,
844
862
  resource: 0,
845
- async_id: 8,
846
- trigger_async_id: 16,
847
- queue_size: 24,
848
- queue: 1 * 4 + 24,
849
- thread_count: 2 * 4 + 24,
850
- is_closing: 3 * 4 + 24,
851
- dispatch_state: 3 * 4 + 28,
852
- context: 3 * 4 + 32,
853
- max_queue_size: 4 * 4 + 32,
854
- ref: 5 * 4 + 32,
855
- env: 6 * 4 + 32,
856
- finalize_data: 7 * 4 + 32,
857
- finalize_cb: 8 * 4 + 32,
858
- call_js_cb: 9 * 4 + 32,
859
- handles_closing: 10 * 4 + 32,
860
- async_ref: 10 * 4 + 36,
861
- mutex: 10 * 4 + 40,
862
- cond: 10 * 4 + 44,
863
- end: 10 * 4 + 48
863
+ async_id: 0,
864
+ trigger_async_id: 0,
865
+ queue_size: 0,
866
+ is_some: 0,
867
+ queue: 0,
868
+ async_pending: 0,
869
+ async_u_fd: 0,
870
+ thread_count: 0,
871
+ state: 0,
872
+ dispatch_state: 0,
873
+ context: 0,
874
+ max_queue_size: 0,
875
+ ref: 0,
876
+ env: 0,
877
+ finalize_data: 0,
878
+ finalize_cb: 0,
879
+ call_js_cb: 0,
880
+ handles_closing: 0,
881
+ async_ref: 0,
882
+ mutex: 0,
883
+ cond: 0
864
884
  },
865
885
  init: function () {
886
+ emnapiTSFN._liveSet = new Set();
887
+ emnapiTSFN.offset.__size__ = 184;
888
+ emnapiTSFN.offset.resource = 0;
889
+ emnapiTSFN.offset.async_id = 8;
890
+ emnapiTSFN.offset.trigger_async_id = 16;
891
+ emnapiTSFN.offset.queue_size = 60;
892
+ emnapiTSFN.offset.is_some = 24;
893
+ emnapiTSFN.offset.queue = 64;
894
+ emnapiTSFN.offset.async_pending = 132;
895
+ emnapiTSFN.offset.async_u_fd = 96;
896
+ emnapiTSFN.offset.thread_count = 136;
897
+ emnapiTSFN.offset.state = 140;
898
+ emnapiTSFN.offset.dispatch_state = 144;
899
+ emnapiTSFN.offset.context = 148;
900
+ emnapiTSFN.offset.max_queue_size = 152;
901
+ emnapiTSFN.offset.ref = 156;
902
+ emnapiTSFN.offset.env = 160;
903
+ emnapiTSFN.offset.finalize_data = 164;
904
+ emnapiTSFN.offset.finalize_cb = 168;
905
+ emnapiTSFN.offset.call_js_cb = 172;
906
+ emnapiTSFN.offset.handles_closing = 176;
907
+ emnapiTSFN.offset.async_ref = 180;
908
+ emnapiTSFN.offset.mutex = 32;
909
+ emnapiTSFN.offset.cond = 56;
910
+ emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
866
911
  if (typeof PThread !== 'undefined') {
867
912
  PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
868
913
  PThread.runningWorkers.forEach(emnapiTSFN.addListener);
@@ -886,7 +931,10 @@ function createNapiModule(options) {
886
931
  var type = __emnapi__.type;
887
932
  var payload = __emnapi__.payload;
888
933
  if (type === 'tsfn-send') {
889
- emnapiTSFN.dispatch(payload.tsfn);
934
+ var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
935
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
936
+ emnapiTSFN.enqueue(payload.tsfn);
937
+ }
890
938
  }
891
939
  }
892
940
  };
@@ -913,6 +961,7 @@ function createNapiModule(options) {
913
961
  var queue = _malloc(size);
914
962
  if (!queue)
915
963
  return false;
964
+ queue >>>= 0;
916
965
  new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
917
966
  emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
918
967
  return true;
@@ -920,6 +969,12 @@ function createNapiModule(options) {
920
969
  destroyQueue: function (func) {
921
970
  var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
922
971
  if (queue) {
972
+ var node = emnapiTSFN.loadSizeTypeValue(queue, false);
973
+ while (node !== 0) {
974
+ var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
975
+ _free(node);
976
+ node = next;
977
+ }
923
978
  _free(queue);
924
979
  }
925
980
  },
@@ -931,6 +986,7 @@ function createNapiModule(options) {
931
986
  var node = _malloc(size);
932
987
  if (!node)
933
988
  throw new Error('OOM');
989
+ node >>>= 0;
934
990
  emnapiTSFN.storeSizeTypeValue(node, data, false);
935
991
  emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
936
992
  if (head === 0 && tail === 0) {
@@ -966,11 +1022,11 @@ function createNapiModule(options) {
966
1022
  var waitCondition = function () {
967
1023
  var queueSize = emnapiTSFN.getQueueSize(func);
968
1024
  var maxSize = emnapiTSFN.getMaxQueueSize(func);
969
- var isClosing = emnapiTSFN.getIsClosing(func);
970
- return queueSize >= maxSize && maxSize > 0 && !isClosing;
1025
+ return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0;
971
1026
  };
972
1027
  var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
973
- return mutex.execute(function () {
1028
+ var shouldDelete = false;
1029
+ var ret = mutex.execute(function () {
974
1030
  while (waitCondition()) {
975
1031
  if (mode === 0) {
976
1032
  return 15;
@@ -980,21 +1036,25 @@ function createNapiModule(options) {
980
1036
  }
981
1037
  cond.wait();
982
1038
  }
983
- if (emnapiTSFN.getIsClosing(func)) {
984
- if (emnapiTSFN.getThreadCount(func) === 0) {
985
- return 1;
986
- }
987
- else {
988
- emnapiTSFN.subThreadCount(func);
989
- return 16;
990
- }
991
- }
992
- else {
1039
+ if (emnapiTSFN.getState(func) === 0) {
993
1040
  emnapiTSFN.pushQueue(func, data);
994
1041
  emnapiTSFN.send(func);
995
1042
  return 0;
996
1043
  }
1044
+ if (emnapiTSFN.getThreadCount(func) === 0) {
1045
+ return 1;
1046
+ }
1047
+ emnapiTSFN.subThreadCount(func);
1048
+ if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
1049
+ return 16;
1050
+ }
1051
+ shouldDelete = true;
1052
+ return 16;
997
1053
  });
1054
+ if (shouldDelete) {
1055
+ emnapiTSFN.destroy(func);
1056
+ }
1057
+ return ret;
998
1058
  },
999
1059
  getMutex: function (func) {
1000
1060
  var index = func + emnapiTSFN.offset.mutex;
@@ -1004,7 +1064,7 @@ function createNapiModule(options) {
1004
1064
  var i32a = new Int32Array(wasmMemory.buffer, index, 1);
1005
1065
  if (isBrowserMain) {
1006
1066
  while (true) {
1007
- var oldValue = Atomics.compareExchange(i32a, 0, 0, 1);
1067
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
1008
1068
  if (oldValue === 0) {
1009
1069
  return;
1010
1070
  }
@@ -1012,18 +1072,18 @@ function createNapiModule(options) {
1012
1072
  }
1013
1073
  else {
1014
1074
  while (true) {
1015
- var oldValue = Atomics.compareExchange(i32a, 0, 0, 1);
1075
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
1016
1076
  if (oldValue === 0) {
1017
1077
  return;
1018
1078
  }
1019
- Atomics.wait(i32a, 0, 1);
1079
+ Atomics.wait(i32a, 0, 10);
1020
1080
  }
1021
1081
  }
1022
1082
  },
1023
1083
  unlock: function () {
1024
1084
  var i32a = new Int32Array(wasmMemory.buffer, index, 1);
1025
- var oldValue = Atomics.compareExchange(i32a, 0, 1, 0);
1026
- if (oldValue !== 1) {
1085
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
1086
+ if (oldValue !== 10) {
1027
1087
  throw new Error('Tried to unlock while not holding the mutex');
1028
1088
  }
1029
1089
  Atomics.notify(i32a, 0, 1);
@@ -1066,14 +1126,14 @@ function createNapiModule(options) {
1066
1126
  var offset = emnapiTSFN.offset.queue_size;
1067
1127
  var arr, index;
1068
1128
  arr = new Uint32Array(wasmMemory.buffer);
1069
- index = (func + offset) >> 2;
1129
+ index = (func + offset) >>> 2;
1070
1130
  Atomics.add(arr, index, 1);
1071
1131
  },
1072
1132
  subQueueSize: function (func) {
1073
1133
  var offset = emnapiTSFN.offset.queue_size;
1074
1134
  var arr, index;
1075
1135
  arr = new Uint32Array(wasmMemory.buffer);
1076
- index = (func + offset) >> 2;
1136
+ index = (func + offset) >>> 2;
1077
1137
  Atomics.sub(arr, index, 1);
1078
1138
  },
1079
1139
  getThreadCount: function (func) {
@@ -1083,30 +1143,30 @@ function createNapiModule(options) {
1083
1143
  var offset = emnapiTSFN.offset.thread_count;
1084
1144
  var arr, index;
1085
1145
  arr = new Uint32Array(wasmMemory.buffer);
1086
- index = (func + offset) >> 2;
1146
+ index = (func + offset) >>> 2;
1087
1147
  Atomics.add(arr, index, 1);
1088
1148
  },
1089
1149
  subThreadCount: function (func) {
1090
1150
  var offset = emnapiTSFN.offset.thread_count;
1091
1151
  var arr, index;
1092
1152
  arr = new Uint32Array(wasmMemory.buffer);
1093
- index = (func + offset) >> 2;
1153
+ index = (func + offset) >>> 2;
1094
1154
  Atomics.sub(arr, index, 1);
1095
1155
  },
1096
- getIsClosing: function (func) {
1097
- return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.is_closing) >> 2);
1156
+ getState: function (func) {
1157
+ return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
1098
1158
  },
1099
- setIsClosing: function (func, value) {
1100
- Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.is_closing) >> 2, value);
1159
+ setState: function (func, value) {
1160
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
1101
1161
  },
1102
1162
  getHandlesClosing: function (func) {
1103
- return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing) >> 2);
1163
+ return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
1104
1164
  },
1105
1165
  setHandlesClosing: function (func, value) {
1106
- Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing) >> 2, value);
1166
+ Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
1107
1167
  },
1108
1168
  getDispatchState: function (func) {
1109
- return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >> 2);
1169
+ return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
1110
1170
  },
1111
1171
  getContext: function (func) {
1112
1172
  return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
@@ -1137,12 +1197,12 @@ function createNapiModule(options) {
1137
1197
  var arr;
1138
1198
  if (unsigned) {
1139
1199
  arr = new Uint32Array(wasmMemory.buffer);
1140
- ret = Atomics.load(arr, offset >> 2);
1200
+ ret = Atomics.load(arr, offset >>> 2);
1141
1201
  return ret;
1142
1202
  }
1143
1203
  else {
1144
1204
  arr = new Int32Array(wasmMemory.buffer);
1145
- ret = Atomics.load(arr, offset >> 2);
1205
+ ret = Atomics.load(arr, offset >>> 2);
1146
1206
  return ret;
1147
1207
  }
1148
1208
  },
@@ -1150,52 +1210,80 @@ function createNapiModule(options) {
1150
1210
  var arr;
1151
1211
  if (unsigned) {
1152
1212
  arr = new Uint32Array(wasmMemory.buffer);
1153
- Atomics.store(arr, offset >> 2, value);
1213
+ Atomics.store(arr, offset >>> 2, value);
1154
1214
  return undefined;
1155
1215
  }
1156
1216
  else {
1157
1217
  arr = new Int32Array(wasmMemory.buffer);
1158
- Atomics.store(arr, offset >> 2, value >>> 0);
1218
+ Atomics.store(arr, offset >>> 2, value >>> 0);
1159
1219
  return undefined;
1160
1220
  }
1161
1221
  },
1222
+ releaseResources: function (func) {
1223
+ if (emnapiTSFN.getState(func) !== 2) {
1224
+ emnapiTSFN.setState(func, 2);
1225
+ var env = emnapiTSFN.getEnv(func);
1226
+ var envObject = emnapiCtx.envStore.get(env);
1227
+ var ref = emnapiTSFN.getRef(func);
1228
+ if (ref) {
1229
+ emnapiCtx.refStore.get(ref).dispose();
1230
+ }
1231
+ var resource = emnapiTSFN.getResource(func);
1232
+ emnapiCtx.refStore.get(resource).dispose();
1233
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1234
+ HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
1235
+ emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
1236
+ envObject.unref();
1237
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
1238
+ var arr = new Uint32Array(wasmMemory.buffer);
1239
+ if (Atomics.load(arr, asyncRefOffset) > 0) {
1240
+ Atomics.store(arr, asyncRefOffset, 0);
1241
+ emnapiCtx.decreaseWaitingRequestCounter();
1242
+ }
1243
+ if (emnapiNodeBinding) {
1244
+ var view = new DataView(wasmMemory.buffer);
1245
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
1246
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
1247
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
1248
+ }
1249
+ }
1250
+ },
1162
1251
  destroy: function (func) {
1252
+ emnapiTSFN._liveSet.delete(func);
1163
1253
  emnapiTSFN.destroyQueue(func);
1164
- var env = emnapiTSFN.getEnv(func);
1165
- var envObject = emnapiCtx.envStore.get(env);
1166
- var ref = emnapiTSFN.getRef(func);
1167
- if (ref) {
1168
- emnapiCtx.refStore.get(ref).dispose();
1169
- }
1170
- emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
1171
- envObject.unref();
1172
- var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
1173
- var arr = new Int32Array(wasmMemory.buffer);
1174
- if (Atomics.load(arr, asyncRefOffset)) {
1175
- Atomics.store(arr, asyncRefOffset, 0);
1176
- emnapiCtx.decreaseWaitingRequestCounter();
1177
- }
1178
- var resource = emnapiTSFN.getResource(func);
1179
- emnapiCtx.refStore.get(resource).dispose();
1180
- if (emnapiNodeBinding) {
1181
- var view = new DataView(wasmMemory.buffer);
1182
- var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
1183
- var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
1184
- _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
1185
- }
1254
+ emnapiTSFN.releaseResources(func);
1186
1255
  _free(func);
1187
1256
  },
1188
- emptyQueueAndDelete: function (func) {
1257
+ emptyQueue: function (func) {
1258
+ var drainQueue = [];
1259
+ emnapiTSFN.getMutex(func).execute(function () {
1260
+ while (emnapiTSFN.getQueueSize(func) > 0) {
1261
+ drainQueue.push(emnapiTSFN.shiftQueue(func));
1262
+ }
1263
+ });
1189
1264
  var callJsCb = emnapiTSFN.getCallJSCb(func);
1190
1265
  var context = emnapiTSFN.getContext(func);
1191
1266
  var data;
1192
- while (emnapiTSFN.getQueueSize(func) > 0) {
1193
- data = emnapiTSFN.shiftQueue(func);
1267
+ for (var i = 0; i < drainQueue.length; i++) {
1268
+ data = drainQueue[i];
1194
1269
  if (callJsCb) {
1195
1270
  (wasmTable.get(callJsCb))(0, 0, context, data);
1196
1271
  }
1197
1272
  }
1198
- emnapiTSFN.destroy(func);
1273
+ },
1274
+ maybeDelete: function (func) {
1275
+ var shouldDelete = false;
1276
+ emnapiTSFN.getMutex(func).execute(function () {
1277
+ if (emnapiTSFN.getThreadCount(func) > 0) {
1278
+ emnapiTSFN.releaseResources(func);
1279
+ }
1280
+ else {
1281
+ shouldDelete = true;
1282
+ }
1283
+ });
1284
+ if (shouldDelete) {
1285
+ emnapiTSFN.destroy(func);
1286
+ }
1199
1287
  },
1200
1288
  finalize: function (func) {
1201
1289
  var env = emnapiTSFN.getEnv(func);
@@ -1208,6 +1296,7 @@ function createNapiModule(options) {
1208
1296
  envObject.callFinalizerInternal(0, finalize, data, context);
1209
1297
  };
1210
1298
  try {
1299
+ emnapiTSFN.emptyQueue(func);
1211
1300
  if (finalize) {
1212
1301
  if (emnapiNodeBinding) {
1213
1302
  var resource = emnapiTSFN.getResource(func);
@@ -1225,7 +1314,7 @@ function createNapiModule(options) {
1225
1314
  f();
1226
1315
  }
1227
1316
  }
1228
- emnapiTSFN.emptyQueueAndDelete(func);
1317
+ emnapiTSFN.maybeDelete(func);
1229
1318
  }
1230
1319
  finally {
1231
1320
  emnapiCtx.closeScope(envObject);
@@ -1241,7 +1330,7 @@ function createNapiModule(options) {
1241
1330
  try {
1242
1331
  if (set_closing) {
1243
1332
  emnapiTSFN.getMutex(func).execute(function () {
1244
- emnapiTSFN.setIsClosing(func, 1);
1333
+ emnapiTSFN.setState(func, 1);
1245
1334
  if (emnapiTSFN.getMaxQueueSize(func) > 0) {
1246
1335
  emnapiTSFN.getCond(func).signal();
1247
1336
  }
@@ -1251,6 +1340,7 @@ function createNapiModule(options) {
1251
1340
  return;
1252
1341
  }
1253
1342
  emnapiTSFN.setHandlesClosing(func, 1);
1343
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
1254
1344
  emnapiCtx.feature.setImmediate(function () {
1255
1345
  emnapiTSFN.finalize(func);
1256
1346
  });
@@ -1266,10 +1356,7 @@ function createNapiModule(options) {
1266
1356
  var mutex = emnapiTSFN.getMutex(func);
1267
1357
  var cond = emnapiTSFN.getCond(func);
1268
1358
  mutex.execute(function () {
1269
- if (emnapiTSFN.getIsClosing(func)) {
1270
- emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
1271
- }
1272
- else {
1359
+ if (emnapiTSFN.getState(func) === 0) {
1273
1360
  var size = emnapiTSFN.getQueueSize(func);
1274
1361
  if (size > 0) {
1275
1362
  data = emnapiTSFN.shiftQueue(func);
@@ -1282,7 +1369,7 @@ function createNapiModule(options) {
1282
1369
  }
1283
1370
  if (size === 0) {
1284
1371
  if (emnapiTSFN.getThreadCount(func) === 0) {
1285
- emnapiTSFN.setIsClosing(func, 1);
1372
+ emnapiTSFN.setState(func, 1);
1286
1373
  if (emnapiTSFN.getMaxQueueSize(func) > 0) {
1287
1374
  cond.signal();
1288
1375
  }
@@ -1293,6 +1380,9 @@ function createNapiModule(options) {
1293
1380
  has_more = true;
1294
1381
  }
1295
1382
  }
1383
+ else {
1384
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
1385
+ }
1296
1386
  });
1297
1387
  if (popped_value) {
1298
1388
  var env = emnapiTSFN.getEnv(func);
@@ -1340,7 +1430,7 @@ function createNapiModule(options) {
1340
1430
  var has_more = true;
1341
1431
  var iterations_left = 1000;
1342
1432
  var ui32a = new Uint32Array(wasmMemory.buffer);
1343
- var index = (func + emnapiTSFN.offset.dispatch_state) >> 2;
1433
+ var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
1344
1434
  while (has_more && --iterations_left !== 0) {
1345
1435
  Atomics.store(ui32a, index, 1);
1346
1436
  has_more = emnapiTSFN.dispatchOne(func);
@@ -1352,25 +1442,65 @@ function createNapiModule(options) {
1352
1442
  emnapiTSFN.send(func);
1353
1443
  }
1354
1444
  },
1355
- send: function (func) {
1356
- var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >> 2, 1 << 1);
1357
- if ((current_state & 1) === 1) {
1445
+ enqueue: function (func) {
1446
+ var pending = func + emnapiTSFN.offset.async_pending;
1447
+ var scheduled = func + emnapiTSFN.offset.async_u_fd;
1448
+ var i32a = new Int32Array(wasmMemory.buffer);
1449
+ if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
1358
1450
  return;
1359
1451
  }
1360
- if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
1361
- postMessage({
1362
- __emnapi__: {
1363
- type: 'tsfn-send',
1364
- payload: {
1365
- tsfn: func
1452
+ emnapiCtx.feature.setImmediate(function () {
1453
+ if (!emnapiTSFN._liveSet.has(func)) {
1454
+ return;
1455
+ }
1456
+ if (Atomics.load(i32a, pending >>> 2) === 0) {
1457
+ Atomics.store(i32a, scheduled >>> 2, 0);
1458
+ return;
1459
+ }
1460
+ emnapiCtx.feature.setImmediate(function () {
1461
+ try {
1462
+ if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
1463
+ return;
1464
+ }
1465
+ if (!emnapiTSFN._liveSet.has(func)) {
1466
+ return;
1467
+ }
1468
+ emnapiTSFN.dispatch(func);
1469
+ }
1470
+ finally {
1471
+ if (emnapiTSFN._liveSet.has(func)) {
1472
+ Atomics.store(i32a, scheduled >>> 2, 0);
1473
+ if (Atomics.load(i32a, pending >>> 2) !== 0) {
1474
+ emnapiTSFN.enqueue(func);
1475
+ }
1366
1476
  }
1367
1477
  }
1368
1478
  });
1479
+ });
1480
+ },
1481
+ send: function (func) {
1482
+ var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
1483
+ if ((current_state & 1) === 1) {
1484
+ return;
1369
1485
  }
1370
- else {
1371
- emnapiCtx.feature.setImmediate(function () {
1372
- emnapiTSFN.dispatch(func);
1373
- });
1486
+ var pendng = func + emnapiTSFN.offset.async_pending;
1487
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
1488
+ return;
1489
+ }
1490
+ if (Atomics.exchange(new Int32Array(wasmMemory.buffer), pendng >>> 2, 1) === 0) {
1491
+ if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
1492
+ postMessage({
1493
+ __emnapi__: {
1494
+ type: 'tsfn-send',
1495
+ payload: {
1496
+ tsfn: func
1497
+ }
1498
+ }
1499
+ });
1500
+ }
1501
+ else {
1502
+ emnapiTSFN.enqueue(func);
1503
+ }
1374
1504
  }
1375
1505
  }
1376
1506
  };
@@ -1381,6 +1511,13 @@ function createNapiModule(options) {
1381
1511
  envObject.checkGCAccess();
1382
1512
  if (!async_resource_name)
1383
1513
  return envObject.setLastError(1);
1514
+ max_queue_size >>>= 0;
1515
+ initial_thread_count >>>= 0;
1516
+ env >>>= 0;
1517
+ thread_finalize_data >>>= 0;
1518
+ thread_finalize_cb >>>= 0;
1519
+ context >>>= 0;
1520
+ call_js_cb >>>= 0;
1384
1521
  max_queue_size = max_queue_size >>> 0;
1385
1522
  initial_thread_count = initial_thread_count >>> 0;
1386
1523
  if (initial_thread_count === 0) {
@@ -1389,6 +1526,7 @@ function createNapiModule(options) {
1389
1526
  if (!result)
1390
1527
  return envObject.setLastError(1);
1391
1528
  var ref = 0;
1529
+ func >>>= 0;
1392
1530
  if (!func) {
1393
1531
  if (!call_js_cb)
1394
1532
  return envObject.setLastError(1);
@@ -1418,21 +1556,23 @@ function createNapiModule(options) {
1418
1556
  }
1419
1557
  asyncResourceName = String(asyncResourceName);
1420
1558
  var resource_name = envObject.ensureHandleId(asyncResourceName);
1421
- var sizeofTSFN = emnapiTSFN.offset.end;
1559
+ var sizeofTSFN = emnapiTSFN.offset.__size__;
1422
1560
  var tsfn = _malloc(sizeofTSFN);
1423
1561
  if (!tsfn)
1424
1562
  return envObject.setLastError(9);
1563
+ tsfn >>>= 0;
1425
1564
  new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
1426
1565
  var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1);
1427
1566
  var resource_ = resourceRef.id;
1428
1567
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1429
- HEAP_DATA_VIEW.setUint32(tsfn, resource_, true);
1568
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
1430
1569
  if (!emnapiTSFN.initQueue(tsfn)) {
1431
1570
  _free(tsfn);
1432
1571
  resourceRef.dispose();
1433
1572
  return envObject.setLastError(9);
1434
1573
  }
1435
1574
  _emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
1575
+ HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
1436
1576
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
1437
1577
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
1438
1578
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
@@ -1442,9 +1582,11 @@ function createNapiModule(options) {
1442
1582
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
1443
1583
  HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
1444
1584
  emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
1585
+ emnapiTSFN._liveSet.add(tsfn);
1445
1586
  envObject.ref();
1446
1587
  emnapiCtx.increaseWaitingRequestCounter();
1447
- HEAP_DATA_VIEW.setInt32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
1588
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
1589
+ result >>>= 0;
1448
1590
  HEAP_DATA_VIEW.setUint32(result, tsfn, true);
1449
1591
  return envObject.clearLastError();
1450
1592
  }
@@ -1453,6 +1595,8 @@ function createNapiModule(options) {
1453
1595
  abort();
1454
1596
  return 1;
1455
1597
  }
1598
+ func >>>= 0;
1599
+ result >>>= 0;
1456
1600
  var context = emnapiTSFN.getContext(func);
1457
1601
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1458
1602
  HEAP_DATA_VIEW.setUint32(result, context, true);
@@ -1463,6 +1607,8 @@ function createNapiModule(options) {
1463
1607
  abort();
1464
1608
  return 1;
1465
1609
  }
1610
+ func >>>= 0;
1611
+ data >>>= 0;
1466
1612
  return emnapiTSFN.push(func, data, mode);
1467
1613
  }
1468
1614
  function napi_acquire_threadsafe_function(func) {
@@ -1470,13 +1616,14 @@ function createNapiModule(options) {
1470
1616
  abort();
1471
1617
  return 1;
1472
1618
  }
1619
+ func >>>= 0;
1473
1620
  var mutex = emnapiTSFN.getMutex(func);
1474
1621
  return mutex.execute(function () {
1475
- if (emnapiTSFN.getIsClosing(func)) {
1476
- return 16;
1622
+ if (emnapiTSFN.getState(func) === 0) {
1623
+ emnapiTSFN.addThreadCount(func);
1624
+ return 0;
1477
1625
  }
1478
- emnapiTSFN.addThreadCount(func);
1479
- return 0;
1626
+ return 16;
1480
1627
  });
1481
1628
  }
1482
1629
  function napi_release_threadsafe_function(func, mode) {
@@ -1484,37 +1631,51 @@ function createNapiModule(options) {
1484
1631
  abort();
1485
1632
  return 1;
1486
1633
  }
1634
+ func >>>= 0;
1487
1635
  var mutex = emnapiTSFN.getMutex(func);
1488
1636
  var cond = emnapiTSFN.getCond(func);
1489
- return mutex.execute(function () {
1637
+ var shouldDelete = false;
1638
+ var ret = mutex.execute(function () {
1490
1639
  if (emnapiTSFN.getThreadCount(func) === 0) {
1491
1640
  return 1;
1492
1641
  }
1493
1642
  emnapiTSFN.subThreadCount(func);
1494
1643
  if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1) {
1495
- var isClosing = emnapiTSFN.getIsClosing(func);
1496
- if (!isClosing) {
1497
- var isClosingValue = (mode === 1) ? 1 : 0;
1498
- emnapiTSFN.setIsClosing(func, isClosingValue);
1499
- if (isClosingValue && emnapiTSFN.getMaxQueueSize(func) > 0) {
1644
+ if (emnapiTSFN.getState(func) === 0) {
1645
+ if (mode === 1) {
1646
+ emnapiTSFN.setState(func, 1);
1647
+ }
1648
+ if (emnapiTSFN.getState(func) === 1 && emnapiTSFN.getMaxQueueSize(func) > 0) {
1500
1649
  cond.signal();
1501
1650
  }
1502
1651
  emnapiTSFN.send(func);
1503
1652
  }
1504
1653
  }
1654
+ if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
1655
+ return 0;
1656
+ }
1657
+ shouldDelete = true;
1505
1658
  return 0;
1506
1659
  });
1660
+ if (shouldDelete) {
1661
+ emnapiTSFN.destroy(func);
1662
+ }
1663
+ return ret;
1507
1664
  }
1508
1665
  function napi_unref_threadsafe_function(env, func) {
1509
1666
  if (!func) {
1510
1667
  abort();
1511
1668
  return 1;
1512
1669
  }
1513
- var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
1514
- var arr = new Int32Array(wasmMemory.buffer);
1515
- if (Atomics.load(arr, asyncRefOffset)) {
1516
- Atomics.store(arr, asyncRefOffset, 0);
1517
- emnapiCtx.decreaseWaitingRequestCounter();
1670
+ func >>>= 0;
1671
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
1672
+ var arr = new Uint32Array(wasmMemory.buffer);
1673
+ var currentValue = Atomics.load(arr, asyncRefOffset);
1674
+ if (currentValue > 0) {
1675
+ Atomics.store(arr, asyncRefOffset, currentValue - 1);
1676
+ if (currentValue === 1) {
1677
+ emnapiCtx.decreaseWaitingRequestCounter();
1678
+ }
1518
1679
  }
1519
1680
  return 0;
1520
1681
  }
@@ -1523,34 +1684,57 @@ function createNapiModule(options) {
1523
1684
  abort();
1524
1685
  return 1;
1525
1686
  }
1526
- var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >> 2;
1527
- var arr = new Int32Array(wasmMemory.buffer);
1528
- if (!Atomics.load(arr, asyncRefOffset)) {
1529
- Atomics.store(arr, asyncRefOffset, 1);
1687
+ func >>>= 0;
1688
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
1689
+ var arr = new Uint32Array(wasmMemory.buffer);
1690
+ var currentValue = Atomics.load(arr, asyncRefOffset);
1691
+ if (!currentValue) {
1530
1692
  emnapiCtx.increaseWaitingRequestCounter();
1531
1693
  }
1694
+ Atomics.store(arr, asyncRefOffset, currentValue + 1);
1532
1695
  return 0;
1533
1696
  }
1534
1697
  var emnapiAWMT = {
1535
- unusedWorkers: [],
1536
- runningWorkers: [],
1537
- workQueue: [],
1698
+ pool: [],
1538
1699
  workerReady: null,
1700
+ globalAddress: 0,
1701
+ globalOffset: {
1702
+ idle_threads: 0,
1703
+ q: 1 * 4,
1704
+ next: 1 * 4,
1705
+ prev: 2 * 4,
1706
+ mutex: 3 * 4,
1707
+ cond: 4 * 4,
1708
+ exit_message: 5 * 4,
1709
+ end: 7 * 4
1710
+ },
1539
1711
  offset: {
1540
1712
  resource: 0,
1541
1713
  async_id: 8,
1542
1714
  trigger_async_id: 16,
1543
1715
  env: 24,
1544
- data: 1 * 4 + 24,
1545
- execute: 2 * 4 + 24,
1546
- complete: 3 * 4 + 24,
1547
- end: 4 * 4 + 24
1716
+ status: 1 * 4 + 24,
1717
+ queue: 2 * 4 + 24,
1718
+ queue_next: 2 * 4 + 24,
1719
+ queue_prev: 3 * 4 + 24,
1720
+ data: 4 * 4 + 24,
1721
+ execute: 5 * 4 + 24,
1722
+ complete: 6 * 4 + 24,
1723
+ end: 7 * 4 + 24
1548
1724
  },
1549
1725
  init: function () {
1550
- emnapiAWMT.unusedWorkers = [];
1551
- emnapiAWMT.runningWorkers = [];
1552
- emnapiAWMT.workQueue = [];
1726
+ emnapiAWMT.pool = [];
1553
1727
  emnapiAWMT.workerReady = null;
1728
+ if (typeof PThread !== 'undefined') {
1729
+ PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
1730
+ PThread.runningWorkers.forEach(emnapiAWMT.addListener);
1731
+ var __original_getNewWorker_1 = PThread.getNewWorker;
1732
+ PThread.getNewWorker = function () {
1733
+ var r = __original_getNewWorker_1.apply(this, arguments);
1734
+ emnapiAWMT.addListener(r);
1735
+ return r;
1736
+ };
1737
+ }
1554
1738
  },
1555
1739
  addListener: function (worker) {
1556
1740
  if (!worker)
@@ -1564,18 +1748,8 @@ function createNapiModule(options) {
1564
1748
  var type = __emnapi__.type;
1565
1749
  var payload = __emnapi__.payload;
1566
1750
  if (type === 'async-work-complete') {
1567
- emnapiCtx.decreaseWaitingRequestCounter();
1568
- emnapiAWMT.runningWorkers.splice(emnapiAWMT.runningWorkers.indexOf(worker), 1);
1569
- emnapiAWMT.unusedWorkers.push(worker);
1570
- emnapiAWMT.checkIdleWorker();
1571
1751
  emnapiAWMT.callComplete(payload.work, 0);
1572
1752
  }
1573
- else if (type === 'async-work-queue') {
1574
- emnapiAWMT.scheduleWork(payload.work);
1575
- }
1576
- else if (type === 'async-work-cancel') {
1577
- emnapiAWMT.cancelWork(payload.work);
1578
- }
1579
1753
  }
1580
1754
  };
1581
1755
  var dispose = function () {
@@ -1596,142 +1770,221 @@ function createNapiModule(options) {
1596
1770
  }
1597
1771
  return true;
1598
1772
  },
1773
+ initGlobal: function () {
1774
+ if (!emnapiAWMT.globalAddress) {
1775
+ emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
1776
+ emnapiAWMT.globalAddress >>>= 0;
1777
+ var size = emnapiAWMT.globalOffset.end;
1778
+ var addr = emnapiAWMT.globalAddress;
1779
+ new Uint8Array(wasmMemory.buffer, addr, size).fill(0);
1780
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
1781
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
1782
+ }
1783
+ },
1784
+ terminateWorkers: function () {
1785
+ emnapiAWMT.pool.forEach(function (w) {
1786
+ var _a, _b;
1787
+ (_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
1788
+ (_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
1789
+ w.terminate();
1790
+ });
1791
+ emnapiAWMT.pool.length = 0;
1792
+ },
1599
1793
  initWorkers: function (n) {
1600
1794
  if (ENVIRONMENT_IS_PTHREAD) {
1601
1795
  return emnapiAWMT.workerReady || (emnapiAWMT.workerReady = Promise.resolve());
1602
1796
  }
1603
1797
  if (emnapiAWMT.workerReady)
1604
1798
  return emnapiAWMT.workerReady;
1605
- if (typeof onCreateWorker !== 'function') {
1606
- throw new TypeError('`options.onCreateWorker` is not a function');
1607
- }
1608
- var promises = [];
1609
- var args = [];
1610
1799
  if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
1611
1800
  throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
1612
1801
  }
1802
+ var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
1803
+ var args = [];
1804
+ emnapiAWMT.initGlobal();
1613
1805
  for (var i = 0; i < n; ++i) {
1614
- args.push(wasmInstance.exports.emnapi_async_worker_create());
1806
+ args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
1615
1807
  }
1616
- try {
1617
- var _loop_1 = function (i) {
1618
- var worker = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
1619
- var p = PThread.loadWasmModuleToWorker(worker);
1620
- emnapiAWMT.addListener(worker);
1621
- promises.push(p.then(function () {
1622
- if (typeof worker.unref === 'function') {
1623
- worker.unref();
1624
- }
1625
- }));
1626
- emnapiAWMT.unusedWorkers.push(worker);
1627
- var arg = args[i];
1628
- worker.threadBlockBase = arg;
1629
- worker.postMessage({
1630
- __emnapi__: {
1631
- type: 'async-worker-init',
1632
- payload: { arg: arg }
1633
- }
1634
- });
1635
- };
1636
- for (var i = 0; i < n; ++i) {
1637
- _loop_1(i);
1808
+ var promises = args.map(function (index) {
1809
+ if (index === 0) {
1810
+ return Promise.reject(new Error('Failed to create async worker'));
1638
1811
  }
1639
- }
1640
- catch (err) {
1641
- for (var i = 0; i < n; ++i) {
1642
- var arg = args[i];
1643
- _free(arg);
1812
+ var worker;
1813
+ if (index < 0) {
1814
+ worker = emnapiAWMT.pool[-index - 1];
1815
+ if (worker)
1816
+ return worker.whenLoaded;
1644
1817
  }
1645
- throw err;
1646
- }
1818
+ index >>>= 0;
1819
+ var view = new DataView(wasmMemory.buffer);
1820
+ var tidOffset = 20;
1821
+ var tid = view.getInt32(index + tidOffset, true);
1822
+ worker = PThread.pthreads[tid];
1823
+ return worker.whenLoaded;
1824
+ });
1647
1825
  emnapiAWMT.workerReady = Promise.all(promises);
1648
1826
  return emnapiAWMT.workerReady;
1649
1827
  },
1650
- checkIdleWorker: function () {
1651
- if (emnapiAWMT.unusedWorkers.length > 0 && emnapiAWMT.workQueue.length > 0) {
1652
- var worker = emnapiAWMT.unusedWorkers.shift();
1653
- var work = emnapiAWMT.workQueue.shift();
1654
- emnapiAWMT.runningWorkers.push(worker);
1655
- worker.postMessage({
1656
- __emnapi__: {
1657
- type: 'async-work-execute',
1658
- payload: { work: work }
1659
- }
1660
- });
1661
- }
1662
- },
1663
1828
  getResource: function (work) {
1664
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.resource, false);
1829
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1830
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
1665
1831
  },
1666
1832
  getExecute: function (work) {
1667
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.execute, false);
1833
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1834
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
1668
1835
  },
1669
1836
  getComplete: function (work) {
1670
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.complete, false);
1837
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1838
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
1671
1839
  },
1672
1840
  getEnv: function (work) {
1673
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.env, false);
1841
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1842
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
1674
1843
  },
1675
1844
  getData: function (work) {
1676
- return emnapiTSFN.loadSizeTypeValue(work + emnapiAWMT.offset.data, false);
1845
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1846
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
1847
+ },
1848
+ getMutex: function () {
1849
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
1850
+ var mutex = {
1851
+ lock: function () {
1852
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
1853
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
1854
+ if (isBrowserMain) {
1855
+ while (true) {
1856
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
1857
+ if (oldValue === 0) {
1858
+ return;
1859
+ }
1860
+ }
1861
+ }
1862
+ else {
1863
+ while (true) {
1864
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
1865
+ if (oldValue === 0) {
1866
+ return;
1867
+ }
1868
+ Atomics.wait(i32a, 0, 10);
1869
+ }
1870
+ }
1871
+ },
1872
+ unlock: function () {
1873
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
1874
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
1875
+ if (oldValue !== 10) {
1876
+ throw new Error('Tried to unlock while not holding the mutex');
1877
+ }
1878
+ Atomics.notify(i32a, 0, 1);
1879
+ },
1880
+ execute: function (fn) {
1881
+ mutex.lock();
1882
+ try {
1883
+ return fn();
1884
+ }
1885
+ finally {
1886
+ mutex.unlock();
1887
+ }
1888
+ }
1889
+ };
1890
+ return mutex;
1891
+ },
1892
+ getCond: function () {
1893
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
1894
+ var mutex = emnapiAWMT.getMutex();
1895
+ var cond = {
1896
+ wait: function () {
1897
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
1898
+ var value = Atomics.load(i32a, 0);
1899
+ mutex.unlock();
1900
+ Atomics.wait(i32a, 0, value);
1901
+ mutex.lock();
1902
+ },
1903
+ signal: function () {
1904
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
1905
+ Atomics.add(i32a, 0, 1);
1906
+ Atomics.notify(i32a, 0, 1);
1907
+ }
1908
+ };
1909
+ return cond;
1910
+ },
1911
+ queueInit: function (q) {
1912
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1913
+ HEAP_DATA_VIEW.setUint32(q, q, true);
1914
+ HEAP_DATA_VIEW.setUint32(q + 4, q, true);
1915
+ },
1916
+ queueInsertTail: function (h, q) {
1917
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1918
+ HEAP_DATA_VIEW.setUint32(q, h, true);
1919
+ var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
1920
+ HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
1921
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
1922
+ HEAP_DATA_VIEW.setUint32(qprev, q, true);
1923
+ HEAP_DATA_VIEW.setUint32(h + 4, q, true);
1924
+ },
1925
+ queueRemove: function (q) {
1926
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1927
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
1928
+ var qnext = HEAP_DATA_VIEW.getUint32(q, true);
1929
+ HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
1930
+ HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
1931
+ },
1932
+ queueEmpty: function (q) {
1933
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1934
+ return q == HEAP_DATA_VIEW.getUint32(q, true);
1677
1935
  },
1678
1936
  scheduleWork: function (work) {
1679
1937
  var _a;
1680
- if (ENVIRONMENT_IS_PTHREAD) {
1681
- var postMessage_1 = napiModule.postMessage;
1682
- postMessage_1({
1683
- __emnapi__: {
1684
- type: 'async-work-queue',
1685
- payload: { work: work }
1686
- }
1938
+ if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
1939
+ emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
1940
+ emnapiAWMT.workerReady.ready = true;
1941
+ }).catch(function (err) {
1942
+ emnapiAWMT.workerReady = null;
1943
+ throw err;
1687
1944
  });
1688
- return;
1689
1945
  }
1690
1946
  emnapiCtx.increaseWaitingRequestCounter();
1691
- emnapiAWMT.workQueue.push(work);
1692
- if ((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready) {
1693
- emnapiAWMT.checkIdleWorker();
1947
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
1948
+ Atomics.store(statusBuffer, 0, 0);
1949
+ var mutex = emnapiAWMT.getMutex();
1950
+ var cond = emnapiAWMT.getCond();
1951
+ mutex.lock();
1952
+ try {
1953
+ emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
1694
1954
  }
1695
- else {
1696
- var fail = function (err) {
1697
- emnapiCtx.decreaseWaitingRequestCounter();
1698
- throw err;
1699
- };
1700
- try {
1701
- emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
1702
- emnapiAWMT.workerReady.ready = true;
1703
- emnapiAWMT.checkIdleWorker();
1704
- }, fail);
1705
- }
1706
- catch (err) {
1707
- fail(err);
1708
- }
1955
+ catch (err) {
1956
+ emnapiCtx.decreaseWaitingRequestCounter();
1957
+ mutex.unlock();
1958
+ throw err;
1959
+ }
1960
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1961
+ if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
1962
+ cond.signal();
1709
1963
  }
1964
+ mutex.unlock();
1710
1965
  },
1711
1966
  cancelWork: function (work) {
1712
- if (ENVIRONMENT_IS_PTHREAD) {
1713
- var postMessage_2 = napiModule.postMessage;
1714
- postMessage_2({
1715
- __emnapi__: {
1716
- type: 'async-work-cancel',
1717
- payload: { work: work }
1718
- }
1719
- });
1720
- return 0;
1967
+ var cancelled = false;
1968
+ emnapiAWMT.getMutex().execute(function () {
1969
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1970
+ cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2;
1971
+ if (cancelled) {
1972
+ emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
1973
+ }
1974
+ });
1975
+ if (!cancelled) {
1976
+ return 9;
1721
1977
  }
1722
- var index = emnapiAWMT.workQueue.indexOf(work);
1723
- if (index !== -1) {
1724
- emnapiAWMT.workQueue.splice(index, 1);
1725
- emnapiCtx.feature.setImmediate(function () {
1726
- emnapiCtx.decreaseWaitingRequestCounter();
1727
- emnapiAWMT.checkIdleWorker();
1728
- emnapiAWMT.callComplete(work, 11);
1729
- });
1730
- return 0;
1978
+ if (Atomics.compareExchange(new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1), 0, 0, 1) !== 0) {
1979
+ return 9;
1731
1980
  }
1732
- return 9;
1981
+ emnapiCtx.feature.setImmediate(function () {
1982
+ emnapiAWMT.callComplete(work, 11);
1983
+ });
1984
+ return 0;
1733
1985
  },
1734
1986
  callComplete: function (work, status) {
1987
+ emnapiCtx.decreaseWaitingRequestCounter();
1735
1988
  var complete = emnapiAWMT.getComplete(work);
1736
1989
  var env = emnapiAWMT.getEnv(work);
1737
1990
  var data = emnapiAWMT.getData(work);
@@ -1766,6 +2019,7 @@ function createNapiModule(options) {
1766
2019
  }
1767
2020
  }
1768
2021
  };
2022
+ emnapiAWMT.init();
1769
2023
  var napi_create_async_work = singleThreadAsyncWork
1770
2024
  ? function (env, resource, resource_name, execute, complete, data, result) {
1771
2025
  if (!env)
@@ -1787,6 +2041,7 @@ function createNapiModule(options) {
1787
2041
  return envObject.setLastError(1);
1788
2042
  var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
1789
2043
  var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
2044
+ result >>>= 0;
1790
2045
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
1791
2046
  HEAP_DATA_VIEW.setUint32(result, id, true);
1792
2047
  return envObject.clearLastError();
@@ -1813,6 +2068,7 @@ function createNapiModule(options) {
1813
2068
  var aw = _malloc(sizeofAW);
1814
2069
  if (!aw)
1815
2070
  return envObject.setLastError(9);
2071
+ aw >>>= 0;
1816
2072
  new Uint8Array(wasmMemory.buffer).subarray(aw, aw + sizeofAW).fill(0);
1817
2073
  var s = envObject.ensureHandleId(resourceObject);
1818
2074
  var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1);
@@ -1824,6 +2080,8 @@ function createNapiModule(options) {
1824
2080
  HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
1825
2081
  HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
1826
2082
  HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
2083
+ emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
2084
+ result >>>= 0;
1827
2085
  HEAP_DATA_VIEW.setUint32(result, aw, true);
1828
2086
  return envObject.clearLastError();
1829
2087
  };
@@ -1835,6 +2093,7 @@ function createNapiModule(options) {
1835
2093
  envObject.checkGCAccess();
1836
2094
  if (!work)
1837
2095
  return envObject.setLastError(1);
2096
+ work >>>= 0;
1838
2097
  emnapiAWST.remove(work);
1839
2098
  return envObject.clearLastError();
1840
2099
  }
@@ -1845,6 +2104,7 @@ function createNapiModule(options) {
1845
2104
  envObject.checkGCAccess();
1846
2105
  if (!work)
1847
2106
  return envObject.setLastError(1);
2107
+ work >>>= 0;
1848
2108
  var resource = emnapiAWMT.getResource(work);
1849
2109
  emnapiCtx.refStore.get(resource).dispose();
1850
2110
  if (emnapiNodeBinding) {
@@ -1863,6 +2123,7 @@ function createNapiModule(options) {
1863
2123
  var envObject = emnapiCtx.envStore.get(env);
1864
2124
  if (!work)
1865
2125
  return envObject.setLastError(1);
2126
+ work >>>= 0;
1866
2127
  emnapiAWST.queue(work);
1867
2128
  return envObject.clearLastError();
1868
2129
  }
@@ -1872,6 +2133,7 @@ function createNapiModule(options) {
1872
2133
  var envObject = emnapiCtx.envStore.get(env);
1873
2134
  if (!work)
1874
2135
  return envObject.setLastError(1);
2136
+ work >>>= 0;
1875
2137
  emnapiAWMT.scheduleWork(work);
1876
2138
  return envObject.clearLastError();
1877
2139
  };
@@ -1882,6 +2144,7 @@ function createNapiModule(options) {
1882
2144
  var envObject = emnapiCtx.envStore.get(env);
1883
2145
  if (!work)
1884
2146
  return envObject.setLastError(1);
2147
+ work >>>= 0;
1885
2148
  var status = emnapiAWST.cancel(work);
1886
2149
  if (status === 0)
1887
2150
  return envObject.clearLastError();
@@ -1893,41 +2156,124 @@ function createNapiModule(options) {
1893
2156
  var envObject = emnapiCtx.envStore.get(env);
1894
2157
  if (!work)
1895
2158
  return envObject.setLastError(1);
2159
+ work >>>= 0;
1896
2160
  var status = emnapiAWMT.cancelWork(work);
1897
2161
  if (status === 0)
1898
2162
  return envObject.clearLastError();
1899
2163
  return envObject.setLastError(status);
1900
2164
  };
1901
- function initWorker(startArg) {
2165
+ function _emnapi_async_worker(globalAddress) {
2166
+ globalAddress >>>= 0;
2167
+ emnapiAWMT.globalAddress = globalAddress;
2168
+ var mutex = emnapiAWMT.getMutex();
2169
+ var cond = emnapiAWMT.getCond();
2170
+ mutex.lock();
2171
+ var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
2172
+ var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
2173
+ var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
2174
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2175
+ for (;;) {
2176
+ while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
2177
+ Atomics.add(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
2178
+ cond.wait();
2179
+ Atomics.sub(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
2180
+ }
2181
+ var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
2182
+ if (q === exitMessageAddr) {
2183
+ cond.signal();
2184
+ mutex.unlock();
2185
+ break;
2186
+ }
2187
+ var work = q - emnapiAWMT.offset.queue;
2188
+ emnapiAWMT.queueRemove(q);
2189
+ emnapiAWMT.queueInit(q);
2190
+ mutex.unlock();
2191
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
2192
+ if (Atomics.load(statusBuffer, 0) === 1) {
2193
+ abort('unreachable');
2194
+ }
2195
+ var execute = emnapiAWMT.getExecute(work);
2196
+ var env = emnapiAWMT.getEnv(work);
2197
+ var data = emnapiAWMT.getData(work);
2198
+ (wasmTable.get(execute))(env, data);
2199
+ Atomics.store(statusBuffer, 0, 2);
2200
+ var postMessage_1 = napiModule.postMessage;
2201
+ postMessage_1({
2202
+ __emnapi__: {
2203
+ type: 'async-work-complete',
2204
+ payload: { work: work }
2205
+ }
2206
+ });
2207
+ mutex.lock();
2208
+ }
2209
+ return 0;
2210
+ }
2211
+ function _emnapi_spawn_worker(f, globalAddress) {
2212
+ if (typeof onCreateWorker !== 'function') {
2213
+ throw new TypeError('`options.onCreateWorker` is not a function');
2214
+ }
2215
+ var promises = [];
2216
+ var args = [];
2217
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
2218
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
2219
+ }
2220
+ args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
2221
+ var handleError = function (e) {
2222
+ if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
2223
+ emnapiAWMT.terminateWorkers();
2224
+ }
2225
+ };
2226
+ var ret;
2227
+ try {
2228
+ var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
2229
+ var p = PThread.loadWasmModuleToWorker(worker_1);
2230
+ if (ENVIRONMENT_IS_NODE) {
2231
+ worker_1.on('error', handleError);
2232
+ }
2233
+ else {
2234
+ worker_1.addEventListener('error', handleError, false);
2235
+ }
2236
+ emnapiAWMT.addListener(worker_1);
2237
+ emnapiTSFN.addListener(worker_1);
2238
+ promises.push(p.then(function () {
2239
+ if (typeof worker_1.unref === 'function') {
2240
+ worker_1.unref();
2241
+ }
2242
+ }));
2243
+ ret = emnapiAWMT.pool.push(worker_1) - 1;
2244
+ var arg = args[0];
2245
+ worker_1.threadBlockBase = arg;
2246
+ worker_1.postMessage({
2247
+ __emnapi__: {
2248
+ type: 'async-worker-init',
2249
+ payload: { arg: arg, func: [f, globalAddress] }
2250
+ }
2251
+ });
2252
+ }
2253
+ catch (err) {
2254
+ var arg = args[0];
2255
+ _free(arg);
2256
+ throw err;
2257
+ }
2258
+ return ret;
2259
+ }
2260
+ function initWorker(startArg, func) {
1902
2261
  if (napiModule.childThread) {
1903
2262
  if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
1904
2263
  throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
1905
2264
  }
1906
2265
  wasmInstance.exports.emnapi_async_worker_init(startArg);
2266
+ (wasmTable.get(func[0]))(func[1]);
1907
2267
  }
1908
2268
  else {
1909
2269
  throw new Error('startThread is only available in child threads');
1910
2270
  }
1911
2271
  }
1912
- function executeAsyncWork(work) {
1913
- if (!ENVIRONMENT_IS_PTHREAD)
1914
- return;
1915
- var execute = emnapiAWMT.getExecute(work);
1916
- var env = emnapiAWMT.getEnv(work);
1917
- var data = emnapiAWMT.getData(work);
1918
- (wasmTable.get(execute))(env, data);
1919
- var postMessage = napiModule.postMessage;
1920
- postMessage({
1921
- __emnapi__: {
1922
- type: 'async-work-complete',
1923
- payload: { work: work }
1924
- }
1925
- });
1926
- }
1927
2272
  napiModule.initWorker = initWorker;
1928
- napiModule.executeAsyncWork = executeAsyncWork;
1929
2273
  var asyncWorkMod = Object.freeze({
1930
2274
  __proto__: null,
2275
+ _emnapi_async_worker: _emnapi_async_worker,
2276
+ _emnapi_spawn_worker: _emnapi_spawn_worker,
1931
2277
  napi_cancel_async_work: napi_cancel_async_work,
1932
2278
  napi_create_async_work: napi_create_async_work,
1933
2279
  napi_delete_async_work: napi_delete_async_work,
@@ -1942,6 +2288,10 @@ function createNapiModule(options) {
1942
2288
  emnapiExternalMemory.table = new WeakMap();
1943
2289
  emnapiExternalMemory.wasmMemoryViewTable = new WeakMap();
1944
2290
  },
2291
+ isSharedArrayBuffer: function (value) {
2292
+ return ((typeof SharedArrayBuffer === 'function' && value instanceof SharedArrayBuffer) ||
2293
+ (Object.prototype.toString.call(value) === '[object SharedArrayBuffer]'));
2294
+ },
1945
2295
  isDetachedArrayBuffer: function (arrayBuffer) {
1946
2296
  if (arrayBuffer.byteLength === 0) {
1947
2297
  try {
@@ -1984,6 +2334,7 @@ function createNapiModule(options) {
1984
2334
  var pointer = _malloc(arrayBuffer.byteLength);
1985
2335
  if (!pointer)
1986
2336
  throw new Error('Out of memory');
2337
+ pointer >>>= 0;
1987
2338
  new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
1988
2339
  info.address = pointer;
1989
2340
  info.ownership = emnapiExternalMemory.registry ? 0 : 1;
@@ -2005,8 +2356,7 @@ function createNapiModule(options) {
2005
2356
  }
2006
2357
  return view;
2007
2358
  }
2008
- var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) ||
2009
- ((typeof SharedArrayBuffer === 'function') && (view.buffer instanceof SharedArrayBuffer));
2359
+ var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
2010
2360
  if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
2011
2361
  var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
2012
2362
  var Ctor = info.Ctor;
@@ -2139,7 +2489,7 @@ function createNapiModule(options) {
2139
2489
  ptr >>>= 0;
2140
2490
  var HEAPU8 = new Uint8Array(wasmMemory.buffer);
2141
2491
  var end = ptr;
2142
- if (length === -1) {
2492
+ if (length === -1 || length === 4294967295) {
2143
2493
  for (; HEAPU8[end];)
2144
2494
  ++end;
2145
2495
  }
@@ -2230,12 +2580,12 @@ function createNapiModule(options) {
2230
2580
  return '';
2231
2581
  ptr >>>= 0;
2232
2582
  var end = ptr;
2233
- if (length === -1) {
2234
- var idx = end >> 1;
2583
+ if (length === -1 || length === 4294967295) {
2584
+ var idx = end >>> 1;
2235
2585
  var HEAPU16 = new Uint16Array(wasmMemory.buffer);
2236
2586
  while (HEAPU16[idx])
2237
2587
  ++idx;
2238
- end = idx << 1;
2588
+ end = (idx << 1) >>> 0;
2239
2589
  }
2240
2590
  else {
2241
2591
  end = ptr + (length >>> 0) * 2;
@@ -2266,11 +2616,12 @@ function createNapiModule(options) {
2266
2616
  return outPtr - startPtr;
2267
2617
  },
2268
2618
  newString: function (env, str, length, result, stringMaker) {
2619
+ length >>>= 0;
2269
2620
  if (!env)
2270
2621
  return 1;
2271
2622
  var envObject = emnapiCtx.envStore.get(env);
2272
2623
  envObject.checkGCAccess();
2273
- var autoLength = length === -1;
2624
+ var autoLength = length === -1 || length === 4294967295;
2274
2625
  var sizelength = length >>> 0;
2275
2626
  if (length !== 0) {
2276
2627
  if (!str)
@@ -2280,18 +2631,21 @@ function createNapiModule(options) {
2280
2631
  return envObject.setLastError(1);
2281
2632
  if (!(autoLength || (sizelength <= 2147483647)))
2282
2633
  return envObject.setLastError(1);
2634
+ str >>>= 0;
2283
2635
  var strValue = stringMaker(str, autoLength, sizelength);
2636
+ result >>>= 0;
2284
2637
  var value = emnapiCtx.addToCurrentScope(strValue).id;
2285
2638
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2286
2639
  HEAP_DATA_VIEW.setUint32(result, value, true);
2287
2640
  return envObject.clearLastError();
2288
2641
  },
2289
2642
  newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
2643
+ length >>>= 0;
2290
2644
  if (!env)
2291
2645
  return 1;
2292
2646
  var envObject = emnapiCtx.envStore.get(env);
2293
2647
  envObject.checkGCAccess();
2294
- var autoLength = length === -1;
2648
+ var autoLength = length === -1 || length === 4294967295;
2295
2649
  var sizelength = length >>> 0;
2296
2650
  if (length !== 0) {
2297
2651
  if (!str)
@@ -2333,6 +2687,7 @@ function createNapiModule(options) {
2333
2687
  if (!handle.isArray()) {
2334
2688
  return envObject.setLastError(8);
2335
2689
  }
2690
+ result >>>= 0;
2336
2691
  var v = handle.value.length >>> 0;
2337
2692
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2338
2693
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -2351,19 +2706,55 @@ function createNapiModule(options) {
2351
2706
  if (!arraybuffer)
2352
2707
  return envObject.setLastError(1);
2353
2708
  var handle = emnapiCtx.handleStore.get(arraybuffer);
2354
- if (!handle.isArrayBuffer()) {
2709
+ if (!handle.isArrayBuffer() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
2355
2710
  return envObject.setLastError(1);
2356
2711
  }
2357
2712
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2358
2713
  if (data) {
2714
+ data >>>= 0;
2359
2715
  var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
2360
2716
  HEAP_DATA_VIEW.setUint32(data, p, true);
2361
2717
  }
2362
2718
  if (byte_length) {
2719
+ byte_length >>>= 0;
2363
2720
  HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
2364
2721
  }
2365
2722
  return envObject.clearLastError();
2366
2723
  }
2724
+ function node_api_set_prototype(env, object, value) {
2725
+ if (!env)
2726
+ return 1;
2727
+ var envObject = emnapiCtx.envStore.get(env);
2728
+ envObject.checkGCAccess();
2729
+ if (!envObject.tryCatch.isEmpty())
2730
+ return envObject.setLastError(10);
2731
+ if (!envObject.canCallIntoJs())
2732
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
2733
+ envObject.clearLastError();
2734
+ try {
2735
+ if (!value)
2736
+ return envObject.setLastError(1);
2737
+ var obj = emnapiCtx.handleStore.get(object).value;
2738
+ if (obj == null) {
2739
+ throw new TypeError('Cannot convert undefined or null to object');
2740
+ }
2741
+ var type = typeof obj;
2742
+ var v = void 0;
2743
+ try {
2744
+ v = (type === 'object' && obj !== null) || type === 'function' ? obj : Object(obj);
2745
+ }
2746
+ catch (_) {
2747
+ return envObject.setLastError(2);
2748
+ }
2749
+ var val = emnapiCtx.handleStore.get(value).value;
2750
+ Object.setPrototypeOf(v, val);
2751
+ return envObject.getReturnStatus();
2752
+ }
2753
+ catch (err) {
2754
+ envObject.tryCatch.setError(err);
2755
+ return envObject.setLastError(10);
2756
+ }
2757
+ }
2367
2758
  function napi_get_prototype(env, value, result) {
2368
2759
  if (!env)
2369
2760
  return 1;
@@ -2390,6 +2781,7 @@ function createNapiModule(options) {
2390
2781
  catch (_) {
2391
2782
  return envObject.setLastError(2);
2392
2783
  }
2784
+ result >>>= 0;
2393
2785
  var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
2394
2786
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2395
2787
  HEAP_DATA_VIEW.setUint32(result, p, true);
@@ -2414,6 +2806,7 @@ function createNapiModule(options) {
2414
2806
  var v = handle.value;
2415
2807
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2416
2808
  if (type) {
2809
+ type >>>= 0;
2417
2810
  var t = void 0;
2418
2811
  if (v instanceof Int8Array) {
2419
2812
  t = 0;
@@ -2436,6 +2829,9 @@ function createNapiModule(options) {
2436
2829
  else if (v instanceof Uint32Array) {
2437
2830
  t = 6;
2438
2831
  }
2832
+ else if (typeof Float16Array === 'function' && v instanceof Float16Array) {
2833
+ t = 11;
2834
+ }
2439
2835
  else if (v instanceof Float32Array) {
2440
2836
  t = 7;
2441
2837
  }
@@ -2453,22 +2849,25 @@ function createNapiModule(options) {
2453
2849
  }
2454
2850
  HEAP_DATA_VIEW.setInt32(type, t, true);
2455
2851
  }
2852
+ v = emnapiExternalMemory.getOrUpdateMemoryView(v);
2456
2853
  if (length) {
2854
+ length >>>= 0;
2457
2855
  HEAP_DATA_VIEW.setUint32(length, v.length, true);
2458
2856
  }
2459
- var buffer;
2460
2857
  if (data || arraybuffer) {
2461
- buffer = v.buffer;
2462
2858
  if (data) {
2859
+ data >>>= 0;
2463
2860
  var p = emnapiExternalMemory.getViewPointer(v, true).address;
2464
2861
  HEAP_DATA_VIEW.setUint32(data, p, true);
2465
2862
  }
2466
2863
  if (arraybuffer) {
2467
- var ab = envObject.ensureHandleId(buffer);
2864
+ arraybuffer >>>= 0;
2865
+ var ab = envObject.ensureHandleId(v.buffer);
2468
2866
  HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
2469
2867
  }
2470
2868
  }
2471
2869
  if (byte_offset) {
2870
+ byte_offset >>>= 0;
2472
2871
  HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
2473
2872
  }
2474
2873
  return envObject.clearLastError();
@@ -2499,24 +2898,26 @@ function createNapiModule(options) {
2499
2898
  if (!handle.isDataView()) {
2500
2899
  return envObject.setLastError(1);
2501
2900
  }
2502
- var v = handle.value;
2901
+ var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
2503
2902
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2504
2903
  if (byte_length) {
2904
+ byte_length >>>= 0;
2505
2905
  HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
2506
2906
  }
2507
- var buffer;
2508
2907
  if (data || arraybuffer) {
2509
- buffer = v.buffer;
2510
2908
  if (data) {
2909
+ data >>>= 0;
2511
2910
  var p = emnapiExternalMemory.getViewPointer(v, true).address;
2512
2911
  HEAP_DATA_VIEW.setUint32(data, p, true);
2513
2912
  }
2514
2913
  if (arraybuffer) {
2515
- var ab = envObject.ensureHandleId(buffer);
2914
+ arraybuffer >>>= 0;
2915
+ var ab = envObject.ensureHandleId(v.buffer);
2516
2916
  HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
2517
2917
  }
2518
2918
  }
2519
2919
  if (byte_offset) {
2920
+ byte_offset >>>= 0;
2520
2921
  HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
2521
2922
  }
2522
2923
  return envObject.clearLastError();
@@ -2541,6 +2942,7 @@ function createNapiModule(options) {
2541
2942
  if (!handle.isDate()) {
2542
2943
  return envObject.setLastError(1);
2543
2944
  }
2945
+ result >>>= 0;
2544
2946
  v = handle.value.valueOf();
2545
2947
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2546
2948
  HEAP_DATA_VIEW.setFloat64(result, v, true);
@@ -2564,6 +2966,7 @@ function createNapiModule(options) {
2564
2966
  if (typeof handle.value !== 'boolean') {
2565
2967
  return envObject.setLastError(7);
2566
2968
  }
2969
+ result >>>= 0;
2567
2970
  var r = handle.value ? 1 : 0;
2568
2971
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2569
2972
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -2582,6 +2985,7 @@ function createNapiModule(options) {
2582
2985
  if (typeof handle.value !== 'number') {
2583
2986
  return envObject.setLastError(6);
2584
2987
  }
2988
+ result >>>= 0;
2585
2989
  var r = handle.value;
2586
2990
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2587
2991
  HEAP_DATA_VIEW.setFloat64(result, r, true);
@@ -2606,6 +3010,8 @@ function createNapiModule(options) {
2606
3010
  if (typeof numberValue !== 'bigint') {
2607
3011
  return envObject.setLastError(6);
2608
3012
  }
3013
+ lossless >>>= 0;
3014
+ result >>>= 0;
2609
3015
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2610
3016
  if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
2611
3017
  HEAP_DATA_VIEW.setInt8(lossless, 1, true);
@@ -2642,6 +3048,8 @@ function createNapiModule(options) {
2642
3048
  if (typeof numberValue !== 'bigint') {
2643
3049
  return envObject.setLastError(6);
2644
3050
  }
3051
+ lossless >>>= 0;
3052
+ result >>>= 0;
2645
3053
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2646
3054
  if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
2647
3055
  HEAP_DATA_VIEW.setInt8(lossless, 1, true);
@@ -2673,8 +3081,12 @@ function createNapiModule(options) {
2673
3081
  return envObject.setLastError(17);
2674
3082
  }
2675
3083
  var isMinus = handle.value < BigInt(0);
3084
+ sign_bit >>>= 0;
3085
+ words >>>= 0;
3086
+ word_count >>>= 0;
2676
3087
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2677
3088
  var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
3089
+ word_count_int >>>= 0;
2678
3090
  var wordCount = 0;
2679
3091
  var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
2680
3092
  while (bigintValue !== BigInt(0)) {
@@ -2722,6 +3134,7 @@ function createNapiModule(options) {
2722
3134
  if (!handle.isExternal()) {
2723
3135
  return envObject.setLastError(1);
2724
3136
  }
3137
+ result >>>= 0;
2725
3138
  var p = handle.data();
2726
3139
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2727
3140
  HEAP_DATA_VIEW.setUint32(result, p, true);
@@ -2740,6 +3153,7 @@ function createNapiModule(options) {
2740
3153
  if (typeof handle.value !== 'number') {
2741
3154
  return envObject.setLastError(6);
2742
3155
  }
3156
+ result >>>= 0;
2743
3157
  var v = new Int32Array([handle.value])[0];
2744
3158
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2745
3159
  HEAP_DATA_VIEW.setInt32(result, v, true);
@@ -2759,6 +3173,7 @@ function createNapiModule(options) {
2759
3173
  return envObject.setLastError(6);
2760
3174
  }
2761
3175
  var numberValue = handle.value;
3176
+ result >>>= 0;
2762
3177
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2763
3178
  if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
2764
3179
  HEAP_DATA_VIEW.setInt32(result, 0, true);
@@ -2784,6 +3199,9 @@ function createNapiModule(options) {
2784
3199
  envObject.checkGCAccess();
2785
3200
  if (!value)
2786
3201
  return envObject.setLastError(1);
3202
+ result >>>= 0;
3203
+ buf >>>= 0;
3204
+ buf_size >>>= 0;
2787
3205
  buf_size = buf_size >>> 0;
2788
3206
  var handle = emnapiCtx.handleStore.get(value);
2789
3207
  if (typeof handle.value !== 'string') {
@@ -2820,6 +3238,9 @@ function createNapiModule(options) {
2820
3238
  envObject.checkGCAccess();
2821
3239
  if (!value)
2822
3240
  return envObject.setLastError(1);
3241
+ result >>>= 0;
3242
+ buf >>>= 0;
3243
+ buf_size >>>= 0;
2823
3244
  buf_size = buf_size >>> 0;
2824
3245
  var handle = emnapiCtx.handleStore.get(value);
2825
3246
  if (typeof handle.value !== 'string') {
@@ -2850,6 +3271,9 @@ function createNapiModule(options) {
2850
3271
  envObject.checkGCAccess();
2851
3272
  if (!value)
2852
3273
  return envObject.setLastError(1);
3274
+ result >>>= 0;
3275
+ buf >>>= 0;
3276
+ buf_size >>>= 0;
2853
3277
  buf_size = buf_size >>> 0;
2854
3278
  var handle = emnapiCtx.handleStore.get(value);
2855
3279
  if (typeof handle.value !== 'string') {
@@ -2885,6 +3309,7 @@ function createNapiModule(options) {
2885
3309
  if (typeof handle.value !== 'number') {
2886
3310
  return envObject.setLastError(6);
2887
3311
  }
3312
+ result >>>= 0;
2888
3313
  var v = new Uint32Array([handle.value])[0];
2889
3314
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2890
3315
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -2910,7 +3335,8 @@ function createNapiModule(options) {
2910
3335
  napi_get_value_string_latin1: napi_get_value_string_latin1,
2911
3336
  napi_get_value_string_utf16: napi_get_value_string_utf16,
2912
3337
  napi_get_value_string_utf8: napi_get_value_string_utf8,
2913
- napi_get_value_uint32: napi_get_value_uint32
3338
+ napi_get_value_uint32: napi_get_value_uint32,
3339
+ node_api_set_prototype: node_api_set_prototype
2914
3340
  });
2915
3341
  function napi_create_int32(env, value, result) {
2916
3342
  if (!env)
@@ -2919,6 +3345,7 @@ function createNapiModule(options) {
2919
3345
  envObject.checkGCAccess();
2920
3346
  if (!result)
2921
3347
  return envObject.setLastError(1);
3348
+ result >>>= 0;
2922
3349
  var v = emnapiCtx.addToCurrentScope(value).id;
2923
3350
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2924
3351
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -2931,6 +3358,7 @@ function createNapiModule(options) {
2931
3358
  envObject.checkGCAccess();
2932
3359
  if (!result)
2933
3360
  return envObject.setLastError(1);
3361
+ result >>>= 0;
2934
3362
  var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
2935
3363
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2936
3364
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -2946,6 +3374,7 @@ function createNapiModule(options) {
2946
3374
  return envObject.setLastError(1);
2947
3375
  value = Number(low);
2948
3376
  var v1 = emnapiCtx.addToCurrentScope(value).id;
3377
+ high >>>= 0;
2949
3378
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2950
3379
  HEAP_DATA_VIEW.setUint32(high, v1, true);
2951
3380
  return envObject.clearLastError();
@@ -2957,6 +3386,7 @@ function createNapiModule(options) {
2957
3386
  envObject.checkGCAccess();
2958
3387
  if (!result)
2959
3388
  return envObject.setLastError(1);
3389
+ result >>>= 0;
2960
3390
  var v = emnapiCtx.addToCurrentScope(value).id;
2961
3391
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
2962
3392
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -3027,6 +3457,7 @@ function createNapiModule(options) {
3027
3457
  return envObject.setLastError(1);
3028
3458
  value = low;
3029
3459
  var v1 = emnapiCtx.addToCurrentScope(value).id;
3460
+ high >>>= 0;
3030
3461
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3031
3462
  HEAP_DATA_VIEW.setUint32(high, v1, true);
3032
3463
  return envObject.clearLastError();
@@ -3044,6 +3475,7 @@ function createNapiModule(options) {
3044
3475
  return envObject.setLastError(1);
3045
3476
  value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
3046
3477
  var v1 = emnapiCtx.addToCurrentScope(value).id;
3478
+ high >>>= 0;
3047
3479
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3048
3480
  HEAP_DATA_VIEW.setUint32(high, v1, true);
3049
3481
  return envObject.clearLastError();
@@ -3065,6 +3497,8 @@ function createNapiModule(options) {
3065
3497
  }
3066
3498
  if (!result)
3067
3499
  return envObject.setLastError(1);
3500
+ words >>>= 0;
3501
+ word_count >>>= 0;
3068
3502
  word_count = word_count >>> 0;
3069
3503
  if (word_count > 2147483647) {
3070
3504
  return envObject.setLastError(1);
@@ -3081,6 +3515,7 @@ function createNapiModule(options) {
3081
3515
  value += wordi << BigInt(64 * i);
3082
3516
  }
3083
3517
  value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
3518
+ result >>>= 0;
3084
3519
  v = emnapiCtx.addToCurrentScope(value).id;
3085
3520
  HEAP_DATA_VIEW.setUint32(result, v, true);
3086
3521
  return envObject.getReturnStatus();
@@ -3109,6 +3544,7 @@ function createNapiModule(options) {
3109
3544
  node_api_create_property_key_utf8: node_api_create_property_key_utf8
3110
3545
  });
3111
3546
  function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
3547
+ utf8name >>>= 0;
3112
3548
  var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
3113
3549
  var f;
3114
3550
  var napiCallback = (wasmTable.get(cb));
@@ -3249,6 +3685,7 @@ function createNapiModule(options) {
3249
3685
  if (!finalize_cb)
3250
3686
  return envObject.setLastError(1);
3251
3687
  reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1, finalize_cb, native_object, finalize_hint);
3688
+ result >>>= 0;
3252
3689
  referenceId = reference.id;
3253
3690
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3254
3691
  HEAP_DATA_VIEW.setUint32(result, referenceId, true);
@@ -3297,6 +3734,7 @@ function createNapiModule(options) {
3297
3734
  if (!ref)
3298
3735
  return envObject.setLastError(1);
3299
3736
  if (result) {
3737
+ result >>>= 0;
3300
3738
  data = ref.data();
3301
3739
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3302
3740
  HEAP_DATA_VIEW.setUint32(result, data, true);
@@ -3333,12 +3771,15 @@ function createNapiModule(options) {
3333
3771
  return envObject.setLastError(1);
3334
3772
  if (!constructor)
3335
3773
  return envObject.setLastError(1);
3774
+ length >>>= 0;
3775
+ properties >>>= 0;
3776
+ property_count >>>= 0;
3336
3777
  property_count = property_count >>> 0;
3337
3778
  if (property_count > 0) {
3338
3779
  if (!properties)
3339
3780
  return envObject.setLastError(1);
3340
3781
  }
3341
- if ((length < -1) || (length > 2147483647) || (!utf8name)) {
3782
+ if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
3342
3783
  return envObject.setLastError(1);
3343
3784
  }
3344
3785
  var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
@@ -3356,6 +3797,7 @@ function createNapiModule(options) {
3356
3797
  var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
3357
3798
  var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
3358
3799
  attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
3800
+ attributes >>>= 0;
3359
3801
  var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
3360
3802
  if (utf8Name) {
3361
3803
  propertyName = emnapiString.UTF8ToString(utf8Name, -1);
@@ -3377,6 +3819,7 @@ function createNapiModule(options) {
3377
3819
  }
3378
3820
  var valueHandle = emnapiCtx.addToCurrentScope(F);
3379
3821
  valueHandleId = valueHandle.id;
3822
+ result >>>= 0;
3380
3823
  HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
3381
3824
  return envObject.getReturnStatus();
3382
3825
  }
@@ -3412,6 +3855,7 @@ function createNapiModule(options) {
3412
3855
  if (!(value.isObject() || value.isFunction())) {
3413
3856
  return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 2);
3414
3857
  }
3858
+ type_tag >>>= 0;
3415
3859
  if (!type_tag) {
3416
3860
  return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
3417
3861
  }
@@ -3456,6 +3900,7 @@ function createNapiModule(options) {
3456
3900
  }
3457
3901
  var binding = envObject.getObjectBinding(value.value);
3458
3902
  if (binding.tag !== null) {
3903
+ type_tag >>>= 0;
3459
3904
  var tag = binding.tag;
3460
3905
  var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
3461
3906
  ret = (tag[0] === typeTag[0] &&
@@ -3466,6 +3911,7 @@ function createNapiModule(options) {
3466
3911
  else {
3467
3912
  ret = false;
3468
3913
  }
3914
+ result >>>= 0;
3469
3915
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3470
3916
  HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
3471
3917
  return envObject.getReturnStatus();
@@ -3493,8 +3939,12 @@ function createNapiModule(options) {
3493
3939
  }
3494
3940
  var handle = handleResult.handle;
3495
3941
  var ownership = !result ? 0 : 1;
3942
+ finalize_data >>>= 0;
3943
+ finalize_cb >>>= 0;
3944
+ finalize_hint >>>= 0;
3496
3945
  var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
3497
3946
  if (result) {
3947
+ result >>>= 0;
3498
3948
  var referenceId = reference.id;
3499
3949
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3500
3950
  HEAP_DATA_VIEW.setUint32(result, referenceId, true);
@@ -3533,6 +3983,9 @@ function createNapiModule(options) {
3533
3983
  try {
3534
3984
  if (!result)
3535
3985
  return envObject.setLastError(1);
3986
+ byte_length >>>= 0;
3987
+ external_data >>>= 0;
3988
+ result >>>= 0;
3536
3989
  byte_length = byte_length >>> 0;
3537
3990
  if (!external_data) {
3538
3991
  byte_length = 0;
@@ -3584,6 +4037,12 @@ function createNapiModule(options) {
3584
4037
  case -1:
3585
4038
  viewDescriptor = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
3586
4039
  break;
4040
+ case 11:
4041
+ if (typeof Float16Array !== 'function') {
4042
+ return envObject.setLastError(1);
4043
+ }
4044
+ viewDescriptor = { Ctor: Float16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
4045
+ break;
3587
4046
  case -2: {
3588
4047
  if (!emnapiCtx.feature.Buffer) {
3589
4048
  throw emnapiCtx.createNotSupportBufferError('emnapi_create_memory_view', '');
@@ -3633,11 +4092,11 @@ function createNapiModule(options) {
3633
4092
  offset = offset !== null && offset !== void 0 ? offset : 0;
3634
4093
  offset = offset >>> 0;
3635
4094
  var view;
3636
- if (arrayBufferOrView instanceof ArrayBuffer) {
4095
+ if (arrayBufferOrView instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
3637
4096
  var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
3638
4097
  if (!pointer)
3639
4098
  throw new Error('Unknown ArrayBuffer address');
3640
- if (typeof len !== 'number' || len === -1) {
4099
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
3641
4100
  len = arrayBufferOrView.byteLength - offset;
3642
4101
  }
3643
4102
  len = len >>> 0;
@@ -3659,7 +4118,7 @@ function createNapiModule(options) {
3659
4118
  var pointer = viewPointerInfo.address;
3660
4119
  if (!pointer)
3661
4120
  throw new Error('Unknown ArrayBuffer address');
3662
- if (typeof len !== 'number' || len === -1) {
4121
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
3663
4122
  len = latestView.byteLength - offset;
3664
4123
  }
3665
4124
  len = len >>> 0;
@@ -3691,14 +4150,18 @@ function createNapiModule(options) {
3691
4150
  try {
3692
4151
  if (!arraybuffer_or_view)
3693
4152
  return envObject.setLastError(1);
4153
+ arraybuffer_or_view >>>= 0;
4154
+ offset >>>= 0;
4155
+ len >>>= 0;
3694
4156
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3695
4157
  var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
3696
4158
  var handle = envObject.ctx.handleStore.get(handleId);
3697
- if (!handle.isArrayBuffer() && !handle.isTypedArray() && !handle.isDataView()) {
4159
+ if (!handle.isArrayBuffer() && !handle.isTypedArray() && !handle.isDataView() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
3698
4160
  return envObject.setLastError(1);
3699
4161
  }
3700
4162
  var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
3701
4163
  if (handle.value !== ret) {
4164
+ arraybuffer_or_view >>>= 0;
3702
4165
  v = envObject.ensureHandleId(ret);
3703
4166
  HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
3704
4167
  }
@@ -3713,7 +4176,7 @@ function createNapiModule(options) {
3713
4176
  var isArrayBuffer = arrayBufferOrView instanceof ArrayBuffer;
3714
4177
  var isDataView = arrayBufferOrView instanceof DataView;
3715
4178
  var isTypedArray = ArrayBuffer.isView(arrayBufferOrView) && !isDataView;
3716
- if (!isArrayBuffer && !isTypedArray && !isDataView) {
4179
+ if (!isArrayBuffer && !isTypedArray && !isDataView && !emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
3717
4180
  throw new TypeError('emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter');
3718
4181
  }
3719
4182
  var info;
@@ -3752,13 +4215,16 @@ function createNapiModule(options) {
3752
4215
  p = info.address;
3753
4216
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3754
4217
  if (address) {
4218
+ address >>>= 0;
3755
4219
  HEAP_DATA_VIEW.setUint32(address, p, true);
3756
4220
  }
3757
4221
  if (ownership) {
4222
+ ownership >>>= 0;
3758
4223
  ownershipOut = info.ownership;
3759
4224
  HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
3760
4225
  }
3761
4226
  if (runtime_allocated) {
4227
+ runtime_allocated >>>= 0;
3762
4228
  runtimeAllocated = info.runtimeAllocated;
3763
4229
  HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
3764
4230
  }
@@ -3784,6 +4250,7 @@ function createNapiModule(options) {
3784
4250
  }
3785
4251
  var versions = runtimeVersion.split('.')
3786
4252
  .map(function (n) { return Number(n); });
4253
+ version >>>= 0;
3787
4254
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3788
4255
  HEAP_DATA_VIEW.setUint32(version, versions[0], true);
3789
4256
  HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
@@ -3809,6 +4276,7 @@ function createNapiModule(options) {
3809
4276
  envObject.checkGCAccess();
3810
4277
  if (!result)
3811
4278
  return envObject.setLastError(1);
4279
+ result >>>= 0;
3812
4280
  var value = emnapiCtx.addToCurrentScope([]).id;
3813
4281
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3814
4282
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -3821,16 +4289,20 @@ function createNapiModule(options) {
3821
4289
  envObject.checkGCAccess();
3822
4290
  if (!result)
3823
4291
  return envObject.setLastError(1);
4292
+ length >>>= 0;
4293
+ result >>>= 0;
3824
4294
  length = length >>> 0;
3825
4295
  var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
3826
4296
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3827
4297
  HEAP_DATA_VIEW.setUint32(result, value, true);
3828
4298
  return envObject.clearLastError();
3829
4299
  }
3830
- function emnapiCreateArrayBuffer(byte_length, data) {
4300
+ function emnapiCreateArrayBuffer(byte_length, data, shared) {
4301
+ byte_length >>>= 0;
3831
4302
  byte_length = byte_length >>> 0;
3832
- var arrayBuffer = new ArrayBuffer(byte_length);
4303
+ var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
3833
4304
  if (data) {
4305
+ data >>>= 0;
3834
4306
  var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
3835
4307
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3836
4308
  HEAP_DATA_VIEW.setUint32(data, p, true);
@@ -3851,7 +4323,34 @@ function createNapiModule(options) {
3851
4323
  try {
3852
4324
  if (!result)
3853
4325
  return envObject.setLastError(1);
3854
- var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data);
4326
+ result >>>= 0;
4327
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
4328
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
4329
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4330
+ HEAP_DATA_VIEW.setUint32(result, value, true);
4331
+ return envObject.getReturnStatus();
4332
+ }
4333
+ catch (err) {
4334
+ envObject.tryCatch.setError(err);
4335
+ return envObject.setLastError(10);
4336
+ }
4337
+ }
4338
+ function node_api_create_sharedarraybuffer(env, byte_length, data, result) {
4339
+ var value;
4340
+ if (!env)
4341
+ return 1;
4342
+ var envObject = emnapiCtx.envStore.get(env);
4343
+ envObject.checkGCAccess();
4344
+ if (!envObject.tryCatch.isEmpty())
4345
+ return envObject.setLastError(10);
4346
+ if (!envObject.canCallIntoJs())
4347
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
4348
+ envObject.clearLastError();
4349
+ try {
4350
+ if (!result)
4351
+ return envObject.setLastError(1);
4352
+ result >>>= 0;
4353
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
3855
4354
  value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
3856
4355
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3857
4356
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -3876,6 +4375,7 @@ function createNapiModule(options) {
3876
4375
  try {
3877
4376
  if (!result)
3878
4377
  return envObject.setLastError(1);
4378
+ result >>>= 0;
3879
4379
  value = emnapiCtx.addToCurrentScope(new Date(time)).id;
3880
4380
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3881
4381
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -3907,6 +4407,7 @@ function createNapiModule(options) {
3907
4407
  if (finalize_cb) {
3908
4408
  emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0, finalize_cb, data, finalize_hint);
3909
4409
  }
4410
+ result >>>= 0;
3910
4411
  value = externalHandle.id;
3911
4412
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3912
4413
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -3931,6 +4432,9 @@ function createNapiModule(options) {
3931
4432
  try {
3932
4433
  if (!result)
3933
4434
  return envObject.setLastError(1);
4435
+ byte_length >>>= 0;
4436
+ external_data >>>= 0;
4437
+ result >>>= 0;
3934
4438
  byte_length = byte_length >>> 0;
3935
4439
  if (!external_data) {
3936
4440
  byte_length = 0;
@@ -3988,11 +4492,57 @@ function createNapiModule(options) {
3988
4492
  envObject.checkGCAccess();
3989
4493
  if (!result)
3990
4494
  return envObject.setLastError(1);
4495
+ result >>>= 0;
3991
4496
  var value = emnapiCtx.addToCurrentScope({}).id;
3992
4497
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
3993
4498
  HEAP_DATA_VIEW.setUint32(result, value, true);
3994
4499
  return envObject.clearLastError();
3995
4500
  }
4501
+ function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
4502
+ if (!env)
4503
+ return 1;
4504
+ var envObject = emnapiCtx.envStore.get(env);
4505
+ envObject.checkGCAccess();
4506
+ if (!result)
4507
+ return envObject.setLastError(1);
4508
+ property_count >>>= 0;
4509
+ property_count = property_count >>> 0;
4510
+ if (property_count > 0) {
4511
+ if (!property_names)
4512
+ return envObject.setLastError(1);
4513
+ if (!property_values)
4514
+ return envObject.setLastError(1);
4515
+ }
4516
+ var v8_prototype_or_null = prototype_or_null
4517
+ ? emnapiCtx.handleStore.get(prototype_or_null).value
4518
+ : null;
4519
+ var properties = {};
4520
+ property_names >>>= 0;
4521
+ property_values >>>= 0;
4522
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4523
+ for (var i = 0; i < property_count; i++) {
4524
+ var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
4525
+ if (!(typeof name_value === "string" || typeof name_value === "symbol"))
4526
+ return envObject.setLastError(4);
4527
+ properties[name_value] = {
4528
+ value: emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_values + i * 4, true)).value,
4529
+ writable: true,
4530
+ enumerable: true,
4531
+ configurable: true
4532
+ };
4533
+ }
4534
+ var obj;
4535
+ try {
4536
+ obj = Object.defineProperties(Object.create(v8_prototype_or_null), properties);
4537
+ }
4538
+ catch (_) {
4539
+ return envObject.setLastError(9);
4540
+ }
4541
+ var value = emnapiCtx.addToCurrentScope(obj).id;
4542
+ result >>>= 0;
4543
+ HEAP_DATA_VIEW.setUint32(result, value, true);
4544
+ return envObject.clearLastError();
4545
+ }
3996
4546
  function napi_create_symbol(env, description, result) {
3997
4547
  if (!env)
3998
4548
  return 1;
@@ -4000,6 +4550,7 @@ function createNapiModule(options) {
4000
4550
  envObject.checkGCAccess();
4001
4551
  if (!result)
4002
4552
  return envObject.setLastError(1);
4553
+ result >>>= 0;
4003
4554
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4004
4555
  if (!description) {
4005
4556
  var value = emnapiCtx.addToCurrentScope(Symbol()).id;
@@ -4037,6 +4588,8 @@ function createNapiModule(options) {
4037
4588
  return envObject.setLastError(1);
4038
4589
  }
4039
4590
  var buffer = handle.value;
4591
+ byte_offset >>>= 0;
4592
+ length >>>= 0;
4040
4593
  var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
4041
4594
  var _a;
4042
4595
  byte_offset = byte_offset >>> 0;
@@ -4067,6 +4620,7 @@ function createNapiModule(options) {
4067
4620
  });
4068
4621
  }
4069
4622
  }
4623
+ result >>>= 0;
4070
4624
  value = emnapiCtx.addToCurrentScope(out).id;
4071
4625
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4072
4626
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4095,6 +4649,11 @@ function createNapiModule(options) {
4095
4649
  return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
4096
4650
  case 10:
4097
4651
  return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
4652
+ case 11:
4653
+ if (typeof Float16Array !== 'function') {
4654
+ return envObject.setLastError(1);
4655
+ }
4656
+ return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
4098
4657
  default:
4099
4658
  return envObject.setLastError(1);
4100
4659
  }
@@ -4123,7 +4682,9 @@ function createNapiModule(options) {
4123
4682
  if (!Buffer) {
4124
4683
  throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
4125
4684
  }
4685
+ result >>>= 0;
4126
4686
  var buffer = void 0;
4687
+ size >>>= 0;
4127
4688
  size = size >>> 0;
4128
4689
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4129
4690
  if (!data || (size === 0)) {
@@ -4135,6 +4696,7 @@ function createNapiModule(options) {
4135
4696
  pointer = _malloc(size);
4136
4697
  if (!pointer)
4137
4698
  throw new Error('Out of memory');
4699
+ pointer >>>= 0;
4138
4700
  new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
4139
4701
  var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
4140
4702
  var viewDescriptor = {
@@ -4148,6 +4710,7 @@ function createNapiModule(options) {
4148
4710
  (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
4149
4711
  value = emnapiCtx.addToCurrentScope(buffer_1).id;
4150
4712
  HEAP_DATA_VIEW.setUint32(result, value, true);
4713
+ data >>>= 0;
4151
4714
  HEAP_DATA_VIEW.setUint32(data, pointer, true);
4152
4715
  }
4153
4716
  return envObject.getReturnStatus();
@@ -4175,10 +4738,13 @@ function createNapiModule(options) {
4175
4738
  if (!Buffer) {
4176
4739
  throw emnapiCtx.createNotSupportBufferError('napi_create_buffer_copy', '');
4177
4740
  }
4178
- var arrayBuffer = emnapiCreateArrayBuffer(length, result_data);
4741
+ var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
4179
4742
  var buffer = Buffer.from(arrayBuffer);
4743
+ data >>>= 0;
4744
+ length >>>= 0;
4180
4745
  buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
4181
4746
  value = emnapiCtx.addToCurrentScope(buffer).id;
4747
+ result >>>= 0;
4182
4748
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4183
4749
  HEAP_DATA_VIEW.setUint32(result, value, true);
4184
4750
  return envObject.getReturnStatus();
@@ -4207,6 +4773,8 @@ function createNapiModule(options) {
4207
4773
  return envObject.setLastError(1);
4208
4774
  if (!result)
4209
4775
  return envObject.setLastError(1);
4776
+ byte_offset >>>= 0;
4777
+ byte_length >>>= 0;
4210
4778
  byte_offset = byte_offset >>> 0;
4211
4779
  byte_length = byte_length >>> 0;
4212
4780
  var handle = emnapiCtx.handleStore.get(arraybuffer);
@@ -4235,6 +4803,7 @@ function createNapiModule(options) {
4235
4803
  });
4236
4804
  }
4237
4805
  }
4806
+ result >>>= 0;
4238
4807
  value = emnapiCtx.addToCurrentScope(out).id;
4239
4808
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4240
4809
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4246,7 +4815,6 @@ function createNapiModule(options) {
4246
4815
  }
4247
4816
  }
4248
4817
  function napi_create_dataview(env, byte_length, arraybuffer, byte_offset, result) {
4249
- var value;
4250
4818
  if (!env)
4251
4819
  return 1;
4252
4820
  var envObject = emnapiCtx.envStore.get(env);
@@ -4261,34 +4829,41 @@ function createNapiModule(options) {
4261
4829
  return envObject.setLastError(1);
4262
4830
  if (!result)
4263
4831
  return envObject.setLastError(1);
4832
+ byte_length >>>= 0;
4833
+ byte_offset >>>= 0;
4264
4834
  byte_length = byte_length >>> 0;
4265
4835
  byte_offset = byte_offset >>> 0;
4266
- var handle = emnapiCtx.handleStore.get(arraybuffer);
4267
- if (!handle.isArrayBuffer()) {
4268
- return envObject.setLastError(1);
4269
- }
4270
- var buffer = handle.value;
4271
- if ((byte_length + byte_offset) > buffer.byteLength) {
4272
- var err = new RangeError('byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in');
4273
- err.code = 'ERR_NAPI_INVALID_DATAVIEW_ARGS';
4274
- throw err;
4275
- }
4276
- var dataview = new DataView(buffer, byte_offset, byte_length);
4277
- if (buffer === wasmMemory.buffer) {
4278
- if (!emnapiExternalMemory.wasmMemoryViewTable.has(dataview)) {
4279
- emnapiExternalMemory.wasmMemoryViewTable.set(dataview, {
4280
- Ctor: DataView,
4281
- address: byte_offset,
4282
- length: byte_length,
4283
- ownership: 1,
4284
- runtimeAllocated: 0
4285
- });
4836
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
4837
+ var createDataview = function (buffer) {
4838
+ if ((byte_length + byte_offset) > buffer.byteLength) {
4839
+ var err = new RangeError('byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in');
4840
+ err.code = 'ERR_NAPI_INVALID_DATAVIEW_ARGS';
4841
+ throw err;
4286
4842
  }
4843
+ var dataview = new DataView(buffer, byte_offset, byte_length);
4844
+ if (buffer === wasmMemory.buffer) {
4845
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(dataview)) {
4846
+ emnapiExternalMemory.wasmMemoryViewTable.set(dataview, {
4847
+ Ctor: DataView,
4848
+ address: byte_offset,
4849
+ length: byte_length,
4850
+ ownership: 1,
4851
+ runtimeAllocated: 0
4852
+ });
4853
+ }
4854
+ }
4855
+ result >>>= 0;
4856
+ var v = emnapiCtx.addToCurrentScope(dataview).id;
4857
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4858
+ HEAP_DATA_VIEW.setUint32(result, v, true);
4859
+ return envObject.getReturnStatus();
4860
+ };
4861
+ if (value instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(value)) {
4862
+ return createDataview(value);
4863
+ }
4864
+ else {
4865
+ return envObject.setLastError(1);
4287
4866
  }
4288
- value = emnapiCtx.addToCurrentScope(dataview).id;
4289
- var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4290
- HEAP_DATA_VIEW.setUint32(result, value, true);
4291
- return envObject.getReturnStatus();
4292
4867
  }
4293
4868
  catch (err) {
4294
4869
  envObject.tryCatch.setError(err);
@@ -4302,7 +4877,10 @@ function createNapiModule(options) {
4302
4877
  envObject.checkGCAccess();
4303
4878
  if (!result)
4304
4879
  return envObject.setLastError(1);
4305
- var autoLength = length === -1;
4880
+ length >>>= 0;
4881
+ utf8description >>>= 0;
4882
+ result >>>= 0;
4883
+ var autoLength = length === -1 || length === 4294967295;
4306
4884
  var sizelength = length >>> 0;
4307
4885
  if (length !== 0) {
4308
4886
  if (!utf8description)
@@ -4333,6 +4911,8 @@ function createNapiModule(options) {
4333
4911
  napi_create_symbol: napi_create_symbol,
4334
4912
  napi_create_typedarray: napi_create_typedarray,
4335
4913
  node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
4914
+ node_api_create_object_with_properties: node_api_create_object_with_properties,
4915
+ node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
4336
4916
  node_api_symbol_for: node_api_symbol_for
4337
4917
  });
4338
4918
  function napi_get_boolean(env, value, result) {
@@ -4342,6 +4922,7 @@ function createNapiModule(options) {
4342
4922
  envObject.checkGCAccess();
4343
4923
  if (!result)
4344
4924
  return envObject.setLastError(1);
4925
+ result >>>= 0;
4345
4926
  var v = value === 0 ? 3 : 4;
4346
4927
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4347
4928
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -4354,6 +4935,7 @@ function createNapiModule(options) {
4354
4935
  envObject.checkGCAccess();
4355
4936
  if (!result)
4356
4937
  return envObject.setLastError(1);
4938
+ result >>>= 0;
4357
4939
  var value = 5;
4358
4940
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4359
4941
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4366,6 +4948,7 @@ function createNapiModule(options) {
4366
4948
  envObject.checkGCAccess();
4367
4949
  if (!result)
4368
4950
  return envObject.setLastError(1);
4951
+ result >>>= 0;
4369
4952
  var value = 2;
4370
4953
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4371
4954
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4378,6 +4961,7 @@ function createNapiModule(options) {
4378
4961
  envObject.checkGCAccess();
4379
4962
  if (!result)
4380
4963
  return envObject.setLastError(1);
4964
+ result >>>= 0;
4381
4965
  var value = 1;
4382
4966
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4383
4967
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4394,6 +4978,9 @@ function createNapiModule(options) {
4394
4978
  if (!env)
4395
4979
  return 1;
4396
4980
  var envObject = emnapiCtx.envStore.get(env);
4981
+ data >>>= 0;
4982
+ finalize_cb >>>= 0;
4983
+ finalize_hint >>>= 0;
4397
4984
  envObject.setInstanceData(data, finalize_cb, finalize_hint);
4398
4985
  return envObject.clearLastError();
4399
4986
  }
@@ -4403,6 +4990,7 @@ function createNapiModule(options) {
4403
4990
  var envObject = emnapiCtx.envStore.get(env);
4404
4991
  if (!data)
4405
4992
  return envObject.setLastError(1);
4993
+ data >>>= 0;
4406
4994
  var value = envObject.getInstanceData();
4407
4995
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4408
4996
  HEAP_DATA_VIEW.setUint32(data, value, true);
@@ -4414,11 +5002,15 @@ function createNapiModule(options) {
4414
5002
  napi_set_instance_data: napi_set_instance_data
4415
5003
  });
4416
5004
  function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
5005
+ error_code >>>= 0;
5006
+ engine_error_code >>>= 0;
5007
+ engine_reserved >>>= 0;
4417
5008
  var envObject = emnapiCtx.envStore.get(env);
4418
5009
  var lastError = envObject.lastError;
4419
5010
  var errorCode = lastError.errorCode;
4420
5011
  var engineErrorCode = lastError.engineErrorCode >>> 0;
4421
5012
  var engineReserved = lastError.engineReserved;
5013
+ engineReserved >>>= 0;
4422
5014
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4423
5015
  HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
4424
5016
  HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
@@ -4458,6 +5050,8 @@ function createNapiModule(options) {
4458
5050
  try {
4459
5051
  if (!msg)
4460
5052
  return envObject.setLastError(1);
5053
+ code >>>= 0;
5054
+ msg >>>= 0;
4461
5055
  var error = new Error(emnapiString.UTF8ToString(msg, -1));
4462
5056
  if (code)
4463
5057
  error.code = emnapiString.UTF8ToString(code, -1);
@@ -4482,6 +5076,8 @@ function createNapiModule(options) {
4482
5076
  try {
4483
5077
  if (!msg)
4484
5078
  return envObject.setLastError(1);
5079
+ code >>>= 0;
5080
+ msg >>>= 0;
4485
5081
  var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
4486
5082
  if (code)
4487
5083
  error.code = emnapiString.UTF8ToString(code, -1);
@@ -4506,6 +5102,8 @@ function createNapiModule(options) {
4506
5102
  try {
4507
5103
  if (!msg)
4508
5104
  return envObject.setLastError(1);
5105
+ code >>>= 0;
5106
+ msg >>>= 0;
4509
5107
  var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
4510
5108
  if (code)
4511
5109
  error.code = emnapiString.UTF8ToString(code, -1);
@@ -4530,6 +5128,8 @@ function createNapiModule(options) {
4530
5128
  try {
4531
5129
  if (!msg)
4532
5130
  return envObject.setLastError(1);
5131
+ code >>>= 0;
5132
+ msg >>>= 0;
4533
5133
  var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
4534
5134
  if (code)
4535
5135
  error.code = emnapiString.UTF8ToString(code, -1);
@@ -4549,6 +5149,7 @@ function createNapiModule(options) {
4549
5149
  if (!result)
4550
5150
  return envObject.setLastError(1);
4551
5151
  var r = envObject.tryCatch.hasCaught();
5152
+ result >>>= 0;
4552
5153
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4553
5154
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
4554
5155
  return envObject.clearLastError();
@@ -4574,6 +5175,7 @@ function createNapiModule(options) {
4574
5175
  }
4575
5176
  error.code = codeValue;
4576
5177
  }
5178
+ result >>>= 0;
4577
5179
  var value = emnapiCtx.addToCurrentScope(error).id;
4578
5180
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4579
5181
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4600,6 +5202,7 @@ function createNapiModule(options) {
4600
5202
  }
4601
5203
  error.code = codeValue;
4602
5204
  }
5205
+ result >>>= 0;
4603
5206
  var value = emnapiCtx.addToCurrentScope(error).id;
4604
5207
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4605
5208
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4626,6 +5229,7 @@ function createNapiModule(options) {
4626
5229
  }
4627
5230
  error.code = codeValue;
4628
5231
  }
5232
+ result >>>= 0;
4629
5233
  var value = emnapiCtx.addToCurrentScope(error).id;
4630
5234
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4631
5235
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4652,6 +5256,7 @@ function createNapiModule(options) {
4652
5256
  }
4653
5257
  error.code = codeValue;
4654
5258
  }
5259
+ result >>>= 0;
4655
5260
  var value = emnapiCtx.addToCurrentScope(error).id;
4656
5261
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4657
5262
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -4664,6 +5269,7 @@ function createNapiModule(options) {
4664
5269
  envObject.checkGCAccess();
4665
5270
  if (!result)
4666
5271
  return envObject.setLastError(1);
5272
+ result >>>= 0;
4667
5273
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4668
5274
  if (!envObject.tryCatch.hasCaught()) {
4669
5275
  HEAP_DATA_VIEW.setUint32(result, 1, true);
@@ -4678,6 +5284,10 @@ function createNapiModule(options) {
4678
5284
  return envObject.clearLastError();
4679
5285
  }
4680
5286
  function napi_fatal_error(location, location_len, message, message_len) {
5287
+ location >>>= 0;
5288
+ location_len >>>= 0;
5289
+ message >>>= 0;
5290
+ message_len >>>= 0;
4681
5291
  var locationStr = emnapiString.UTF8ToString(location, location_len);
4682
5292
  var messageStr = emnapiString.UTF8ToString(message, message_len);
4683
5293
  if (emnapiNodeBinding) {
@@ -4731,8 +5341,21 @@ function createNapiModule(options) {
4731
5341
  node_api_create_syntax_error: node_api_create_syntax_error,
4732
5342
  node_api_throw_syntax_error: node_api_throw_syntax_error
4733
5343
  });
5344
+ function _emnapi_create_function(env, utf8name, length, cb, data, result) {
5345
+ length >>>= 0;
5346
+ var envObject = emnapiCtx.envStore.get(env);
5347
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
5348
+ if (fresult.status !== 0)
5349
+ return envObject.setLastError(fresult.status);
5350
+ var f = fresult.f;
5351
+ var valueHandle = emnapiCtx.addToCurrentScope(f);
5352
+ result >>>= 0;
5353
+ var value = valueHandle.id;
5354
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5355
+ HEAP_DATA_VIEW.setUint32(result, value, true);
5356
+ return envObject.getReturnStatus();
5357
+ }
4734
5358
  function napi_create_function(env, utf8name, length, cb, data, result) {
4735
- var value;
4736
5359
  if (!env)
4737
5360
  return 1;
4738
5361
  var envObject = emnapiCtx.envStore.get(env);
@@ -4747,15 +5370,7 @@ function createNapiModule(options) {
4747
5370
  return envObject.setLastError(1);
4748
5371
  if (!cb)
4749
5372
  return envObject.setLastError(1);
4750
- var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
4751
- if (fresult.status !== 0)
4752
- return envObject.setLastError(fresult.status);
4753
- var f = fresult.f;
4754
- var valueHandle = emnapiCtx.addToCurrentScope(f);
4755
- value = valueHandle.id;
4756
- var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4757
- HEAP_DATA_VIEW.setUint32(result, value, true);
4758
- return envObject.getReturnStatus();
5373
+ return _emnapi_create_function(env, utf8name, length, cb, data, result);
4759
5374
  }
4760
5375
  catch (err) {
4761
5376
  envObject.tryCatch.setError(err);
@@ -4769,11 +5384,14 @@ function createNapiModule(options) {
4769
5384
  if (!cbinfo)
4770
5385
  return envObject.setLastError(1);
4771
5386
  var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
5387
+ argc >>>= 0;
5388
+ argv >>>= 0;
4772
5389
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4773
5390
  if (argv) {
4774
5391
  if (!argc)
4775
5392
  return envObject.setLastError(1);
4776
5393
  var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
5394
+ argcValue >>>= 0;
4777
5395
  var len = cbinfoValue.args.length;
4778
5396
  var arrlen = argcValue < len ? argcValue : len;
4779
5397
  var i = 0;
@@ -4791,10 +5409,12 @@ function createNapiModule(options) {
4791
5409
  HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
4792
5410
  }
4793
5411
  if (this_arg) {
5412
+ this_arg >>>= 0;
4794
5413
  var v = envObject.ensureHandleId(cbinfoValue.thiz);
4795
5414
  HEAP_DATA_VIEW.setUint32(this_arg, v, true);
4796
5415
  }
4797
5416
  if (data) {
5417
+ data >>>= 0;
4798
5418
  HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
4799
5419
  }
4800
5420
  return envObject.clearLastError();
@@ -4814,6 +5434,9 @@ function createNapiModule(options) {
4814
5434
  try {
4815
5435
  if (!recv)
4816
5436
  return envObject.setLastError(1);
5437
+ argc >>>= 0;
5438
+ argv >>>= 0;
5439
+ result >>>= 0;
4817
5440
  argc = argc >>> 0;
4818
5441
  if (argc > 0) {
4819
5442
  if (!argv)
@@ -4858,6 +5481,9 @@ function createNapiModule(options) {
4858
5481
  try {
4859
5482
  if (!constructor)
4860
5483
  return envObject.setLastError(1);
5484
+ argc >>>= 0;
5485
+ argv >>>= 0;
5486
+ result >>>= 0;
4861
5487
  argc = argc >>> 0;
4862
5488
  if (argc > 0) {
4863
5489
  if (!argv)
@@ -4908,6 +5534,7 @@ function createNapiModule(options) {
4908
5534
  return envObject.setLastError(1);
4909
5535
  if (!result)
4910
5536
  return envObject.setLastError(1);
5537
+ result >>>= 0;
4911
5538
  var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
4912
5539
  var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
4913
5540
  var value = thiz == null || thiz.constructor == null
@@ -4921,6 +5548,7 @@ function createNapiModule(options) {
4921
5548
  }
4922
5549
  var functionMod = Object.freeze({
4923
5550
  __proto__: null,
5551
+ _emnapi_create_function: _emnapi_create_function,
4924
5552
  napi_call_function: napi_call_function,
4925
5553
  napi_create_function: napi_create_function,
4926
5554
  napi_get_cb_info: napi_get_cb_info,
@@ -4935,6 +5563,7 @@ function createNapiModule(options) {
4935
5563
  if (!result)
4936
5564
  return envObject.setLastError(1);
4937
5565
  var scope = emnapiCtx.openScope(envObject);
5566
+ result >>>= 0;
4938
5567
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4939
5568
  HEAP_DATA_VIEW.setUint32(result, scope.id, true);
4940
5569
  return envObject.clearLastError();
@@ -4960,6 +5589,7 @@ function createNapiModule(options) {
4960
5589
  if (!result)
4961
5590
  return envObject.setLastError(1);
4962
5591
  var scope = emnapiCtx.openScope(envObject);
5592
+ result >>>= 0;
4963
5593
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
4964
5594
  HEAP_DATA_VIEW.setUint32(result, scope.id, true);
4965
5595
  return envObject.clearLastError();
@@ -4990,6 +5620,8 @@ function createNapiModule(options) {
4990
5620
  return envObject.setLastError(1);
4991
5621
  var scopeObject = emnapiCtx.scopeStore.get(scope);
4992
5622
  if (!scopeObject.escapeCalled()) {
5623
+ escapee >>>= 0;
5624
+ result >>>= 0;
4993
5625
  var newHandle = scopeObject.escape(escapee);
4994
5626
  var value = newHandle ? newHandle.id : 0;
4995
5627
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
@@ -5014,6 +5646,7 @@ function createNapiModule(options) {
5014
5646
  }
5015
5647
  }
5016
5648
  var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1);
5649
+ result >>>= 0;
5017
5650
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5018
5651
  HEAP_DATA_VIEW.setUint32(result, ref.id, true);
5019
5652
  return envObject.clearLastError();
@@ -5036,6 +5669,7 @@ function createNapiModule(options) {
5036
5669
  return envObject.setLastError(1);
5037
5670
  var count = emnapiCtx.refStore.get(ref).ref();
5038
5671
  if (result) {
5672
+ result >>>= 0;
5039
5673
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5040
5674
  HEAP_DATA_VIEW.setUint32(result, count, true);
5041
5675
  }
@@ -5055,6 +5689,7 @@ function createNapiModule(options) {
5055
5689
  }
5056
5690
  var count = reference.unref();
5057
5691
  if (result) {
5692
+ result >>>= 0;
5058
5693
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5059
5694
  HEAP_DATA_VIEW.setUint32(result, count, true);
5060
5695
  }
@@ -5071,6 +5706,7 @@ function createNapiModule(options) {
5071
5706
  return envObject.setLastError(1);
5072
5707
  var reference = emnapiCtx.refStore.get(ref);
5073
5708
  var handleId = reference.get(envObject);
5709
+ result >>>= 0;
5074
5710
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5075
5711
  HEAP_DATA_VIEW.setUint32(result, handleId, true);
5076
5712
  return envObject.clearLastError();
@@ -5081,6 +5717,8 @@ function createNapiModule(options) {
5081
5717
  var envObject = emnapiCtx.envStore.get(env);
5082
5718
  if (!fun)
5083
5719
  return envObject.setLastError(1);
5720
+ fun >>>= 0;
5721
+ arg >>>= 0;
5084
5722
  emnapiCtx.addCleanupHook(envObject, fun, arg);
5085
5723
  return 0;
5086
5724
  }
@@ -5090,6 +5728,8 @@ function createNapiModule(options) {
5090
5728
  var envObject = emnapiCtx.envStore.get(env);
5091
5729
  if (!fun)
5092
5730
  return envObject.setLastError(1);
5731
+ fun >>>= 0;
5732
+ arg >>>= 0;
5093
5733
  emnapiCtx.removeCleanupHook(envObject, fun, arg);
5094
5734
  return 0;
5095
5735
  }
@@ -5150,8 +5790,10 @@ function createNapiModule(options) {
5150
5790
  var p = new Promise(function (resolve, reject) {
5151
5791
  var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
5152
5792
  deferredObjectId = deferredObject.id;
5793
+ deferred >>>= 0;
5153
5794
  HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
5154
5795
  });
5796
+ promise >>>= 0;
5155
5797
  value = emnapiCtx.addToCurrentScope(p).id;
5156
5798
  HEAP_DATA_VIEW.setUint32(promise, value, true);
5157
5799
  return envObject.getReturnStatus();
@@ -5219,6 +5861,7 @@ function createNapiModule(options) {
5219
5861
  if (!is_promise)
5220
5862
  return envObject.setLastError(1);
5221
5863
  var h = emnapiCtx.handleStore.get(value);
5864
+ is_promise >>>= 0;
5222
5865
  var r = h.isPromise() ? 1 : 0;
5223
5866
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5224
5867
  HEAP_DATA_VIEW.setInt8(is_promise, r, true);
@@ -5362,6 +6005,7 @@ function createNapiModule(options) {
5362
6005
  }
5363
6006
  }
5364
6007
  }
6008
+ result >>>= 0;
5365
6009
  value = emnapiCtx.addToCurrentScope(ret).id;
5366
6010
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5367
6011
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -5433,6 +6077,7 @@ function createNapiModule(options) {
5433
6077
  catch (_) {
5434
6078
  return envObject.setLastError(2);
5435
6079
  }
6080
+ result >>>= 0;
5436
6081
  r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
5437
6082
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5438
6083
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -5472,6 +6117,7 @@ function createNapiModule(options) {
5472
6117
  catch (_) {
5473
6118
  return envObject.setLastError(2);
5474
6119
  }
6120
+ result >>>= 0;
5475
6121
  value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
5476
6122
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5477
6123
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -5515,6 +6161,7 @@ function createNapiModule(options) {
5515
6161
  }
5516
6162
  }
5517
6163
  if (result) {
6164
+ result >>>= 0;
5518
6165
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5519
6166
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
5520
6167
  }
@@ -5559,6 +6206,7 @@ function createNapiModule(options) {
5559
6206
  return envObject.setLastError(4);
5560
6207
  }
5561
6208
  r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
6209
+ result >>>= 0;
5562
6210
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5563
6211
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
5564
6212
  return envObject.getReturnStatus();
@@ -5590,6 +6238,7 @@ function createNapiModule(options) {
5590
6238
  if (!cname) {
5591
6239
  return envObject.setLastError(1);
5592
6240
  }
6241
+ cname >>>= 0;
5593
6242
  emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
5594
6243
  return envObject.getReturnStatus();
5595
6244
  }
@@ -5628,6 +6277,8 @@ function createNapiModule(options) {
5628
6277
  catch (_) {
5629
6278
  return envObject.setLastError(2);
5630
6279
  }
6280
+ utf8name >>>= 0;
6281
+ result >>>= 0;
5631
6282
  r = emnapiString.UTF8ToString(utf8name, -1) in v;
5632
6283
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5633
6284
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
@@ -5668,6 +6319,8 @@ function createNapiModule(options) {
5668
6319
  catch (_) {
5669
6320
  return envObject.setLastError(2);
5670
6321
  }
6322
+ utf8name >>>= 0;
6323
+ result >>>= 0;
5671
6324
  value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
5672
6325
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5673
6326
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -5732,6 +6385,7 @@ function createNapiModule(options) {
5732
6385
  catch (_) {
5733
6386
  return envObject.setLastError(2);
5734
6387
  }
6388
+ result >>>= 0;
5735
6389
  r = ((index >>> 0) in v) ? 1 : 0;
5736
6390
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5737
6391
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -5769,6 +6423,7 @@ function createNapiModule(options) {
5769
6423
  catch (_) {
5770
6424
  return envObject.setLastError(2);
5771
6425
  }
6426
+ result >>>= 0;
5772
6427
  value = envObject.ensureHandleId(v[index >>> 0]);
5773
6428
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5774
6429
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -5809,6 +6464,7 @@ function createNapiModule(options) {
5809
6464
  }
5810
6465
  }
5811
6466
  if (result) {
6467
+ result >>>= 0;
5812
6468
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5813
6469
  HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
5814
6470
  }
@@ -5831,6 +6487,8 @@ function createNapiModule(options) {
5831
6487
  return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
5832
6488
  envObject.clearLastError();
5833
6489
  try {
6490
+ properties >>>= 0;
6491
+ property_count >>>= 0;
5834
6492
  property_count = property_count >>> 0;
5835
6493
  if (property_count > 0) {
5836
6494
  if (!properties)
@@ -5854,6 +6512,7 @@ function createNapiModule(options) {
5854
6512
  var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
5855
6513
  var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
5856
6514
  attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
6515
+ attributes >>>= 0;
5857
6516
  var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
5858
6517
  if (utf8Name) {
5859
6518
  propertyName = emnapiString.UTF8ToString(utf8Name, -1);
@@ -5971,6 +6630,7 @@ function createNapiModule(options) {
5971
6630
  }
5972
6631
  var g = emnapiCtx.handleStore.get(5).value;
5973
6632
  var ret = g.eval(v8Script.value);
6633
+ result >>>= 0;
5974
6634
  value = envObject.ensureHandleId(ret);
5975
6635
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
5976
6636
  HEAP_DATA_VIEW.setUint32(result, value, true);
@@ -5996,6 +6656,7 @@ function createNapiModule(options) {
5996
6656
  if (!result)
5997
6657
  return envObject.setLastError(1);
5998
6658
  var v = emnapiCtx.handleStore.get(value);
6659
+ result >>>= 0;
5999
6660
  var r;
6000
6661
  if (v.isNumber()) {
6001
6662
  r = 3;
@@ -6051,6 +6712,7 @@ function createNapiModule(options) {
6051
6712
  if (!result)
6052
6713
  return envObject.setLastError(1);
6053
6714
  var handle = emnapiCtx.handleStore.get(value);
6715
+ result >>>= 0;
6054
6716
  v = handle.value ? 4 : 3;
6055
6717
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6056
6718
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -6081,6 +6743,7 @@ function createNapiModule(options) {
6081
6743
  if (handle.isBigInt()) {
6082
6744
  throw new TypeError('Cannot convert a BigInt value to a number');
6083
6745
  }
6746
+ result >>>= 0;
6084
6747
  v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
6085
6748
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6086
6749
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -6111,6 +6774,7 @@ function createNapiModule(options) {
6111
6774
  if (handle.value == null) {
6112
6775
  throw new TypeError('Cannot convert undefined or null to object');
6113
6776
  }
6777
+ result >>>= 0;
6114
6778
  v = envObject.ensureHandleId(Object(handle.value));
6115
6779
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6116
6780
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -6141,6 +6805,7 @@ function createNapiModule(options) {
6141
6805
  if (handle.isSymbol()) {
6142
6806
  throw new TypeError('Cannot convert a Symbol value to a string');
6143
6807
  }
6808
+ result >>>= 0;
6144
6809
  v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
6145
6810
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6146
6811
  HEAP_DATA_VIEW.setUint32(result, v, true);
@@ -6169,6 +6834,7 @@ function createNapiModule(options) {
6169
6834
  return envObject.setLastError(1);
6170
6835
  if (!constructor)
6171
6836
  return envObject.setLastError(1);
6837
+ result >>>= 0;
6172
6838
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6173
6839
  HEAP_DATA_VIEW.setInt8(result, 0, true);
6174
6840
  var ctor = emnapiCtx.handleStore.get(constructor);
@@ -6196,6 +6862,7 @@ function createNapiModule(options) {
6196
6862
  if (!result)
6197
6863
  return envObject.setLastError(1);
6198
6864
  var h = emnapiCtx.handleStore.get(value);
6865
+ result >>>= 0;
6199
6866
  var r = h.isArray() ? 1 : 0;
6200
6867
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6201
6868
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6211,11 +6878,31 @@ function createNapiModule(options) {
6211
6878
  if (!result)
6212
6879
  return envObject.setLastError(1);
6213
6880
  var h = emnapiCtx.handleStore.get(value);
6881
+ result >>>= 0;
6214
6882
  var r = h.isArrayBuffer() ? 1 : 0;
6215
6883
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6216
6884
  HEAP_DATA_VIEW.setInt8(result, r, true);
6217
6885
  return envObject.clearLastError();
6218
6886
  }
6887
+ function node_api_is_sharedarraybuffer(env, value, result) {
6888
+ if (!env)
6889
+ return 1;
6890
+ var envObject = emnapiCtx.envStore.get(env);
6891
+ envObject.checkGCAccess();
6892
+ if (!value)
6893
+ return envObject.setLastError(1);
6894
+ if (!result)
6895
+ return envObject.setLastError(1);
6896
+ var h = emnapiCtx.handleStore.get(value);
6897
+ result >>>= 0;
6898
+ var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
6899
+ (Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
6900
+ ? 1
6901
+ : 0;
6902
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6903
+ HEAP_DATA_VIEW.setInt8(result, r, true);
6904
+ return envObject.clearLastError();
6905
+ }
6219
6906
  function napi_is_date(env, value, result) {
6220
6907
  if (!env)
6221
6908
  return 1;
@@ -6226,6 +6913,7 @@ function createNapiModule(options) {
6226
6913
  if (!result)
6227
6914
  return envObject.setLastError(1);
6228
6915
  var h = emnapiCtx.handleStore.get(value);
6916
+ result >>>= 0;
6229
6917
  var r = h.isDate() ? 1 : 0;
6230
6918
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6231
6919
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6241,6 +6929,7 @@ function createNapiModule(options) {
6241
6929
  if (!result)
6242
6930
  return envObject.setLastError(1);
6243
6931
  var val = emnapiCtx.handleStore.get(value).value;
6932
+ result >>>= 0;
6244
6933
  var r = (val instanceof Error) ? 1 : 0;
6245
6934
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6246
6935
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6256,6 +6945,7 @@ function createNapiModule(options) {
6256
6945
  if (!result)
6257
6946
  return envObject.setLastError(1);
6258
6947
  var h = emnapiCtx.handleStore.get(value);
6948
+ result >>>= 0;
6259
6949
  var r = h.isTypedArray() ? 1 : 0;
6260
6950
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6261
6951
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6271,6 +6961,7 @@ function createNapiModule(options) {
6271
6961
  if (!result)
6272
6962
  return envObject.setLastError(1);
6273
6963
  var h = emnapiCtx.handleStore.get(value);
6964
+ result >>>= 0;
6274
6965
  var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
6275
6966
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6276
6967
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6286,6 +6977,7 @@ function createNapiModule(options) {
6286
6977
  if (!result)
6287
6978
  return envObject.setLastError(1);
6288
6979
  var h = emnapiCtx.handleStore.get(value);
6980
+ result >>>= 0;
6289
6981
  var r = h.isDataView() ? 1 : 0;
6290
6982
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6291
6983
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6311,6 +7003,7 @@ function createNapiModule(options) {
6311
7003
  return envObject.setLastError(1);
6312
7004
  var lv = emnapiCtx.handleStore.get(lhs).value;
6313
7005
  var rv = emnapiCtx.handleStore.get(rhs).value;
7006
+ result >>>= 0;
6314
7007
  r = (lv === rv) ? 1 : 0;
6315
7008
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6316
7009
  HEAP_DATA_VIEW.setInt8(result, r, true);
@@ -6361,6 +7054,7 @@ function createNapiModule(options) {
6361
7054
  if (!result)
6362
7055
  return envObject.setLastError(1);
6363
7056
  var h = emnapiCtx.handleStore.get(arraybuffer);
7057
+ result >>>= 0;
6364
7058
  var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
6365
7059
  if (h.isArrayBuffer() && h.value.byteLength === 0) {
6366
7060
  try {
@@ -6396,7 +7090,8 @@ function createNapiModule(options) {
6396
7090
  napi_is_error: napi_is_error,
6397
7091
  napi_is_typedarray: napi_is_typedarray,
6398
7092
  napi_strict_equals: napi_strict_equals,
6399
- napi_typeof: napi_typeof
7093
+ napi_typeof: napi_typeof,
7094
+ node_api_is_sharedarraybuffer: node_api_is_sharedarraybuffer
6400
7095
  });
6401
7096
  function napi_get_version(env, result) {
6402
7097
  if (!env)
@@ -6547,9 +7242,9 @@ function loadNapiModuleImpl(loadFn, userNapiModule, wasmInput, options) {
6547
7242
  }
6548
7243
  const table = getTable ? getTable(originalExports) : originalExports.__indirect_function_table;
6549
7244
  if (wasi && !exportMemory) {
6550
- const exports = Object.create(null);
6551
- Object.assign(exports, originalExports, { memory });
6552
- instance = { exports };
7245
+ const exports$1 = Object.create(null);
7246
+ Object.assign(exports$1, originalExports, { memory });
7247
+ instance = { exports: exports$1 };
6553
7248
  }
6554
7249
  const module = source.module;
6555
7250
  if (wasi) {
@@ -6674,12 +7369,7 @@ class MessageHandler extends wasiThreads.ThreadMessageHandler {
6674
7369
  try {
6675
7370
  if (type === 'async-worker-init') {
6676
7371
  this.handleAfterLoad(e, () => {
6677
- this.napiModule.initWorker(payload.arg);
6678
- });
6679
- }
6680
- else if (type === 'async-work-execute') {
6681
- this.handleAfterLoad(e, () => {
6682
- this.napiModule.executeAsyncWork(payload.work);
7372
+ this.napiModule.initWorker(payload.arg, payload.func);
6683
7373
  });
6684
7374
  }
6685
7375
  }
@@ -6690,7 +7380,7 @@ class MessageHandler extends wasiThreads.ThreadMessageHandler {
6690
7380
  }
6691
7381
  }
6692
7382
 
6693
- const version = "1.5.0";
7383
+ const version = "1.10.0";
6694
7384
 
6695
7385
  exports.MessageHandler = MessageHandler;
6696
7386
  exports.createNapiModule = createNapiModule;