koffi 0.9.2 → 0.9.5

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 (416) hide show
  1. package/CMakeLists.txt +60 -60
  2. package/README.md +163 -153
  3. package/package.json +19 -18
  4. package/src/call.hh +27 -27
  5. package/src/call_arm64.cc +482 -482
  6. package/src/call_arm64_fwd.S +115 -115
  7. package/src/call_x64_sysv.cc +477 -477
  8. package/src/call_x64_sysv_fwd.S +131 -131
  9. package/src/call_x64_win.cc +243 -243
  10. package/src/call_x64_win_fwd.asm +105 -105
  11. package/src/call_x86.cc +259 -259
  12. package/src/call_x86_fwd.S +48 -48
  13. package/src/call_x86_fwd.asm +50 -50
  14. package/src/ffi.cc +504 -504
  15. package/src/ffi.hh +135 -135
  16. package/src/util.cc +296 -296
  17. package/src/util.hh +80 -80
  18. package/vendor/dragonbox/CMakeLists.txt +122 -122
  19. package/vendor/dragonbox/LICENSE-Apache2-LLVM +218 -218
  20. package/vendor/dragonbox/LICENSE-Boost +23 -23
  21. package/vendor/dragonbox/README.md +277 -277
  22. package/vendor/dragonbox/cmake/dragonboxConfig.cmake +1 -1
  23. package/vendor/dragonbox/include/dragonbox/dragonbox.h +2670 -2670
  24. package/vendor/dragonbox/include/dragonbox/dragonbox_to_chars.h +108 -108
  25. package/vendor/dragonbox/other_files/unknown_win64_vc2019.html +539 -539
  26. package/vendor/dragonbox/source/dragonbox_to_chars.cpp +303 -303
  27. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/CMakeLists.txt +23 -23
  28. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.cpp +238 -238
  29. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.h +95 -95
  30. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/grisu_exact.h +2666 -2666
  31. package/vendor/dragonbox/subproject/3rdparty/ryu/CMakeLists.txt +16 -16
  32. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/common.h +114 -114
  33. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s.c +509 -509
  34. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_full_table.h +367 -367
  35. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_intrinsics.h +357 -357
  36. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/digit_table.h +35 -35
  37. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s.c +345 -345
  38. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_full_table.h +55 -55
  39. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_intrinsics.h +128 -128
  40. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/ryu.h +46 -46
  41. package/vendor/dragonbox/subproject/3rdparty/schubfach/CMakeLists.txt +21 -21
  42. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.cc +699 -699
  43. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.h +31 -31
  44. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.cc +1354 -1354
  45. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.h +31 -31
  46. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/example_shaded_plots.m +68 -68
  47. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/license.txt +25 -25
  48. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution.m +92 -92
  49. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution_prctile.m +121 -121
  50. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_histogram_shaded.m +99 -99
  51. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_shaded.m +93 -93
  52. package/vendor/dragonbox/subproject/benchmark/CMakeLists.txt +64 -64
  53. package/vendor/dragonbox/subproject/benchmark/include/benchmark.h +40 -40
  54. package/vendor/dragonbox/subproject/benchmark/matlab/plot_benchmarks.m +21 -21
  55. package/vendor/dragonbox/subproject/benchmark/matlab/plot_digit_benchmark.m +78 -78
  56. package/vendor/dragonbox/subproject/benchmark/matlab/plot_uniform_benchmark.m +95 -95
  57. package/vendor/dragonbox/subproject/benchmark/source/benchmark.cpp +237 -237
  58. package/vendor/dragonbox/subproject/benchmark/source/dragonbox.cpp +30 -30
  59. package/vendor/dragonbox/subproject/benchmark/source/grisu_exact.cpp +36 -36
  60. package/vendor/dragonbox/subproject/benchmark/source/ryu.cpp +27 -27
  61. package/vendor/dragonbox/subproject/benchmark/source/schubfach.cpp +31 -31
  62. package/vendor/dragonbox/subproject/common/CMakeLists.txt +41 -41
  63. package/vendor/dragonbox/subproject/common/include/best_rational_approx.h +96 -96
  64. package/vendor/dragonbox/subproject/common/include/big_uint.h +217 -217
  65. package/vendor/dragonbox/subproject/common/include/continued_fractions.h +173 -173
  66. package/vendor/dragonbox/subproject/common/include/good_rational_approx.h +266 -266
  67. package/vendor/dragonbox/subproject/common/include/random_float.h +182 -182
  68. package/vendor/dragonbox/subproject/common/include/rational_continued_fractions.h +56 -56
  69. package/vendor/dragonbox/subproject/common/source/big_uint.cpp +601 -601
  70. package/vendor/dragonbox/subproject/meta/CMakeLists.txt +40 -40
  71. package/vendor/dragonbox/subproject/meta/results/binary32_generated_cache.txt +81 -81
  72. package/vendor/dragonbox/subproject/meta/results/binary64_compressed_cache_error_table.txt +9 -9
  73. package/vendor/dragonbox/subproject/meta/results/binary64_generated_cache.txt +622 -622
  74. package/vendor/dragonbox/subproject/meta/source/generate_cache.cpp +126 -126
  75. package/vendor/dragonbox/subproject/meta/source/live_test.cpp +81 -81
  76. package/vendor/dragonbox/subproject/meta/source/perf_test.cpp +104 -104
  77. package/vendor/dragonbox/subproject/meta/source/sandbox.cpp +20 -20
  78. package/vendor/dragonbox/subproject/test/CMakeLists.txt +69 -69
  79. package/vendor/dragonbox/subproject/test/results/binary32.csv +255 -255
  80. package/vendor/dragonbox/subproject/test/results/binary64.csv +2047 -2047
  81. package/vendor/dragonbox/subproject/test/results/plot_required_bits.m +17 -17
  82. package/vendor/dragonbox/subproject/test/source/test_all_shorter_interval_cases.cpp +88 -88
  83. package/vendor/dragonbox/subproject/test/source/uniform_random_test.cpp +95 -95
  84. package/vendor/dragonbox/subproject/test/source/verify_cache_precision.cpp +337 -337
  85. package/vendor/dragonbox/subproject/test/source/verify_compressed_cache.cpp +154 -154
  86. package/vendor/dragonbox/subproject/test/source/verify_fast_multiplication.cpp +168 -168
  87. package/vendor/dragonbox/subproject/test/source/verify_log_computation.cpp +251 -251
  88. package/vendor/dragonbox/subproject/test/source/verify_magic_division.cpp +113 -113
  89. package/vendor/libcc/libcc.cc +7651 -7651
  90. package/vendor/libcc/libcc.hh +4312 -4312
  91. package/vendor/node-addon-api/CHANGELOG.md +859 -859
  92. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +4 -4
  93. package/vendor/node-addon-api/CONTRIBUTING.md +93 -93
  94. package/vendor/node-addon-api/LICENSE.md +12 -12
  95. package/vendor/node-addon-api/README.md +293 -293
  96. package/vendor/node-addon-api/appveyor.yml +37 -37
  97. package/vendor/node-addon-api/benchmark/README.md +47 -47
  98. package/vendor/node-addon-api/benchmark/binding.gyp +25 -25
  99. package/vendor/node-addon-api/benchmark/function_args.cc +217 -217
  100. package/vendor/node-addon-api/benchmark/function_args.js +60 -60
  101. package/vendor/node-addon-api/benchmark/index.js +34 -34
  102. package/vendor/node-addon-api/benchmark/property_descriptor.cc +91 -91
  103. package/vendor/node-addon-api/benchmark/property_descriptor.js +37 -37
  104. package/vendor/node-addon-api/common.gypi +21 -21
  105. package/vendor/node-addon-api/doc/addon.md +163 -163
  106. package/vendor/node-addon-api/doc/array.md +81 -81
  107. package/vendor/node-addon-api/doc/array_buffer.md +155 -155
  108. package/vendor/node-addon-api/doc/async_context.md +86 -86
  109. package/vendor/node-addon-api/doc/async_operations.md +31 -31
  110. package/vendor/node-addon-api/doc/async_worker.md +427 -427
  111. package/vendor/node-addon-api/doc/async_worker_variants.md +557 -557
  112. package/vendor/node-addon-api/doc/bigint.md +97 -97
  113. package/vendor/node-addon-api/doc/boolean.md +68 -68
  114. package/vendor/node-addon-api/doc/buffer.md +150 -150
  115. package/vendor/node-addon-api/doc/callback_scope.md +54 -54
  116. package/vendor/node-addon-api/doc/callbackinfo.md +97 -97
  117. package/vendor/node-addon-api/doc/checker-tool.md +32 -32
  118. package/vendor/node-addon-api/doc/class_property_descriptor.md +115 -115
  119. package/vendor/node-addon-api/doc/cmake-js.md +68 -68
  120. package/vendor/node-addon-api/doc/conversion-tool.md +27 -27
  121. package/vendor/node-addon-api/doc/creating_a_release.md +62 -62
  122. package/vendor/node-addon-api/doc/dataview.md +248 -248
  123. package/vendor/node-addon-api/doc/date.md +68 -68
  124. package/vendor/node-addon-api/doc/env.md +196 -196
  125. package/vendor/node-addon-api/doc/error.md +120 -120
  126. package/vendor/node-addon-api/doc/error_handling.md +254 -254
  127. package/vendor/node-addon-api/doc/escapable_handle_scope.md +80 -80
  128. package/vendor/node-addon-api/doc/external.md +63 -63
  129. package/vendor/node-addon-api/doc/function.md +402 -402
  130. package/vendor/node-addon-api/doc/function_reference.md +238 -238
  131. package/vendor/node-addon-api/doc/generator.md +13 -13
  132. package/vendor/node-addon-api/doc/handle_scope.md +63 -63
  133. package/vendor/node-addon-api/doc/hierarchy.md +91 -91
  134. package/vendor/node-addon-api/doc/instance_wrap.md +408 -408
  135. package/vendor/node-addon-api/doc/maybe.md +76 -76
  136. package/vendor/node-addon-api/doc/memory_management.md +27 -27
  137. package/vendor/node-addon-api/doc/name.md +29 -29
  138. package/vendor/node-addon-api/doc/node-gyp.md +82 -82
  139. package/vendor/node-addon-api/doc/number.md +163 -163
  140. package/vendor/node-addon-api/doc/object.md +432 -432
  141. package/vendor/node-addon-api/doc/object_lifetime_management.md +83 -83
  142. package/vendor/node-addon-api/doc/object_reference.md +117 -117
  143. package/vendor/node-addon-api/doc/object_wrap.md +561 -561
  144. package/vendor/node-addon-api/doc/prebuild_tools.md +16 -16
  145. package/vendor/node-addon-api/doc/promises.md +79 -79
  146. package/vendor/node-addon-api/doc/property_descriptor.md +286 -286
  147. package/vendor/node-addon-api/doc/propertylvalue.md +50 -50
  148. package/vendor/node-addon-api/doc/range_error.md +59 -59
  149. package/vendor/node-addon-api/doc/reference.md +113 -113
  150. package/vendor/node-addon-api/doc/setup.md +110 -110
  151. package/vendor/node-addon-api/doc/string.md +93 -93
  152. package/vendor/node-addon-api/doc/symbol.md +60 -60
  153. package/vendor/node-addon-api/doc/threadsafe.md +121 -121
  154. package/vendor/node-addon-api/doc/threadsafe_function.md +290 -290
  155. package/vendor/node-addon-api/doc/type_error.md +59 -59
  156. package/vendor/node-addon-api/doc/typed_array.md +78 -78
  157. package/vendor/node-addon-api/doc/typed_array_of.md +137 -137
  158. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +306 -306
  159. package/vendor/node-addon-api/doc/value.md +340 -340
  160. package/vendor/node-addon-api/doc/version_management.md +43 -43
  161. package/vendor/node-addon-api/except.gypi +25 -25
  162. package/vendor/node-addon-api/index.js +11 -11
  163. package/vendor/node-addon-api/napi-inl.deprecated.h +192 -192
  164. package/vendor/node-addon-api/napi-inl.h +6209 -6209
  165. package/vendor/node-addon-api/napi.h +2983 -2983
  166. package/vendor/node-addon-api/node_api.gyp +9 -9
  167. package/vendor/node-addon-api/noexcept.gypi +26 -26
  168. package/vendor/node-addon-api/package-support.json +21 -21
  169. package/vendor/node-addon-api/package.json +399 -399
  170. package/vendor/node-addon-api/test/README.md +91 -91
  171. package/vendor/node-addon-api/test/addon.cc +36 -36
  172. package/vendor/node-addon-api/test/addon.js +11 -11
  173. package/vendor/node-addon-api/test/addon_build/index.js +49 -49
  174. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +17 -17
  175. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +62 -62
  176. package/vendor/node-addon-api/test/addon_build/tpl/index.js +9 -9
  177. package/vendor/node-addon-api/test/addon_build/tpl/package.json +11 -11
  178. package/vendor/node-addon-api/test/addon_data.cc +99 -99
  179. package/vendor/node-addon-api/test/addon_data.js +46 -46
  180. package/vendor/node-addon-api/test/array_buffer.cc +243 -243
  181. package/vendor/node-addon-api/test/array_buffer.js +69 -69
  182. package/vendor/node-addon-api/test/async_context.cc +21 -21
  183. package/vendor/node-addon-api/test/async_context.js +86 -86
  184. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +83 -83
  185. package/vendor/node-addon-api/test/async_progress_queue_worker.js +46 -46
  186. package/vendor/node-addon-api/test/async_progress_worker.cc +134 -134
  187. package/vendor/node-addon-api/test/async_progress_worker.js +61 -61
  188. package/vendor/node-addon-api/test/async_worker.cc +106 -106
  189. package/vendor/node-addon-api/test/async_worker.js +179 -179
  190. package/vendor/node-addon-api/test/async_worker_nocallback.js +13 -13
  191. package/vendor/node-addon-api/test/async_worker_persistent.cc +63 -63
  192. package/vendor/node-addon-api/test/async_worker_persistent.js +24 -24
  193. package/vendor/node-addon-api/test/basic_types/array.cc +40 -40
  194. package/vendor/node-addon-api/test/basic_types/array.js +35 -35
  195. package/vendor/node-addon-api/test/basic_types/boolean.cc +38 -38
  196. package/vendor/node-addon-api/test/basic_types/boolean.js +35 -35
  197. package/vendor/node-addon-api/test/basic_types/number.cc +99 -99
  198. package/vendor/node-addon-api/test/basic_types/number.js +114 -114
  199. package/vendor/node-addon-api/test/basic_types/value.cc +120 -120
  200. package/vendor/node-addon-api/test/basic_types/value.js +133 -133
  201. package/vendor/node-addon-api/test/bigint.cc +91 -91
  202. package/vendor/node-addon-api/test/bigint.js +53 -53
  203. package/vendor/node-addon-api/test/binding-swallowexcept.cc +12 -12
  204. package/vendor/node-addon-api/test/binding.cc +171 -171
  205. package/vendor/node-addon-api/test/binding.gyp +117 -117
  206. package/vendor/node-addon-api/test/buffer.cc +183 -183
  207. package/vendor/node-addon-api/test/buffer.js +69 -69
  208. package/vendor/node-addon-api/test/callbackscope.cc +22 -22
  209. package/vendor/node-addon-api/test/callbackscope.js +49 -49
  210. package/vendor/node-addon-api/test/common/index.js +113 -113
  211. package/vendor/node-addon-api/test/common/test_helper.h +61 -61
  212. package/vendor/node-addon-api/test/dataview/dataview.cc +48 -48
  213. package/vendor/node-addon-api/test/dataview/dataview.js +35 -35
  214. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +115 -115
  215. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +90 -90
  216. package/vendor/node-addon-api/test/date.cc +44 -44
  217. package/vendor/node-addon-api/test/date.js +18 -18
  218. package/vendor/node-addon-api/test/env_cleanup.cc +88 -88
  219. package/vendor/node-addon-api/test/env_cleanup.js +56 -56
  220. package/vendor/node-addon-api/test/error.cc +287 -287
  221. package/vendor/node-addon-api/test/error.js +81 -81
  222. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +13 -13
  223. package/vendor/node-addon-api/test/error_handling_for_primitives.js +29 -29
  224. package/vendor/node-addon-api/test/error_terminating_environment.js +94 -94
  225. package/vendor/node-addon-api/test/external.cc +81 -81
  226. package/vendor/node-addon-api/test/external.js +88 -88
  227. package/vendor/node-addon-api/test/function.cc +295 -295
  228. package/vendor/node-addon-api/test/function.js +121 -121
  229. package/vendor/node-addon-api/test/function_reference.cc +202 -202
  230. package/vendor/node-addon-api/test/function_reference.js +157 -157
  231. package/vendor/node-addon-api/test/globalObject/global_object.cc +61 -61
  232. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +31 -31
  233. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +61 -61
  234. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +40 -40
  235. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +57 -57
  236. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +28 -28
  237. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +48 -48
  238. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +30 -30
  239. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +58 -58
  240. package/vendor/node-addon-api/test/handlescope.cc +60 -60
  241. package/vendor/node-addon-api/test/handlescope.js +14 -14
  242. package/vendor/node-addon-api/test/index.js +136 -136
  243. package/vendor/node-addon-api/test/maybe/check.cc +23 -23
  244. package/vendor/node-addon-api/test/maybe/index.js +38 -38
  245. package/vendor/node-addon-api/test/memory_management.cc +17 -17
  246. package/vendor/node-addon-api/test/memory_management.js +9 -9
  247. package/vendor/node-addon-api/test/movable_callbacks.cc +23 -23
  248. package/vendor/node-addon-api/test/movable_callbacks.js +21 -21
  249. package/vendor/node-addon-api/test/name.cc +108 -108
  250. package/vendor/node-addon-api/test/name.js +59 -59
  251. package/vendor/node-addon-api/test/napi_child.js +14 -14
  252. package/vendor/node-addon-api/test/object/delete_property.cc +38 -38
  253. package/vendor/node-addon-api/test/object/delete_property.js +41 -41
  254. package/vendor/node-addon-api/test/object/finalizer.cc +29 -29
  255. package/vendor/node-addon-api/test/object/finalizer.js +28 -28
  256. package/vendor/node-addon-api/test/object/get_property.cc +34 -34
  257. package/vendor/node-addon-api/test/object/get_property.js +40 -40
  258. package/vendor/node-addon-api/test/object/has_own_property.cc +34 -34
  259. package/vendor/node-addon-api/test/object/has_own_property.js +34 -34
  260. package/vendor/node-addon-api/test/object/has_property.cc +38 -38
  261. package/vendor/node-addon-api/test/object/has_property.js +37 -37
  262. package/vendor/node-addon-api/test/object/object.cc +348 -348
  263. package/vendor/node-addon-api/test/object/object.js +217 -217
  264. package/vendor/node-addon-api/test/object/object_deprecated.cc +66 -66
  265. package/vendor/node-addon-api/test/object/object_deprecated.js +47 -47
  266. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +25 -25
  267. package/vendor/node-addon-api/test/object/object_freeze_seal.js +61 -61
  268. package/vendor/node-addon-api/test/object/set_property.cc +37 -37
  269. package/vendor/node-addon-api/test/object/set_property.js +29 -29
  270. package/vendor/node-addon-api/test/object/subscript_operator.cc +42 -42
  271. package/vendor/node-addon-api/test/object/subscript_operator.js +17 -17
  272. package/vendor/node-addon-api/test/object_reference.cc +219 -219
  273. package/vendor/node-addon-api/test/object_reference.js +259 -259
  274. package/vendor/node-addon-api/test/objectwrap.cc +268 -268
  275. package/vendor/node-addon-api/test/objectwrap.js +284 -284
  276. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +26 -26
  277. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +18 -18
  278. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +30 -30
  279. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +13 -13
  280. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +45 -45
  281. package/vendor/node-addon-api/test/objectwrap_removewrap.js +40 -40
  282. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +19 -19
  283. package/vendor/node-addon-api/test/promise.cc +29 -29
  284. package/vendor/node-addon-api/test/promise.js +18 -18
  285. package/vendor/node-addon-api/test/reference.cc +24 -24
  286. package/vendor/node-addon-api/test/reference.js +14 -14
  287. package/vendor/node-addon-api/test/run_script.cc +56 -56
  288. package/vendor/node-addon-api/test/run_script.js +45 -45
  289. package/vendor/node-addon-api/test/symbol.cc +79 -79
  290. package/vendor/node-addon-api/test/symbol.js +73 -73
  291. package/vendor/node-addon-api/test/testUtil.js +54 -54
  292. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +195 -195
  293. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +188 -188
  294. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +63 -63
  295. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +12 -12
  296. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +115 -115
  297. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +14 -14
  298. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +26 -26
  299. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +7 -7
  300. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +225 -225
  301. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +59 -59
  302. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +42 -42
  303. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +53 -53
  304. package/vendor/node-addon-api/test/thunking_manual.cc +140 -140
  305. package/vendor/node-addon-api/test/thunking_manual.js +17 -17
  306. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +215 -215
  307. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +188 -188
  308. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +68 -68
  309. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +12 -12
  310. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +127 -127
  311. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +14 -14
  312. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +28 -28
  313. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +7 -7
  314. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +237 -237
  315. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +59 -59
  316. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +53 -53
  317. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +53 -53
  318. package/vendor/node-addon-api/test/typedarray-bigint.js +58 -58
  319. package/vendor/node-addon-api/test/typedarray.cc +216 -216
  320. package/vendor/node-addon-api/test/typedarray.js +69 -69
  321. package/vendor/node-addon-api/test/version_management.cc +27 -27
  322. package/vendor/node-addon-api/test/version_management.js +31 -31
  323. package/vendor/node-addon-api/tools/README.md +73 -73
  324. package/vendor/node-addon-api/tools/check-napi.js +100 -100
  325. package/vendor/node-addon-api/tools/clang-format.js +68 -68
  326. package/vendor/node-addon-api/tools/conversion.js +309 -309
  327. package/vendor/node-addon-api/tools/eslint-format.js +71 -71
  328. package/build/ALL_BUILD.vcxproj +0 -186
  329. package/build/ALL_BUILD.vcxproj.filters +0 -8
  330. package/build/CMakeCache.txt +0 -417
  331. package/build/CMakeFiles/3.23.0-rc1/CMakeASMCompiler.cmake +0 -20
  332. package/build/CMakeFiles/3.23.0-rc1/CMakeASM_MASMCompiler.cmake +0 -20
  333. package/build/CMakeFiles/3.23.0-rc1/CMakeCCompiler.cmake +0 -72
  334. package/build/CMakeFiles/3.23.0-rc1/CMakeCXXCompiler.cmake +0 -83
  335. package/build/CMakeFiles/3.23.0-rc1/CMakeDetermineCompilerABI_C.bin +0 -0
  336. package/build/CMakeFiles/3.23.0-rc1/CMakeDetermineCompilerABI_CXX.bin +0 -0
  337. package/build/CMakeFiles/3.23.0-rc1/CMakeRCCompiler.cmake +0 -6
  338. package/build/CMakeFiles/3.23.0-rc1/CMakeSystem.cmake +0 -15
  339. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/CMakeCCompilerId.c +0 -828
  340. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/CompilerIdC.exe +0 -0
  341. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/CompilerIdC.vcxproj +0 -71
  342. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CMakeCCompilerId.obj +0 -0
  343. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.exe.recipe +0 -11
  344. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/CL.command.1.tlog +0 -0
  345. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/CL.read.1.tlog +0 -0
  346. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/CL.write.1.tlog +0 -0
  347. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/CompilerIdC.lastbuildstate +0 -2
  348. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/link.command.1.tlog +0 -0
  349. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/link.read.1.tlog +0 -0
  350. package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/link.write.1.tlog +0 -0
  351. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -816
  352. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/CompilerIdCXX.exe +0 -0
  353. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/CompilerIdCXX.vcxproj +0 -71
  354. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj +0 -0
  355. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe +0 -11
  356. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog +0 -0
  357. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog +0 -0
  358. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog +0 -0
  359. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate +0 -2
  360. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog +0 -0
  361. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog +0 -0
  362. package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog +0 -0
  363. package/build/CMakeFiles/3.23.0-rc1/VCTargetsPath.txt +0 -1
  364. package/build/CMakeFiles/3.23.0-rc1/VCTargetsPath.vcxproj +0 -31
  365. package/build/CMakeFiles/3.23.0-rc1/x64/Debug/VCTargetsPath.recipe +0 -11
  366. package/build/CMakeFiles/3.23.0-rc1/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate +0 -2
  367. package/build/CMakeFiles/41bcd16856091d4a38fd1f71fbe2f202/generate.stamp.rule +0 -1
  368. package/build/CMakeFiles/CMakeError.log +0 -108
  369. package/build/CMakeFiles/CMakeOutput.log +0 -413
  370. package/build/CMakeFiles/TargetDirectories.txt +0 -3
  371. package/build/CMakeFiles/cmake.check_cache +0 -1
  372. package/build/CMakeFiles/generate.stamp +0 -1
  373. package/build/CMakeFiles/generate.stamp.depend +0 -109
  374. package/build/CMakeFiles/generate.stamp.list +0 -1
  375. package/build/Release/koffi.exp +0 -0
  376. package/build/Release/koffi.lib +0 -0
  377. package/build/Release/koffi.node +0 -0
  378. package/build/ZERO_CHECK.vcxproj +0 -176
  379. package/build/ZERO_CHECK.vcxproj.filters +0 -13
  380. package/build/cmake_install.cmake +0 -44
  381. package/build/koffi.dir/Release/call_arm64.obj +0 -0
  382. package/build/koffi.dir/Release/call_x64_sysv.obj +0 -0
  383. package/build/koffi.dir/Release/call_x64_win.obj +0 -0
  384. package/build/koffi.dir/Release/call_x64_win_fwd.obj +0 -0
  385. package/build/koffi.dir/Release/call_x86.obj +0 -0
  386. package/build/koffi.dir/Release/ffi.obj +0 -0
  387. package/build/koffi.dir/Release/koffi.node.recipe +0 -14
  388. package/build/koffi.dir/Release/koffi.tlog/CL.command.1.tlog +0 -0
  389. package/build/koffi.dir/Release/koffi.tlog/CL.read.1.tlog +0 -0
  390. package/build/koffi.dir/Release/koffi.tlog/CL.write.1.tlog +0 -0
  391. package/build/koffi.dir/Release/koffi.tlog/CustomBuild.command.1.tlog +0 -10
  392. package/build/koffi.dir/Release/koffi.tlog/CustomBuild.read.1.tlog +0 -108
  393. package/build/koffi.dir/Release/koffi.tlog/CustomBuild.write.1.tlog +0 -2
  394. package/build/koffi.dir/Release/koffi.tlog/Masm.read.1u.tlog +0 -0
  395. package/build/koffi.dir/Release/koffi.tlog/Masm.write.1u.tlog +0 -0
  396. package/build/koffi.dir/Release/koffi.tlog/koffi.lastbuildstate +0 -2
  397. package/build/koffi.dir/Release/koffi.tlog/koffi.write.1u.tlog +0 -0
  398. package/build/koffi.dir/Release/koffi.tlog/link.command.1.tlog +0 -0
  399. package/build/koffi.dir/Release/koffi.tlog/link.read.1.tlog +0 -0
  400. package/build/koffi.dir/Release/koffi.tlog/link.write.1.tlog +0 -0
  401. package/build/koffi.dir/Release/libcc.obj +0 -0
  402. package/build/koffi.dir/Release/util.obj +0 -0
  403. package/build/koffi.dir/Release/win_delay_load_hook.obj +0 -0
  404. package/build/koffi.sln +0 -53
  405. package/build/koffi.vcxproj +0 -363
  406. package/build/koffi.vcxproj.filters +0 -40
  407. package/build/x64/Release/ALL_BUILD/ALL_BUILD.recipe +0 -17
  408. package/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/ALL_BUILD.lastbuildstate +0 -2
  409. package/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.command.1.tlog +0 -10
  410. package/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.read.1.tlog +0 -108
  411. package/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.write.1.tlog +0 -2
  412. package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.recipe +0 -11
  413. package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog +0 -10
  414. package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog +0 -109
  415. package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog +0 -2
  416. package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate +0 -2
@@ -1,196 +1,196 @@
1
- # Env
2
-
3
- The opaque data structure containing the environment in which the request is being run.
4
-
5
- The Env object is usually created and passed by the Node.js runtime or node-addon-api infrastructure.
6
-
7
- ## Methods
8
-
9
- ### Constructor
10
-
11
- ```cpp
12
- Napi::Env::Env(napi_env env);
13
- ```
14
-
15
- - `[in] env`: The `napi_env` environment from which to construct the `Napi::Env` object.
16
-
17
- ### napi_env
18
-
19
- ```cpp
20
- operator napi_env() const;
21
- ```
22
-
23
- Returns the `napi_env` opaque data structure representing the environment.
24
-
25
- ### Global
26
-
27
- ```cpp
28
- Napi::Object Napi::Env::Global() const;
29
- ```
30
-
31
- Returns the `Napi::Object` representing the environment's JavaScript Global Object.
32
-
33
- ### Undefined
34
-
35
- ```cpp
36
- Napi::Value Napi::Env::Undefined() const;
37
- ```
38
-
39
- Returns the `Napi::Value` representing the environment's JavaScript Undefined Object.
40
-
41
- ### Null
42
-
43
- ```cpp
44
- Napi::Value Napi::Env::Null() const;
45
- ```
46
-
47
- Returns the `Napi::Value` representing the environment's JavaScript Null Object.
48
-
49
- ### IsExceptionPending
50
-
51
- ```cpp
52
- bool Napi::Env::IsExceptionPending() const;
53
- ```
54
-
55
- Returns a `bool` indicating if an exception is pending in the environment.
56
-
57
- ### GetAndClearPendingException
58
-
59
- ```cpp
60
- Napi::Error Napi::Env::GetAndClearPendingException();
61
- ```
62
-
63
- Returns an `Napi::Error` object representing the environment's pending exception, if any.
64
-
65
- ### RunScript
66
-
67
- ```cpp
68
- Napi::Value Napi::Env::RunScript(____ script);
69
- ```
70
- - `[in] script`: A string containing JavaScript code to execute.
71
-
72
- Runs JavaScript code contained in a string and returns its result.
73
-
74
- The `script` can be any of the following types:
75
- - [`Napi::String`](string.md)
76
- - `const char *`
77
- - `const std::string &`
78
-
79
- ### GetInstanceData
80
- ```cpp
81
- template <typename T> T* GetInstanceData();
82
- ```
83
-
84
- Returns the instance data that was previously associated with the environment,
85
- or `nullptr` if none was associated.
86
-
87
- ### SetInstanceData
88
-
89
- ```cpp
90
- template <typename T> using Finalizer = void (*)(Env, T*);
91
- template <typename T, Finalizer<T> fini = Env::DefaultFini<T>>
92
- void SetInstanceData(T* data);
93
- ```
94
-
95
- - `[template] fini`: A function to call when the instance data is to be deleted.
96
- Accepts a function of the form `void CleanupData(Napi::Env env, T* data)`. If
97
- not given, the default finalizer will be used, which simply uses the `delete`
98
- operator to destroy `T*` when the addon instance is unloaded.
99
- - `[in] data`: A pointer to data that will be associated with the instance of
100
- the addon for the duration of its lifecycle.
101
-
102
- Associates a data item stored at `T* data` with the current instance of the
103
- addon. The item will be passed to the function `fini` which gets called when an
104
- instance of the addon is unloaded.
105
-
106
- ### SetInstanceData
107
-
108
- ```cpp
109
- template <typename DataType, typename HintType>
110
- using FinalizerWithHint = void (*)(Env, DataType*, HintType*);
111
- template <typename DataType,
112
- typename HintType,
113
- FinalizerWithHint<DataType, HintType> fini =
114
- Env::DefaultFiniWithHint<DataType, HintType>>
115
- void SetInstanceData(DataType* data, HintType* hint);
116
- ```
117
-
118
- - `[template] fini`: A function to call when the instance data is to be deleted.
119
- Accepts a function of the form
120
- `void CleanupData(Napi::Env env, DataType* data, HintType* hint)`. If not given,
121
- the default finalizer will be used, which simply uses the `delete` operator to
122
- destroy `T*` when the addon instance is unloaded.
123
- - `[in] data`: A pointer to data that will be associated with the instance of
124
- the addon for the duration of its lifecycle.
125
- - `[in] hint`: A pointer to data that will be associated with the instance of
126
- the addon for the duration of its lifecycle and will be passed as a hint to
127
- `fini` when the addon instance is unloaded.
128
-
129
- Associates a data item stored at `T* data` with the current instance of the
130
- addon. The item will be passed to the function `fini` which gets called when an
131
- instance of the addon is unloaded. This overload accepts an additional hint to
132
- be passed to `fini`.
133
-
134
- ### AddCleanupHook
135
-
136
- ```cpp
137
- template <typename Hook>
138
- CleanupHook<Hook> AddCleanupHook(Hook hook);
139
- ```
140
-
141
- - `[in] hook`: A function to call when the environment exists. Accepts a
142
- function of the form `void ()`.
143
-
144
- Registers `hook` as a function to be run once the current Node.js environment
145
- exits. Unlike the underlying C-based Node-API, providing the same `hook`
146
- multiple times **is** allowed. The hooks will be called in reverse order, i.e.
147
- the most recently added one will be called first.
148
-
149
- Returns an `Env::CleanupHook` object, which can be used to remove the hook via
150
- its `Remove()` method.
151
-
152
- ### AddCleanupHook
153
-
154
- ```cpp
155
- template <typename Hook, typename Arg>
156
- CleanupHook<Hook, Arg> AddCleanupHook(Hook hook, Arg* arg);
157
- ```
158
-
159
- - `[in] hook`: A function to call when the environment exists. Accepts a
160
- function of the form `void (Arg* arg)`.
161
- - `[in] arg`: A pointer to data that will be passed as the argument to `hook`.
162
-
163
- Registers `hook` as a function to be run with the `arg` parameter once the
164
- current Node.js environment exits. Unlike the underlying C-based Node-API,
165
- providing the same `hook` and `arg` pair multiple times **is** allowed. The
166
- hooks will be called in reverse order, i.e. the most recently added one will be
167
- called first.
168
-
169
- Returns an `Env::CleanupHook` object, which can be used to remove the hook via
170
- its `Remove()` method.
171
-
172
- # Env::CleanupHook
173
-
174
- The `Env::CleanupHook` object allows removal of the hook added via
175
- `Env::AddCleanupHook()`
176
-
177
- ## Methods
178
-
179
- ### IsEmpty
180
-
181
- ```cpp
182
- bool IsEmpty();
183
- ```
184
-
185
- Returns `true` if the cleanup hook was **not** successfully registered.
186
-
187
- ### Remove
188
-
189
- ```cpp
190
- bool Remove(Env env);
191
- ```
192
-
193
- Unregisters the hook from running once the current Node.js environment exits.
194
-
195
- Returns `true` if the hook was successfully removed from the Node.js
196
- environment.
1
+ # Env
2
+
3
+ The opaque data structure containing the environment in which the request is being run.
4
+
5
+ The Env object is usually created and passed by the Node.js runtime or node-addon-api infrastructure.
6
+
7
+ ## Methods
8
+
9
+ ### Constructor
10
+
11
+ ```cpp
12
+ Napi::Env::Env(napi_env env);
13
+ ```
14
+
15
+ - `[in] env`: The `napi_env` environment from which to construct the `Napi::Env` object.
16
+
17
+ ### napi_env
18
+
19
+ ```cpp
20
+ operator napi_env() const;
21
+ ```
22
+
23
+ Returns the `napi_env` opaque data structure representing the environment.
24
+
25
+ ### Global
26
+
27
+ ```cpp
28
+ Napi::Object Napi::Env::Global() const;
29
+ ```
30
+
31
+ Returns the `Napi::Object` representing the environment's JavaScript Global Object.
32
+
33
+ ### Undefined
34
+
35
+ ```cpp
36
+ Napi::Value Napi::Env::Undefined() const;
37
+ ```
38
+
39
+ Returns the `Napi::Value` representing the environment's JavaScript Undefined Object.
40
+
41
+ ### Null
42
+
43
+ ```cpp
44
+ Napi::Value Napi::Env::Null() const;
45
+ ```
46
+
47
+ Returns the `Napi::Value` representing the environment's JavaScript Null Object.
48
+
49
+ ### IsExceptionPending
50
+
51
+ ```cpp
52
+ bool Napi::Env::IsExceptionPending() const;
53
+ ```
54
+
55
+ Returns a `bool` indicating if an exception is pending in the environment.
56
+
57
+ ### GetAndClearPendingException
58
+
59
+ ```cpp
60
+ Napi::Error Napi::Env::GetAndClearPendingException();
61
+ ```
62
+
63
+ Returns an `Napi::Error` object representing the environment's pending exception, if any.
64
+
65
+ ### RunScript
66
+
67
+ ```cpp
68
+ Napi::Value Napi::Env::RunScript(____ script);
69
+ ```
70
+ - `[in] script`: A string containing JavaScript code to execute.
71
+
72
+ Runs JavaScript code contained in a string and returns its result.
73
+
74
+ The `script` can be any of the following types:
75
+ - [`Napi::String`](string.md)
76
+ - `const char *`
77
+ - `const std::string &`
78
+
79
+ ### GetInstanceData
80
+ ```cpp
81
+ template <typename T> T* GetInstanceData();
82
+ ```
83
+
84
+ Returns the instance data that was previously associated with the environment,
85
+ or `nullptr` if none was associated.
86
+
87
+ ### SetInstanceData
88
+
89
+ ```cpp
90
+ template <typename T> using Finalizer = void (*)(Env, T*);
91
+ template <typename T, Finalizer<T> fini = Env::DefaultFini<T>>
92
+ void SetInstanceData(T* data);
93
+ ```
94
+
95
+ - `[template] fini`: A function to call when the instance data is to be deleted.
96
+ Accepts a function of the form `void CleanupData(Napi::Env env, T* data)`. If
97
+ not given, the default finalizer will be used, which simply uses the `delete`
98
+ operator to destroy `T*` when the addon instance is unloaded.
99
+ - `[in] data`: A pointer to data that will be associated with the instance of
100
+ the addon for the duration of its lifecycle.
101
+
102
+ Associates a data item stored at `T* data` with the current instance of the
103
+ addon. The item will be passed to the function `fini` which gets called when an
104
+ instance of the addon is unloaded.
105
+
106
+ ### SetInstanceData
107
+
108
+ ```cpp
109
+ template <typename DataType, typename HintType>
110
+ using FinalizerWithHint = void (*)(Env, DataType*, HintType*);
111
+ template <typename DataType,
112
+ typename HintType,
113
+ FinalizerWithHint<DataType, HintType> fini =
114
+ Env::DefaultFiniWithHint<DataType, HintType>>
115
+ void SetInstanceData(DataType* data, HintType* hint);
116
+ ```
117
+
118
+ - `[template] fini`: A function to call when the instance data is to be deleted.
119
+ Accepts a function of the form
120
+ `void CleanupData(Napi::Env env, DataType* data, HintType* hint)`. If not given,
121
+ the default finalizer will be used, which simply uses the `delete` operator to
122
+ destroy `T*` when the addon instance is unloaded.
123
+ - `[in] data`: A pointer to data that will be associated with the instance of
124
+ the addon for the duration of its lifecycle.
125
+ - `[in] hint`: A pointer to data that will be associated with the instance of
126
+ the addon for the duration of its lifecycle and will be passed as a hint to
127
+ `fini` when the addon instance is unloaded.
128
+
129
+ Associates a data item stored at `T* data` with the current instance of the
130
+ addon. The item will be passed to the function `fini` which gets called when an
131
+ instance of the addon is unloaded. This overload accepts an additional hint to
132
+ be passed to `fini`.
133
+
134
+ ### AddCleanupHook
135
+
136
+ ```cpp
137
+ template <typename Hook>
138
+ CleanupHook<Hook> AddCleanupHook(Hook hook);
139
+ ```
140
+
141
+ - `[in] hook`: A function to call when the environment exists. Accepts a
142
+ function of the form `void ()`.
143
+
144
+ Registers `hook` as a function to be run once the current Node.js environment
145
+ exits. Unlike the underlying C-based Node-API, providing the same `hook`
146
+ multiple times **is** allowed. The hooks will be called in reverse order, i.e.
147
+ the most recently added one will be called first.
148
+
149
+ Returns an `Env::CleanupHook` object, which can be used to remove the hook via
150
+ its `Remove()` method.
151
+
152
+ ### AddCleanupHook
153
+
154
+ ```cpp
155
+ template <typename Hook, typename Arg>
156
+ CleanupHook<Hook, Arg> AddCleanupHook(Hook hook, Arg* arg);
157
+ ```
158
+
159
+ - `[in] hook`: A function to call when the environment exists. Accepts a
160
+ function of the form `void (Arg* arg)`.
161
+ - `[in] arg`: A pointer to data that will be passed as the argument to `hook`.
162
+
163
+ Registers `hook` as a function to be run with the `arg` parameter once the
164
+ current Node.js environment exits. Unlike the underlying C-based Node-API,
165
+ providing the same `hook` and `arg` pair multiple times **is** allowed. The
166
+ hooks will be called in reverse order, i.e. the most recently added one will be
167
+ called first.
168
+
169
+ Returns an `Env::CleanupHook` object, which can be used to remove the hook via
170
+ its `Remove()` method.
171
+
172
+ # Env::CleanupHook
173
+
174
+ The `Env::CleanupHook` object allows removal of the hook added via
175
+ `Env::AddCleanupHook()`
176
+
177
+ ## Methods
178
+
179
+ ### IsEmpty
180
+
181
+ ```cpp
182
+ bool IsEmpty();
183
+ ```
184
+
185
+ Returns `true` if the cleanup hook was **not** successfully registered.
186
+
187
+ ### Remove
188
+
189
+ ```cpp
190
+ bool Remove(Env env);
191
+ ```
192
+
193
+ Unregisters the hook from running once the current Node.js environment exits.
194
+
195
+ Returns `true` if the hook was successfully removed from the Node.js
196
+ environment.
@@ -1,120 +1,120 @@
1
- # Error
2
-
3
- Class `Napi::Error` inherits from class [`Napi::ObjectReference`][] and class [`std::exception`][].
4
-
5
- The `Napi::Error` class is a representation of the JavaScript `Error` object that is thrown
6
- when runtime errors occur. The Error object can also be used as a base object for
7
- user-defined exceptions.
8
-
9
- The `Napi::Error` class is a persistent reference to a JavaScript error object thus
10
- inherits its behavior from the `Napi::ObjectReference` class (for more info see: [`Napi::ObjectReference`](object_reference.md)).
11
-
12
- If C++ exceptions are enabled (for more info see: [Setup](setup.md)), then the
13
- `Napi::Error` class extends `std::exception` and enables integrated
14
- error-handling for C++ exceptions and JavaScript exceptions.
15
-
16
- For more details about error handling refer to the section titled [Error handling](error_handling.md).
17
-
18
- ## Methods
19
-
20
- ### New
21
-
22
- Creates empty instance of an `Napi::Error` object for the specified environment.
23
-
24
- ```cpp
25
- Napi::Error::New(Napi::Env env);
26
- ```
27
-
28
- - `[in] env`: The environment in which to construct the `Napi::Error` object.
29
-
30
- Returns an instance of `Napi::Error` object.
31
-
32
- ### New
33
-
34
- Creates instance of an `Napi::Error` object.
35
-
36
- ```cpp
37
- Napi::Error::New(Napi::Env env, const char* message);
38
- ```
39
-
40
- - `[in] env`: The environment in which to construct the `Napi::Error` object.
41
- - `[in] message`: Null-terminated string to be used as the message for the `Napi::Error`.
42
-
43
- Returns instance of an `Napi::Error` object.
44
-
45
- ### New
46
-
47
- Creates instance of an `Napi::Error` object
48
-
49
- ```cpp
50
- Napi::Error::New(Napi::Env env, const std::string& message);
51
- ```
52
-
53
- - `[in] env`: The environment in which to construct the `Napi::Error` object.
54
- - `[in] message`: Reference string to be used as the message for the `Napi::Error`.
55
-
56
- Returns instance of an `Napi::Error` object.
57
-
58
- ### Fatal
59
-
60
- In case of an unrecoverable error in a native module, a fatal error can be thrown
61
- to immediately terminate the process.
62
-
63
- ```cpp
64
- static NAPI_NO_RETURN void Napi::Error::Fatal(const char* location, const char* message);
65
- ```
66
-
67
- The function call does not return, the process will be terminated.
68
-
69
- ### Constructor
70
-
71
- Creates empty instance of an `Napi::Error`.
72
-
73
- ```cpp
74
- Napi::Error::Error();
75
- ```
76
-
77
- Returns an instance of `Napi::Error` object.
78
-
79
- ### Constructor
80
-
81
- Initializes an `Napi::Error` instance from an existing JavaScript error object.
82
-
83
- ```cpp
84
- Napi::Error::Error(napi_env env, napi_value value);
85
- ```
86
-
87
- - `[in] env`: The environment in which to construct the error object.
88
- - `[in] value`: The `Napi::Error` reference to wrap.
89
-
90
- Returns instance of an `Napi::Error` object.
91
-
92
- ### Message
93
-
94
- ```cpp
95
- std::string& Napi::Error::Message() const NAPI_NOEXCEPT;
96
- ```
97
-
98
- Returns the reference to the string that represent the message of the error.
99
-
100
- ### ThrowAsJavaScriptException
101
-
102
- Throw the error as JavaScript exception.
103
-
104
- ```cpp
105
- void Napi::Error::ThrowAsJavaScriptException() const;
106
- ```
107
-
108
- Throws the error as a JavaScript exception.
109
-
110
- ### what
111
-
112
- ```cpp
113
- const char* Napi::Error::what() const NAPI_NOEXCEPT override;
114
- ```
115
-
116
- Returns a pointer to a null-terminated string that is used to identify the
117
- exception. This method can be used only if the exception mechanism is enabled.
118
-
119
- [`Napi::ObjectReference`]: ./object_reference.md
120
- [`std::exception`]: https://cplusplus.com/reference/exception/exception/
1
+ # Error
2
+
3
+ Class `Napi::Error` inherits from class [`Napi::ObjectReference`][] and class [`std::exception`][].
4
+
5
+ The `Napi::Error` class is a representation of the JavaScript `Error` object that is thrown
6
+ when runtime errors occur. The Error object can also be used as a base object for
7
+ user-defined exceptions.
8
+
9
+ The `Napi::Error` class is a persistent reference to a JavaScript error object thus
10
+ inherits its behavior from the `Napi::ObjectReference` class (for more info see: [`Napi::ObjectReference`](object_reference.md)).
11
+
12
+ If C++ exceptions are enabled (for more info see: [Setup](setup.md)), then the
13
+ `Napi::Error` class extends `std::exception` and enables integrated
14
+ error-handling for C++ exceptions and JavaScript exceptions.
15
+
16
+ For more details about error handling refer to the section titled [Error handling](error_handling.md).
17
+
18
+ ## Methods
19
+
20
+ ### New
21
+
22
+ Creates empty instance of an `Napi::Error` object for the specified environment.
23
+
24
+ ```cpp
25
+ Napi::Error::New(Napi::Env env);
26
+ ```
27
+
28
+ - `[in] env`: The environment in which to construct the `Napi::Error` object.
29
+
30
+ Returns an instance of `Napi::Error` object.
31
+
32
+ ### New
33
+
34
+ Creates instance of an `Napi::Error` object.
35
+
36
+ ```cpp
37
+ Napi::Error::New(Napi::Env env, const char* message);
38
+ ```
39
+
40
+ - `[in] env`: The environment in which to construct the `Napi::Error` object.
41
+ - `[in] message`: Null-terminated string to be used as the message for the `Napi::Error`.
42
+
43
+ Returns instance of an `Napi::Error` object.
44
+
45
+ ### New
46
+
47
+ Creates instance of an `Napi::Error` object
48
+
49
+ ```cpp
50
+ Napi::Error::New(Napi::Env env, const std::string& message);
51
+ ```
52
+
53
+ - `[in] env`: The environment in which to construct the `Napi::Error` object.
54
+ - `[in] message`: Reference string to be used as the message for the `Napi::Error`.
55
+
56
+ Returns instance of an `Napi::Error` object.
57
+
58
+ ### Fatal
59
+
60
+ In case of an unrecoverable error in a native module, a fatal error can be thrown
61
+ to immediately terminate the process.
62
+
63
+ ```cpp
64
+ static NAPI_NO_RETURN void Napi::Error::Fatal(const char* location, const char* message);
65
+ ```
66
+
67
+ The function call does not return, the process will be terminated.
68
+
69
+ ### Constructor
70
+
71
+ Creates empty instance of an `Napi::Error`.
72
+
73
+ ```cpp
74
+ Napi::Error::Error();
75
+ ```
76
+
77
+ Returns an instance of `Napi::Error` object.
78
+
79
+ ### Constructor
80
+
81
+ Initializes an `Napi::Error` instance from an existing JavaScript error object.
82
+
83
+ ```cpp
84
+ Napi::Error::Error(napi_env env, napi_value value);
85
+ ```
86
+
87
+ - `[in] env`: The environment in which to construct the error object.
88
+ - `[in] value`: The `Napi::Error` reference to wrap.
89
+
90
+ Returns instance of an `Napi::Error` object.
91
+
92
+ ### Message
93
+
94
+ ```cpp
95
+ std::string& Napi::Error::Message() const NAPI_NOEXCEPT;
96
+ ```
97
+
98
+ Returns the reference to the string that represent the message of the error.
99
+
100
+ ### ThrowAsJavaScriptException
101
+
102
+ Throw the error as JavaScript exception.
103
+
104
+ ```cpp
105
+ void Napi::Error::ThrowAsJavaScriptException() const;
106
+ ```
107
+
108
+ Throws the error as a JavaScript exception.
109
+
110
+ ### what
111
+
112
+ ```cpp
113
+ const char* Napi::Error::what() const NAPI_NOEXCEPT override;
114
+ ```
115
+
116
+ Returns a pointer to a null-terminated string that is used to identify the
117
+ exception. This method can be used only if the exception mechanism is enabled.
118
+
119
+ [`Napi::ObjectReference`]: ./object_reference.md
120
+ [`std::exception`]: https://cplusplus.com/reference/exception/exception/