koffi 2.16.0-beta.2 → 2.16.1

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 (425) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/build/koffi/darwin_arm64/koffi.node +0 -0
  3. package/build/koffi/darwin_x64/koffi.node +0 -0
  4. package/build/koffi/freebsd_arm64/koffi.node +0 -0
  5. package/build/koffi/freebsd_ia32/koffi.node +0 -0
  6. package/build/koffi/freebsd_x64/koffi.node +0 -0
  7. package/build/koffi/linux_arm64/koffi.node +0 -0
  8. package/build/koffi/linux_armhf/koffi.node +0 -0
  9. package/build/koffi/linux_ia32/koffi.node +0 -0
  10. package/build/koffi/linux_loong64/koffi.node +0 -0
  11. package/build/koffi/linux_riscv64d/koffi.node +0 -0
  12. package/build/koffi/linux_x64/koffi.node +0 -0
  13. package/build/koffi/musl_arm64/koffi.node +0 -0
  14. package/build/koffi/musl_x64/koffi.node +0 -0
  15. package/build/koffi/openbsd_ia32/koffi.node +0 -0
  16. package/build/koffi/openbsd_x64/koffi.node +0 -0
  17. package/build/koffi/win32_arm64/koffi.exp +0 -0
  18. package/build/koffi/win32_arm64/koffi.lib +0 -0
  19. package/build/koffi/win32_arm64/koffi.node +0 -0
  20. package/build/koffi/win32_ia32/koffi.exp +0 -0
  21. package/build/koffi/win32_ia32/koffi.lib +0 -0
  22. package/build/koffi/win32_ia32/koffi.node +0 -0
  23. package/build/koffi/win32_x64/koffi.exp +0 -0
  24. package/build/koffi/win32_x64/koffi.lib +0 -0
  25. package/build/koffi/win32_x64/koffi.node +0 -0
  26. package/index.d.ts +9 -11
  27. package/index.js +6 -9
  28. package/indirect.js +6 -9
  29. package/lib/native/base/base.cc +1 -6
  30. package/package.json +3 -3
  31. package/src/cnoke/assets/FindCNoke.cmake +27 -16
  32. package/src/cnoke/assets/toolchains.json +126 -0
  33. package/src/cnoke/cnoke.js +27 -33
  34. package/src/cnoke/src/builder.js +124 -63
  35. package/src/cnoke/src/tools.js +1 -5
  36. package/src/koffi/CMakeLists.txt +32 -21
  37. package/src/koffi/src/{abi/arm32.cc → abi_arm32.cc} +235 -246
  38. package/src/koffi/src/{abi/arm32_asm.S → abi_arm32_asm.S} +19 -15
  39. package/src/koffi/src/{abi/arm64.cc → abi_arm64.cc} +253 -300
  40. package/src/koffi/src/{abi/arm64_asm.S → abi_arm64_asm.S} +16 -10
  41. package/src/koffi/src/{abi/arm64_asm.asm → abi_arm64_asm.asm} +17 -10
  42. package/src/koffi/src/{abi/loong64_asm.S → abi_loong64_asm.S} +16 -10
  43. package/src/koffi/src/{abi/riscv64.cc → abi_riscv64.cc} +233 -244
  44. package/src/koffi/src/{abi/riscv64_asm.S → abi_riscv64_asm.S} +16 -10
  45. package/src/koffi/src/{abi/x64_sysv.cc → abi_x64_sysv.cc} +208 -220
  46. package/src/koffi/src/{abi/x64_sysv_asm.S → abi_x64_sysv_asm.S} +17 -10
  47. package/src/koffi/src/{abi/x64_win.cc → abi_x64_win.cc} +175 -230
  48. package/src/koffi/src/{abi/x64_win_asm.S → abi_x64_win_asm.S} +49 -27
  49. package/src/koffi/src/{abi/x64_win_asm.asm → abi_x64_win_asm.asm} +54 -27
  50. package/src/koffi/src/{abi/x86.cc → abi_x86.cc} +187 -252
  51. package/src/koffi/src/{abi/x86_asm.S → abi_x86_asm.S} +38 -21
  52. package/src/koffi/src/{abi/x86_asm.asm → abi_x86_asm.asm} +33 -16
  53. package/src/koffi/src/call.cc +475 -290
  54. package/src/koffi/src/call.hh +15 -18
  55. package/src/koffi/src/ffi.cc +195 -184
  56. package/src/koffi/src/ffi.hh +60 -16
  57. package/src/koffi/src/init.js +1 -0
  58. package/src/koffi/src/util.cc +113 -159
  59. package/src/koffi/src/util.hh +23 -74
  60. package/src/koffi/src/win32.cc +13 -0
  61. package/src/koffi/src/win32.hh +7 -0
  62. package/src/koffi/tools/write_trampolines.js +77 -0
  63. package/doc/README.md +0 -27
  64. package/doc/assets.ini +0 -24
  65. package/doc/build.sh +0 -9
  66. package/doc/develop.sh +0 -15
  67. package/doc/pages/404.md +0 -17
  68. package/doc/pages.ini +0 -86
  69. package/doc/static/highlight.js +0 -8
  70. package/doc/static/koffi.css +0 -11
  71. package/doc/static/koffi.png +0 -0
  72. package/doc/static/logo.webp +0 -0
  73. package/doc/static/perf_linux.png +0 -0
  74. package/doc/static/perf_windows.png +0 -0
  75. package/doc/static/print.css +0 -10
  76. package/doc/templates/code.html +0 -48
  77. package/doc/templates/page.html +0 -47
  78. package/src/koffi/cmake/raylib.cmake +0 -85
  79. package/src/koffi/cmake/sqlite3.cmake +0 -9
  80. package/src/koffi/examples/electron-builder/README.md +0 -11
  81. package/src/koffi/examples/electron-builder/package.json +0 -21
  82. package/src/koffi/examples/electron-builder/src/app.js +0 -20
  83. package/src/koffi/examples/electron-builder/src/index.html +0 -143
  84. package/src/koffi/examples/electron-builder/src/preload.js +0 -5
  85. package/src/koffi/examples/electron-forge/README.md +0 -25
  86. package/src/koffi/examples/electron-forge/forge.config.js +0 -63
  87. package/src/koffi/examples/electron-forge/package.json +0 -39
  88. package/src/koffi/examples/electron-forge/src/index.css +0 -7
  89. package/src/koffi/examples/electron-forge/src/index.html +0 -143
  90. package/src/koffi/examples/electron-forge/src/main.js +0 -52
  91. package/src/koffi/examples/electron-forge/src/preload.js +0 -5
  92. package/src/koffi/examples/electron-forge/src/renderer.js +0 -31
  93. package/src/koffi/examples/electron-forge/webpack.main.config.js +0 -11
  94. package/src/koffi/examples/electron-forge/webpack.renderer.config.js +0 -13
  95. package/src/koffi/examples/electron-forge/webpack.rules.js +0 -35
  96. package/src/koffi/examples/node-esbuild/README.md +0 -19
  97. package/src/koffi/examples/node-esbuild/index.js +0 -2
  98. package/src/koffi/examples/node-esbuild/package.json +0 -16
  99. package/src/koffi/examples/nwjs/README.md +0 -20
  100. package/src/koffi/examples/nwjs/package.json +0 -11
  101. package/src/koffi/examples/nwjs/src/index.html +0 -145
  102. package/src/koffi/examples/nwjs/src/package.json +0 -10
  103. package/src/koffi/examples/yao-pkg/README.md +0 -17
  104. package/src/koffi/examples/yao-pkg/index.js +0 -2
  105. package/src/koffi/examples/yao-pkg/package.json +0 -22
  106. package/src/koffi/src/primitives.inc +0 -39
  107. package/src/koffi/src/trampolines/armasm.inc +0 -32771
  108. package/src/koffi/src/trampolines/gnu.inc +0 -24577
  109. package/src/koffi/src/trampolines/masm32.inc +0 -32769
  110. package/src/koffi/src/trampolines/masm64.inc +0 -32769
  111. package/src/koffi/src/trampolines/prototypes.inc +0 -16388
  112. package/vendor/node-addon-api/CHANGELOG.md +0 -1272
  113. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +0 -4
  114. package/vendor/node-addon-api/CONTRIBUTING.md +0 -203
  115. package/vendor/node-addon-api/appveyor.yml +0 -37
  116. package/vendor/node-addon-api/benchmark/README.md +0 -47
  117. package/vendor/node-addon-api/benchmark/binding.gyp +0 -25
  118. package/vendor/node-addon-api/benchmark/function_args.cc +0 -250
  119. package/vendor/node-addon-api/benchmark/function_args.js +0 -60
  120. package/vendor/node-addon-api/benchmark/index.js +0 -34
  121. package/vendor/node-addon-api/benchmark/property_descriptor.cc +0 -84
  122. package/vendor/node-addon-api/benchmark/property_descriptor.js +0 -38
  123. package/vendor/node-addon-api/common.gypi +0 -21
  124. package/vendor/node-addon-api/doc/README.md +0 -145
  125. package/vendor/node-addon-api/doc/addon.md +0 -163
  126. package/vendor/node-addon-api/doc/array.md +0 -81
  127. package/vendor/node-addon-api/doc/array_buffer.md +0 -165
  128. package/vendor/node-addon-api/doc/async_context.md +0 -86
  129. package/vendor/node-addon-api/doc/async_operations.md +0 -31
  130. package/vendor/node-addon-api/doc/async_worker.md +0 -428
  131. package/vendor/node-addon-api/doc/async_worker_variants.md +0 -578
  132. package/vendor/node-addon-api/doc/basic_env.md +0 -200
  133. package/vendor/node-addon-api/doc/bigint.md +0 -97
  134. package/vendor/node-addon-api/doc/boolean.md +0 -68
  135. package/vendor/node-addon-api/doc/buffer.md +0 -245
  136. package/vendor/node-addon-api/doc/callback_scope.md +0 -54
  137. package/vendor/node-addon-api/doc/callbackinfo.md +0 -97
  138. package/vendor/node-addon-api/doc/checker-tool.md +0 -32
  139. package/vendor/node-addon-api/doc/class_property_descriptor.md +0 -123
  140. package/vendor/node-addon-api/doc/cmake-js.md +0 -87
  141. package/vendor/node-addon-api/doc/contributing/creating_a_release.md +0 -95
  142. package/vendor/node-addon-api/doc/conversion-tool.md +0 -28
  143. package/vendor/node-addon-api/doc/dataview.md +0 -248
  144. package/vendor/node-addon-api/doc/date.md +0 -68
  145. package/vendor/node-addon-api/doc/env.md +0 -87
  146. package/vendor/node-addon-api/doc/error.md +0 -120
  147. package/vendor/node-addon-api/doc/error_handling.md +0 -266
  148. package/vendor/node-addon-api/doc/escapable_handle_scope.md +0 -80
  149. package/vendor/node-addon-api/doc/external.md +0 -79
  150. package/vendor/node-addon-api/doc/external_buffer.md +0 -18
  151. package/vendor/node-addon-api/doc/finalization.md +0 -153
  152. package/vendor/node-addon-api/doc/function.md +0 -402
  153. package/vendor/node-addon-api/doc/function_reference.md +0 -238
  154. package/vendor/node-addon-api/doc/generator.md +0 -13
  155. package/vendor/node-addon-api/doc/handle_scope.md +0 -77
  156. package/vendor/node-addon-api/doc/hierarchy.md +0 -95
  157. package/vendor/node-addon-api/doc/instance_wrap.md +0 -408
  158. package/vendor/node-addon-api/doc/maybe.md +0 -76
  159. package/vendor/node-addon-api/doc/memory_management.md +0 -27
  160. package/vendor/node-addon-api/doc/name.md +0 -29
  161. package/vendor/node-addon-api/doc/node-gyp.md +0 -82
  162. package/vendor/node-addon-api/doc/number.md +0 -163
  163. package/vendor/node-addon-api/doc/object.md +0 -411
  164. package/vendor/node-addon-api/doc/object_lifetime_management.md +0 -83
  165. package/vendor/node-addon-api/doc/object_reference.md +0 -117
  166. package/vendor/node-addon-api/doc/object_wrap.md +0 -604
  167. package/vendor/node-addon-api/doc/prebuild_tools.md +0 -16
  168. package/vendor/node-addon-api/doc/promises.md +0 -130
  169. package/vendor/node-addon-api/doc/property_descriptor.md +0 -286
  170. package/vendor/node-addon-api/doc/propertylvalue.md +0 -50
  171. package/vendor/node-addon-api/doc/range_error.md +0 -59
  172. package/vendor/node-addon-api/doc/reference.md +0 -113
  173. package/vendor/node-addon-api/doc/setup.md +0 -115
  174. package/vendor/node-addon-api/doc/string.md +0 -93
  175. package/vendor/node-addon-api/doc/symbol.md +0 -61
  176. package/vendor/node-addon-api/doc/syntax_error.md +0 -66
  177. package/vendor/node-addon-api/doc/threadsafe.md +0 -121
  178. package/vendor/node-addon-api/doc/threadsafe_function.md +0 -290
  179. package/vendor/node-addon-api/doc/type_error.md +0 -59
  180. package/vendor/node-addon-api/doc/type_taggable.md +0 -40
  181. package/vendor/node-addon-api/doc/typed_array.md +0 -78
  182. package/vendor/node-addon-api/doc/typed_array_of.md +0 -137
  183. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +0 -306
  184. package/vendor/node-addon-api/doc/value.md +0 -368
  185. package/vendor/node-addon-api/doc/version_management.md +0 -43
  186. package/vendor/node-addon-api/eslint.config.js +0 -5
  187. package/vendor/node-addon-api/except.gypi +0 -25
  188. package/vendor/node-addon-api/index.js +0 -14
  189. package/vendor/node-addon-api/node_addon_api.gyp +0 -42
  190. package/vendor/node-addon-api/node_api.gyp +0 -9
  191. package/vendor/node-addon-api/noexcept.gypi +0 -26
  192. package/vendor/node-addon-api/nothing.c +0 -0
  193. package/vendor/node-addon-api/package-support.json +0 -21
  194. package/vendor/node-addon-api/package.json +0 -480
  195. package/vendor/node-addon-api/release-please-config.json +0 -15
  196. package/vendor/node-addon-api/test/README.md +0 -91
  197. package/vendor/node-addon-api/test/addon.cc +0 -44
  198. package/vendor/node-addon-api/test/addon.js +0 -7
  199. package/vendor/node-addon-api/test/addon_build/index.js +0 -49
  200. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +0 -18
  201. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +0 -63
  202. package/vendor/node-addon-api/test/addon_build/tpl/index.js +0 -9
  203. package/vendor/node-addon-api/test/addon_build/tpl/package.json +0 -11
  204. package/vendor/node-addon-api/test/addon_data.cc +0 -98
  205. package/vendor/node-addon-api/test/addon_data.js +0 -24
  206. package/vendor/node-addon-api/test/array_buffer.cc +0 -243
  207. package/vendor/node-addon-api/test/array_buffer.js +0 -70
  208. package/vendor/node-addon-api/test/async_context.cc +0 -36
  209. package/vendor/node-addon-api/test/async_context.js +0 -122
  210. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +0 -248
  211. package/vendor/node-addon-api/test/async_progress_queue_worker.js +0 -180
  212. package/vendor/node-addon-api/test/async_progress_worker.cc +0 -357
  213. package/vendor/node-addon-api/test/async_progress_worker.js +0 -200
  214. package/vendor/node-addon-api/test/async_worker.cc +0 -341
  215. package/vendor/node-addon-api/test/async_worker.js +0 -264
  216. package/vendor/node-addon-api/test/async_worker_nocallback.js +0 -19
  217. package/vendor/node-addon-api/test/async_worker_persistent.cc +0 -63
  218. package/vendor/node-addon-api/test/async_worker_persistent.js +0 -24
  219. package/vendor/node-addon-api/test/basic_types/array.cc +0 -40
  220. package/vendor/node-addon-api/test/basic_types/array.js +0 -34
  221. package/vendor/node-addon-api/test/basic_types/boolean.cc +0 -40
  222. package/vendor/node-addon-api/test/basic_types/boolean.js +0 -34
  223. package/vendor/node-addon-api/test/basic_types/number.cc +0 -105
  224. package/vendor/node-addon-api/test/basic_types/number.js +0 -115
  225. package/vendor/node-addon-api/test/basic_types/value.cc +0 -177
  226. package/vendor/node-addon-api/test/basic_types/value.js +0 -173
  227. package/vendor/node-addon-api/test/bigint.cc +0 -91
  228. package/vendor/node-addon-api/test/bigint.js +0 -53
  229. package/vendor/node-addon-api/test/binding-swallowexcept.cc +0 -12
  230. package/vendor/node-addon-api/test/binding.cc +0 -200
  231. package/vendor/node-addon-api/test/binding.gyp +0 -160
  232. package/vendor/node-addon-api/test/buffer.cc +0 -185
  233. package/vendor/node-addon-api/test/buffer.h +0 -26
  234. package/vendor/node-addon-api/test/buffer.js +0 -150
  235. package/vendor/node-addon-api/test/buffer_new_or_copy-inl.h +0 -68
  236. package/vendor/node-addon-api/test/buffer_no_external.cc +0 -24
  237. package/vendor/node-addon-api/test/callbackInfo.cc +0 -27
  238. package/vendor/node-addon-api/test/callbackInfo.js +0 -9
  239. package/vendor/node-addon-api/test/callbackscope.cc +0 -39
  240. package/vendor/node-addon-api/test/callbackscope.js +0 -49
  241. package/vendor/node-addon-api/test/child_processes/addon.js +0 -11
  242. package/vendor/node-addon-api/test/child_processes/addon_data.js +0 -24
  243. package/vendor/node-addon-api/test/child_processes/objectwrap_function.js +0 -22
  244. package/vendor/node-addon-api/test/child_processes/threadsafe_function_exception.js +0 -33
  245. package/vendor/node-addon-api/test/child_processes/typed_threadsafe_function_exception.js +0 -19
  246. package/vendor/node-addon-api/test/common/index.js +0 -246
  247. package/vendor/node-addon-api/test/common/test_helper.h +0 -71
  248. package/vendor/node-addon-api/test/dataview/dataview.cc +0 -48
  249. package/vendor/node-addon-api/test/dataview/dataview.js +0 -35
  250. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +0 -115
  251. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +0 -92
  252. package/vendor/node-addon-api/test/date.cc +0 -45
  253. package/vendor/node-addon-api/test/date.js +0 -18
  254. package/vendor/node-addon-api/test/env_cleanup.cc +0 -100
  255. package/vendor/node-addon-api/test/env_cleanup.js +0 -55
  256. package/vendor/node-addon-api/test/env_misc.cc +0 -25
  257. package/vendor/node-addon-api/test/env_misc.js +0 -12
  258. package/vendor/node-addon-api/test/error.cc +0 -436
  259. package/vendor/node-addon-api/test/error.js +0 -111
  260. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +0 -13
  261. package/vendor/node-addon-api/test/error_handling_for_primitives.js +0 -29
  262. package/vendor/node-addon-api/test/error_terminating_environment.js +0 -99
  263. package/vendor/node-addon-api/test/except_all.cc +0 -22
  264. package/vendor/node-addon-api/test/except_all.js +0 -14
  265. package/vendor/node-addon-api/test/exports.js +0 -19
  266. package/vendor/node-addon-api/test/external.cc +0 -85
  267. package/vendor/node-addon-api/test/external.js +0 -85
  268. package/vendor/node-addon-api/test/finalizer_order.cc +0 -152
  269. package/vendor/node-addon-api/test/finalizer_order.js +0 -98
  270. package/vendor/node-addon-api/test/function.cc +0 -338
  271. package/vendor/node-addon-api/test/function.js +0 -137
  272. package/vendor/node-addon-api/test/function_reference.cc +0 -204
  273. package/vendor/node-addon-api/test/function_reference.js +0 -157
  274. package/vendor/node-addon-api/test/globalObject/global_object.cc +0 -61
  275. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +0 -31
  276. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +0 -58
  277. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +0 -40
  278. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +0 -56
  279. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +0 -28
  280. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +0 -46
  281. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +0 -31
  282. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +0 -56
  283. package/vendor/node-addon-api/test/handlescope.cc +0 -86
  284. package/vendor/node-addon-api/test/handlescope.js +0 -16
  285. package/vendor/node-addon-api/test/index.js +0 -160
  286. package/vendor/node-addon-api/test/maybe/check.cc +0 -69
  287. package/vendor/node-addon-api/test/maybe/index.js +0 -50
  288. package/vendor/node-addon-api/test/memory_management.cc +0 -18
  289. package/vendor/node-addon-api/test/memory_management.js +0 -9
  290. package/vendor/node-addon-api/test/movable_callbacks.cc +0 -23
  291. package/vendor/node-addon-api/test/movable_callbacks.js +0 -21
  292. package/vendor/node-addon-api/test/name.cc +0 -110
  293. package/vendor/node-addon-api/test/name.js +0 -59
  294. package/vendor/node-addon-api/test/napi_child.js +0 -14
  295. package/vendor/node-addon-api/test/object/delete_property.cc +0 -38
  296. package/vendor/node-addon-api/test/object/delete_property.js +0 -41
  297. package/vendor/node-addon-api/test/object/finalizer.cc +0 -30
  298. package/vendor/node-addon-api/test/object/finalizer.js +0 -28
  299. package/vendor/node-addon-api/test/object/get_property.cc +0 -34
  300. package/vendor/node-addon-api/test/object/get_property.js +0 -40
  301. package/vendor/node-addon-api/test/object/has_own_property.cc +0 -34
  302. package/vendor/node-addon-api/test/object/has_own_property.js +0 -34
  303. package/vendor/node-addon-api/test/object/has_property.cc +0 -38
  304. package/vendor/node-addon-api/test/object/has_property.js +0 -37
  305. package/vendor/node-addon-api/test/object/object.cc +0 -430
  306. package/vendor/node-addon-api/test/object/object.js +0 -218
  307. package/vendor/node-addon-api/test/object/object_deprecated.cc +0 -70
  308. package/vendor/node-addon-api/test/object/object_deprecated.js +0 -42
  309. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +0 -25
  310. package/vendor/node-addon-api/test/object/object_freeze_seal.js +0 -61
  311. package/vendor/node-addon-api/test/object/set_property.cc +0 -45
  312. package/vendor/node-addon-api/test/object/set_property.js +0 -30
  313. package/vendor/node-addon-api/test/object/subscript_operator.cc +0 -58
  314. package/vendor/node-addon-api/test/object/subscript_operator.js +0 -17
  315. package/vendor/node-addon-api/test/object_reference.cc +0 -417
  316. package/vendor/node-addon-api/test/object_reference.js +0 -262
  317. package/vendor/node-addon-api/test/objectwrap.cc +0 -295
  318. package/vendor/node-addon-api/test/objectwrap.js +0 -309
  319. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +0 -26
  320. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +0 -18
  321. package/vendor/node-addon-api/test/objectwrap_function.cc +0 -43
  322. package/vendor/node-addon-api/test/objectwrap_function.js +0 -6
  323. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +0 -30
  324. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +0 -13
  325. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +0 -45
  326. package/vendor/node-addon-api/test/objectwrap_removewrap.js +0 -32
  327. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +0 -20
  328. package/vendor/node-addon-api/test/promise.cc +0 -111
  329. package/vendor/node-addon-api/test/promise.js +0 -43
  330. package/vendor/node-addon-api/test/reference.cc +0 -78
  331. package/vendor/node-addon-api/test/reference.js +0 -20
  332. package/vendor/node-addon-api/test/require_basic_finalizers/index.js +0 -38
  333. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/addon.cc +0 -12
  334. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/binding.gyp +0 -48
  335. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/index.js +0 -3
  336. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/package.json +0 -11
  337. package/vendor/node-addon-api/test/run_script.cc +0 -56
  338. package/vendor/node-addon-api/test/run_script.js +0 -45
  339. package/vendor/node-addon-api/test/symbol.cc +0 -79
  340. package/vendor/node-addon-api/test/symbol.js +0 -66
  341. package/vendor/node-addon-api/test/testUtil.js +0 -54
  342. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +0 -230
  343. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +0 -225
  344. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +0 -155
  345. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +0 -13
  346. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.cc +0 -50
  347. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.js +0 -20
  348. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +0 -125
  349. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +0 -14
  350. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +0 -27
  351. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +0 -7
  352. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +0 -240
  353. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +0 -59
  354. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +0 -55
  355. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +0 -98
  356. package/vendor/node-addon-api/test/thunking_manual.cc +0 -127
  357. package/vendor/node-addon-api/test/thunking_manual.js +0 -16
  358. package/vendor/node-addon-api/test/type_taggable.cc +0 -66
  359. package/vendor/node-addon-api/test/type_taggable.js +0 -59
  360. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +0 -215
  361. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +0 -188
  362. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +0 -120
  363. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +0 -14
  364. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.cc +0 -39
  365. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.js +0 -13
  366. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +0 -127
  367. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +0 -14
  368. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +0 -32
  369. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +0 -8
  370. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +0 -237
  371. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +0 -59
  372. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +0 -67
  373. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +0 -98
  374. package/vendor/node-addon-api/test/typedarray-bigint.js +0 -58
  375. package/vendor/node-addon-api/test/typedarray.cc +0 -413
  376. package/vendor/node-addon-api/test/typedarray.js +0 -103
  377. package/vendor/node-addon-api/test/value_type_cast.cc +0 -60
  378. package/vendor/node-addon-api/test/value_type_cast.js +0 -106
  379. package/vendor/node-addon-api/test/version_management.cc +0 -28
  380. package/vendor/node-addon-api/test/version_management.js +0 -29
  381. package/vendor/node-addon-api/tools/README.md +0 -73
  382. package/vendor/node-addon-api/tools/check-napi.js +0 -99
  383. package/vendor/node-addon-api/tools/clang-format.js +0 -71
  384. package/vendor/node-addon-api/tools/conversion.js +0 -301
  385. package/vendor/node-addon-api/unit-test/README.md +0 -28
  386. package/vendor/node-addon-api/unit-test/binding-file-template.js +0 -39
  387. package/vendor/node-addon-api/unit-test/binding.gyp +0 -72
  388. package/vendor/node-addon-api/unit-test/exceptions.js +0 -32
  389. package/vendor/node-addon-api/unit-test/generate-binding-cc.js +0 -61
  390. package/vendor/node-addon-api/unit-test/injectTestParams.js +0 -101
  391. package/vendor/node-addon-api/unit-test/listOfTestModules.js +0 -88
  392. package/vendor/node-addon-api/unit-test/matchModules.js +0 -65
  393. package/vendor/node-addon-api/unit-test/setup.js +0 -13
  394. package/vendor/node-addon-api/unit-test/spawnTask.js +0 -26
  395. package/vendor/node-addon-api/unit-test/test.js +0 -30
  396. package/vendor/node-api-headers/CHANGELOG.md +0 -130
  397. package/vendor/node-api-headers/CODE_OF_CONDUCT.md +0 -4
  398. package/vendor/node-api-headers/CONTRIBUTING.md +0 -32
  399. package/vendor/node-api-headers/CREATING_A_RELEASE.md +0 -68
  400. package/vendor/node-api-headers/index.js +0 -17
  401. package/vendor/node-api-headers/lib/clang-utils.js +0 -50
  402. package/vendor/node-api-headers/lib/parse-utils.js +0 -92
  403. package/vendor/node-api-headers/package.json +0 -59
  404. package/vendor/node-api-headers/release-please-config.json +0 -12
  405. package/vendor/node-api-headers/scripts/update-headers.js +0 -246
  406. package/vendor/node-api-headers/scripts/write-symbols.js +0 -154
  407. package/vendor/node-api-headers/scripts/write-win32-def.js +0 -52
  408. package/vendor/node-api-headers/symbols.js +0 -257
  409. package/vendor/node-api-headers/test/parse-utils.js +0 -21
  410. /package/doc/{pages/benchmarks.md → benchmarks.md} +0 -0
  411. /package/doc/{pages/callbacks.md → callbacks.md} +0 -0
  412. /package/doc/{pages/contribute.md → contribute.md} +0 -0
  413. /package/doc/{pages/functions.md → functions.md} +0 -0
  414. /package/doc/{pages/index.md → index.md} +0 -0
  415. /package/doc/{pages/input.md → input.md} +0 -0
  416. /package/doc/{pages/migration.md → migration.md} +0 -0
  417. /package/doc/{pages/misc.md → misc.md} +0 -0
  418. /package/doc/{pages/output.md → output.md} +0 -0
  419. /package/doc/{pages/packaging.md → packaging.md} +0 -0
  420. /package/doc/{pages/platforms.md → platforms.md} +0 -0
  421. /package/doc/{pages/pointers.md → pointers.md} +0 -0
  422. /package/doc/{pages/start.md → start.md} +0 -0
  423. /package/doc/{pages/unions.md → unions.md} +0 -0
  424. /package/doc/{pages/variables.md → variables.md} +0 -0
  425. /package/src/koffi/src/{abi/loong64.cc → abi_loong64.cc} +0 -0
@@ -1,237 +0,0 @@
1
- #include <condition_variable>
2
- #include <cstdlib>
3
- #include <mutex>
4
- #include <thread>
5
- #include "napi.h"
6
-
7
- #if (NAPI_VERSION > 3)
8
-
9
- using namespace Napi;
10
-
11
- namespace {
12
-
13
- struct TestData {
14
- TestData(Promise::Deferred&& deferred) : deferred(std::move(deferred)){};
15
-
16
- // Native Promise returned to JavaScript
17
- Promise::Deferred deferred;
18
-
19
- // List of threads created for test. This list only ever accessed via main
20
- // thread.
21
- std::vector<std::thread> threads = {};
22
-
23
- // These variables are only accessed from the main thread.
24
- bool mainWantsRelease = false;
25
- size_t expected_calls = 0;
26
-
27
- static void CallJs(Napi::Env env,
28
- Function callback,
29
- TestData* testData,
30
- double* data) {
31
- // This lambda runs on the main thread so it's OK to access the variables
32
- // `expected_calls` and `mainWantsRelease`.
33
- testData->expected_calls--;
34
- if (testData->expected_calls == 0 && testData->mainWantsRelease)
35
- testData->tsfn.Release();
36
- callback.Call({Number::New(env, *data)});
37
- delete data;
38
- }
39
-
40
- TypedThreadSafeFunction<TestData, double, CallJs> tsfn;
41
- };
42
-
43
- using TSFN = TypedThreadSafeFunction<TestData, double, TestData::CallJs>;
44
-
45
- void FinalizerCallback(Napi::Env env, void*, TestData* finalizeData) {
46
- for (size_t i = 0; i < finalizeData->threads.size(); ++i) {
47
- finalizeData->threads[i].join();
48
- }
49
- finalizeData->deferred.Resolve(Boolean::New(env, true));
50
- delete finalizeData;
51
- }
52
-
53
- /**
54
- * See threadsafe_function_sum.js for descriptions of the tests in this file
55
- */
56
-
57
- void entryWithTSFN(TSFN tsfn, int threadId) {
58
- std::this_thread::sleep_for(std::chrono::milliseconds(std::rand() % 100 + 1));
59
- tsfn.BlockingCall(new double(threadId));
60
- tsfn.Release();
61
- }
62
-
63
- static Value TestWithTSFN(const CallbackInfo& info) {
64
- int threadCount = info[0].As<Number>().Int32Value();
65
- Function cb = info[1].As<Function>();
66
-
67
- // We pass the test data to the Finalizer for cleanup. The finalizer is
68
- // responsible for deleting this data as well.
69
- TestData* testData = new TestData(Promise::Deferred::New(info.Env()));
70
-
71
- TSFN tsfn =
72
- TSFN::New(info.Env(),
73
- cb,
74
- "Test",
75
- 0,
76
- threadCount,
77
- testData,
78
- std::function<decltype(FinalizerCallback)>(FinalizerCallback),
79
- testData);
80
-
81
- for (int i = 0; i < threadCount; ++i) {
82
- // A copy of the ThreadSafeFunction will go to the thread entry point
83
- testData->threads.push_back(std::thread(entryWithTSFN, tsfn, i));
84
- }
85
-
86
- return testData->deferred.Promise();
87
- }
88
-
89
- // Task instance created for each new std::thread
90
- class DelayedTSFNTask {
91
- public:
92
- // Each instance has its own tsfn
93
- TSFN tsfn;
94
-
95
- // Thread-safety
96
- std::mutex mtx;
97
- std::condition_variable cv;
98
-
99
- // Entry point for std::thread
100
- void entryDelayedTSFN(int threadId) {
101
- std::unique_lock<std::mutex> lk(mtx);
102
- cv.wait(lk, [this] { return this->tsfn != nullptr; });
103
- tsfn.BlockingCall(new double(threadId));
104
- tsfn.Release();
105
- };
106
- };
107
-
108
- struct TestDataDelayed : TestData {
109
- TestDataDelayed(Promise::Deferred&& deferred)
110
- : TestData(std::move(deferred)){};
111
- ~TestDataDelayed() { taskInsts.clear(); };
112
-
113
- // List of DelayedTSFNThread instances
114
- std::vector<std::unique_ptr<DelayedTSFNTask>> taskInsts = {};
115
- };
116
-
117
- void FinalizerCallbackDelayed(Napi::Env env,
118
- TestDataDelayed* finalizeData,
119
- TestData*) {
120
- for (size_t i = 0; i < finalizeData->threads.size(); ++i) {
121
- finalizeData->threads[i].join();
122
- }
123
- finalizeData->deferred.Resolve(Boolean::New(env, true));
124
- delete finalizeData;
125
- }
126
-
127
- static Value TestDelayedTSFN(const CallbackInfo& info) {
128
- int threadCount = info[0].As<Number>().Int32Value();
129
- Function cb = info[1].As<Function>();
130
-
131
- TestDataDelayed* testData =
132
- new TestDataDelayed(Promise::Deferred::New(info.Env()));
133
-
134
- testData->tsfn = TSFN::New(info.Env(),
135
- cb,
136
- "Test",
137
- 0,
138
- threadCount,
139
- testData,
140
- std::function<decltype(FinalizerCallbackDelayed)>(
141
- FinalizerCallbackDelayed),
142
- testData);
143
-
144
- for (int i = 0; i < threadCount; ++i) {
145
- testData->taskInsts.push_back(
146
- std::unique_ptr<DelayedTSFNTask>(new DelayedTSFNTask()));
147
- testData->threads.push_back(std::thread(&DelayedTSFNTask::entryDelayedTSFN,
148
- testData->taskInsts.back().get(),
149
- i));
150
- }
151
- std::this_thread::sleep_for(std::chrono::milliseconds(std::rand() % 100 + 1));
152
-
153
- for (auto& task : testData->taskInsts) {
154
- std::lock_guard<std::mutex> lk(task->mtx);
155
- task->tsfn = testData->tsfn;
156
- task->cv.notify_all();
157
- }
158
-
159
- return testData->deferred.Promise();
160
- }
161
-
162
- void AcquireFinalizerCallback(Napi::Env env,
163
- TestData* finalizeData,
164
- TestData* context) {
165
- (void)context;
166
- for (size_t i = 0; i < finalizeData->threads.size(); ++i) {
167
- finalizeData->threads[i].join();
168
- }
169
- finalizeData->deferred.Resolve(Boolean::New(env, true));
170
- delete finalizeData;
171
- }
172
-
173
- void entryAcquire(TSFN tsfn, int threadId) {
174
- tsfn.Acquire();
175
- std::this_thread::sleep_for(std::chrono::milliseconds(std::rand() % 100 + 1));
176
- tsfn.BlockingCall(new double(threadId));
177
- tsfn.Release();
178
- }
179
-
180
- static Value CreateThread(const CallbackInfo& info) {
181
- TestData* testData = static_cast<TestData*>(info.Data());
182
- // Counting expected calls like this only works because on the JS side this
183
- // binding is called from a synchronous loop. This means the main loop has no
184
- // chance to run the tsfn JS callback before we've counted how many threads
185
- // the JS intends to create.
186
- testData->expected_calls++;
187
- TSFN tsfn = testData->tsfn;
188
- int threadId = testData->threads.size();
189
- // A copy of the ThreadSafeFunction will go to the thread entry point
190
- testData->threads.push_back(std::thread(entryAcquire, tsfn, threadId));
191
- return Number::New(info.Env(), threadId);
192
- }
193
-
194
- static Value StopThreads(const CallbackInfo& info) {
195
- TestData* testData = static_cast<TestData*>(info.Data());
196
- testData->mainWantsRelease = true;
197
- return info.Env().Undefined();
198
- }
199
-
200
- static Value TestAcquire(const CallbackInfo& info) {
201
- Function cb = info[0].As<Function>();
202
- Napi::Env env = info.Env();
203
-
204
- // We pass the test data to the Finalizer for cleanup. The finalizer is
205
- // responsible for deleting this data as well.
206
- TestData* testData = new TestData(Promise::Deferred::New(info.Env()));
207
-
208
- testData->tsfn = TSFN::New(env,
209
- cb,
210
- "Test",
211
- 0,
212
- 1,
213
- testData,
214
- std::function<decltype(AcquireFinalizerCallback)>(
215
- AcquireFinalizerCallback),
216
- testData);
217
-
218
- Object result = Object::New(env);
219
- result["createThread"] =
220
- Function::New(env, CreateThread, "createThread", testData);
221
- result["stopThreads"] =
222
- Function::New(env, StopThreads, "stopThreads", testData);
223
- result["promise"] = testData->deferred.Promise();
224
-
225
- return result;
226
- }
227
- } // namespace
228
-
229
- Object InitTypedThreadSafeFunctionSum(Env env) {
230
- Object exports = Object::New(env);
231
- exports["testDelayedTSFN"] = Function::New(env, TestDelayedTSFN);
232
- exports["testWithTSFN"] = Function::New(env, TestWithTSFN);
233
- exports["testAcquire"] = Function::New(env, TestAcquire);
234
- return exports;
235
- }
236
-
237
- #endif
@@ -1,59 +0,0 @@
1
- 'use strict';
2
- const assert = require('assert');
3
-
4
- /**
5
- *
6
- * ThreadSafeFunction Tests: Thread Id Sums
7
- *
8
- * Every native C++ function that utilizes the TSFN will call the registered
9
- * callback with the thread id. Passing Array.prototype.push with a bound array
10
- * will push the thread id to the array. Therefore, starting `N` threads, we
11
- * will expect the sum of all elements in the array to be `(N-1) * (N) / 2` (as
12
- * thread IDs are 0-based)
13
- *
14
- * We check different methods of passing a ThreadSafeFunction around multiple
15
- * threads:
16
- * - `testWithTSFN`: The main thread creates the TSFN. Then, it creates
17
- * threads, passing the TSFN at thread construction. The number of threads is
18
- * static (known at TSFN creation).
19
- * - `testDelayedTSFN`: The main thread creates threads, passing a promise to a
20
- * TSFN at construction. Then, it creates the TSFN, and resolves each
21
- * threads' promise. The number of threads is static.
22
- * - `testAcquire`: The native binding returns a function to start a new. A
23
- * call to this function will return `false` once `N` calls have been made.
24
- * Each thread will acquire its own use of the TSFN, call it, and then
25
- * release.
26
- */
27
-
28
- const THREAD_COUNT = 5;
29
- const EXPECTED_SUM = (THREAD_COUNT - 1) * (THREAD_COUNT) / 2;
30
-
31
- module.exports = require('../common').runTest(test);
32
-
33
- /** @param {number[]} N */
34
- const sum = (N) => N.reduce((sum, n) => sum + n, 0);
35
-
36
- function test (binding) {
37
- async function check (bindingFunction) {
38
- const calls = [];
39
- const result = await bindingFunction(THREAD_COUNT, Array.prototype.push.bind(calls));
40
- assert.ok(result);
41
- assert.equal(sum(calls), EXPECTED_SUM);
42
- }
43
-
44
- async function checkAcquire () {
45
- const calls = [];
46
- const { promise, createThread, stopThreads } = binding.typed_threadsafe_function_sum.testAcquire(Array.prototype.push.bind(calls));
47
- for (let i = 0; i < THREAD_COUNT; i++) {
48
- createThread();
49
- }
50
- stopThreads();
51
- const result = await promise;
52
- assert.ok(result);
53
- assert.equal(sum(calls), EXPECTED_SUM);
54
- }
55
-
56
- return check(binding.typed_threadsafe_function_sum.testDelayedTSFN)
57
- .then(() => check(binding.typed_threadsafe_function_sum.testWithTSFN))
58
- .then(() => checkAcquire());
59
- }
@@ -1,67 +0,0 @@
1
- #include "napi.h"
2
- #include "test_helper.h"
3
-
4
- #if (NAPI_VERSION > 3)
5
-
6
- using namespace Napi;
7
-
8
- namespace {
9
-
10
- using TSFN = TypedThreadSafeFunction<>;
11
- using ContextType = std::nullptr_t;
12
- using FinalizerDataType = void;
13
- static Value TestUnref(const CallbackInfo& info) {
14
- Napi::Env env = info.Env();
15
- Object global = env.Global();
16
- Object resource = info[0].As<Object>();
17
- Function cb = info[1].As<Function>();
18
- Function setTimeout = MaybeUnwrap(global.Get("setTimeout")).As<Function>();
19
- TSFN* tsfn = new TSFN;
20
-
21
- *tsfn = TSFN::New(
22
- info.Env(),
23
- cb,
24
- resource,
25
- "Test",
26
- 1,
27
- 1,
28
- nullptr,
29
- [tsfn](Napi::Env /* env */, FinalizerDataType*, ContextType*) {
30
- delete tsfn;
31
- },
32
- static_cast<FinalizerDataType*>(nullptr));
33
-
34
- tsfn->BlockingCall();
35
- tsfn->Ref(info.Env());
36
-
37
- setTimeout.Call(
38
- global,
39
- {Function::New(
40
- env, [tsfn](const CallbackInfo& info) { tsfn->Unref(info.Env()); }),
41
- Number::New(env, 100)});
42
-
43
- return info.Env().Undefined();
44
- }
45
-
46
- static Value TestRef(const CallbackInfo& info) {
47
- Function cb = info[1].As<Function>();
48
-
49
- auto tsfn = TSFN::New(info.Env(), cb, "testRes", 1, 1, nullptr);
50
-
51
- tsfn.BlockingCall();
52
- tsfn.Unref(info.Env());
53
- tsfn.Ref(info.Env());
54
-
55
- return info.Env().Undefined();
56
- }
57
-
58
- } // namespace
59
-
60
- Object InitTypedThreadSafeFunctionUnref(Env env) {
61
- Object exports = Object::New(env);
62
- exports["testUnref"] = Function::New(env, TestUnref);
63
- exports["testRef"] = Function::New(env, TestRef);
64
- return exports;
65
- }
66
-
67
- #endif
@@ -1,98 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('assert');
4
-
5
- const isMainProcess = process.argv[1] !== __filename;
6
-
7
- /**
8
- * In order to test that the event loop exits even with an active TSFN, we need
9
- * to spawn a new process for the test.
10
- * - Main process: spawns new node instance, executing this script
11
- * - Child process: creates TSFN. Native module Unref's via setTimeout after some time but does NOT call Release.
12
- *
13
- * Main process should expect child process to exit.
14
- *
15
- * We also added a new test case for `Ref`. The idea being, if a TSFN is active, the event loop that it belongs to should not exit
16
- * Our setup is similar to the test for the `Unref` case, with the difference being now we are expecting the child process to hang
17
- */
18
-
19
- if (isMainProcess) {
20
- module.exports = require('../common').runTestWithBindingPath(test);
21
- } else {
22
- const isTestingRef = (process.argv[3] === 'true');
23
-
24
- if (isTestingRef) {
25
- execTSFNRefTest(process.argv[2]);
26
- } else {
27
- execTSFNUnrefTest(process.argv[2]);
28
- }
29
- }
30
-
31
- function testUnRefCallback (resolve, reject, bindingFile) {
32
- const child = require('../napi_child').spawn(process.argv[0], [
33
- '--expose-gc', __filename, bindingFile, false
34
- ], { stdio: 'inherit' });
35
-
36
- let timeout = setTimeout(function () {
37
- child.kill();
38
- timeout = 0;
39
- reject(new Error('Expected child to die'));
40
- }, 5000);
41
-
42
- child.on('error', (err) => {
43
- clearTimeout(timeout);
44
- timeout = 0;
45
- reject(new Error(err));
46
- });
47
-
48
- child.on('close', (code) => {
49
- if (timeout) clearTimeout(timeout);
50
- assert.strictEqual(code, 0, 'Expected return value 0');
51
- resolve();
52
- });
53
- }
54
-
55
- function testRefCallback (resolve, reject, bindingFile) {
56
- const child = require('../napi_child').spawn(process.argv[0], [
57
- '--expose-gc', __filename, bindingFile, true
58
- ], { stdio: 'inherit' });
59
-
60
- let timeout = setTimeout(function () {
61
- child.kill();
62
- timeout = 0;
63
- resolve();
64
- }, 1000);
65
-
66
- child.on('error', (err) => {
67
- clearTimeout(timeout);
68
- timeout = 0;
69
- reject(new Error(err));
70
- });
71
-
72
- child.on('close', (code) => {
73
- if (timeout) clearTimeout(timeout);
74
-
75
- reject(new Error('We expected Child to hang'));
76
- });
77
- }
78
-
79
- function test (bindingFile) {
80
- // Main process
81
- return new Promise((resolve, reject) => {
82
- testUnRefCallback(resolve, reject, bindingFile);
83
- }).then(() => {
84
- return new Promise((resolve, reject) => {
85
- testRefCallback(resolve, reject, bindingFile);
86
- });
87
- });
88
- }
89
-
90
- function execTSFNUnrefTest (bindingFile) {
91
- const binding = require(bindingFile);
92
- binding.typed_threadsafe_function_unref.testUnref({}, () => { });
93
- }
94
-
95
- function execTSFNRefTest (bindingFile) {
96
- const binding = require(bindingFile);
97
- binding.typed_threadsafe_function_unref.testRef({}, () => { });
98
- }
@@ -1,58 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('assert');
4
-
5
- module.exports = require('./common').runTest(test);
6
-
7
- function test (binding) {
8
- [
9
- ['bigint64', BigInt64Array],
10
- ['biguint64', BigUint64Array]
11
- ].forEach(([type, Constructor]) => {
12
- try {
13
- const length = 4;
14
- const t = binding.typedarray.createTypedArray(type, length);
15
- assert.ok(t instanceof Constructor);
16
- assert.strictEqual(binding.typedarray.getTypedArrayType(t), type);
17
- assert.strictEqual(binding.typedarray.getTypedArrayLength(t), length);
18
-
19
- t[3] = 11n;
20
- assert.strictEqual(binding.typedarray.getTypedArrayElement(t, 3), 11n);
21
- binding.typedarray.setTypedArrayElement(t, 3, 22n);
22
- assert.strictEqual(binding.typedarray.getTypedArrayElement(t, 3), 22n);
23
- assert.strictEqual(t[3], 22n);
24
-
25
- const b = binding.typedarray.getTypedArrayBuffer(t);
26
- assert.ok(b instanceof ArrayBuffer);
27
- } catch (e) {
28
- console.log(type, Constructor);
29
- throw e;
30
- }
31
-
32
- try {
33
- const length = 4;
34
- const offset = 8;
35
- const b = new ArrayBuffer(offset + 64 * 4);
36
-
37
- const t = binding.typedarray.createTypedArray(type, length, b, offset);
38
- assert.ok(t instanceof Constructor);
39
- assert.strictEqual(binding.typedarray.getTypedArrayType(t), type);
40
- assert.strictEqual(binding.typedarray.getTypedArrayLength(t), length);
41
-
42
- t[3] = 11n;
43
- assert.strictEqual(binding.typedarray.getTypedArrayElement(t, 3), 11n);
44
- binding.typedarray.setTypedArrayElement(t, 3, 22n);
45
- assert.strictEqual(binding.typedarray.getTypedArrayElement(t, 3), 22n);
46
- assert.strictEqual(t[3], 22n);
47
-
48
- assert.strictEqual(binding.typedarray.getTypedArrayBuffer(t), b);
49
- } catch (e) {
50
- console.log(type, Constructor);
51
- throw e;
52
- }
53
- });
54
-
55
- assert.throws(() => {
56
- binding.typedarray.createInvalidTypedArray();
57
- }, /Invalid (pointer passed as )?argument/);
58
- }