koffi 0.9.3 → 0.9.6

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 (330) hide show
  1. package/CMakeLists.txt +63 -60
  2. package/README.md +162 -153
  3. package/package.json +19 -18
  4. package/src/call.hh +27 -27
  5. package/src/call_arm32.cc +514 -0
  6. package/src/call_arm32_fwd.S +108 -0
  7. package/src/call_arm64.cc +497 -482
  8. package/src/call_arm64_fwd.S +110 -115
  9. package/src/call_x64_sysv.cc +477 -477
  10. package/src/call_x64_sysv_fwd.S +131 -131
  11. package/src/call_x64_win.cc +243 -243
  12. package/src/call_x64_win_fwd.asm +105 -105
  13. package/src/call_x86.cc +259 -259
  14. package/src/call_x86_fwd.S +48 -48
  15. package/src/call_x86_fwd.asm +50 -50
  16. package/src/ffi.cc +504 -504
  17. package/src/ffi.hh +136 -135
  18. package/src/util.cc +297 -296
  19. package/src/util.hh +80 -80
  20. package/vendor/dragonbox/CMakeLists.txt +122 -122
  21. package/vendor/dragonbox/LICENSE-Apache2-LLVM +218 -218
  22. package/vendor/dragonbox/LICENSE-Boost +23 -23
  23. package/vendor/dragonbox/README.md +277 -277
  24. package/vendor/dragonbox/cmake/dragonboxConfig.cmake +1 -1
  25. package/vendor/dragonbox/include/dragonbox/dragonbox.h +2674 -2670
  26. package/vendor/dragonbox/include/dragonbox/dragonbox_to_chars.h +108 -108
  27. package/vendor/dragonbox/other_files/Dragonbox.pdf +0 -0
  28. package/vendor/dragonbox/other_files/unknown_win64_vc2019.html +539 -539
  29. package/vendor/dragonbox/source/dragonbox_to_chars.cpp +303 -303
  30. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/CMakeLists.txt +23 -23
  31. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.cpp +238 -238
  32. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.h +95 -95
  33. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/grisu_exact.h +2666 -2666
  34. package/vendor/dragonbox/subproject/3rdparty/ryu/CMakeLists.txt +16 -16
  35. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/common.h +114 -114
  36. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s.c +509 -509
  37. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_full_table.h +367 -367
  38. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_intrinsics.h +357 -357
  39. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/digit_table.h +35 -35
  40. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s.c +345 -345
  41. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_full_table.h +55 -55
  42. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_intrinsics.h +128 -128
  43. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/ryu.h +46 -46
  44. package/vendor/dragonbox/subproject/3rdparty/schubfach/CMakeLists.txt +21 -21
  45. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.cc +699 -699
  46. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.h +31 -31
  47. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.cc +1354 -1354
  48. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.h +31 -31
  49. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/example_shaded_plots.m +68 -68
  50. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/license.txt +25 -25
  51. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution.m +92 -92
  52. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution_prctile.m +121 -121
  53. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_histogram_shaded.m +99 -99
  54. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_shaded.m +93 -93
  55. package/vendor/dragonbox/subproject/benchmark/CMakeLists.txt +64 -64
  56. package/vendor/dragonbox/subproject/benchmark/include/benchmark.h +40 -40
  57. package/vendor/dragonbox/subproject/benchmark/matlab/plot_benchmarks.m +21 -21
  58. package/vendor/dragonbox/subproject/benchmark/matlab/plot_digit_benchmark.m +78 -78
  59. package/vendor/dragonbox/subproject/benchmark/matlab/plot_uniform_benchmark.m +95 -95
  60. package/vendor/dragonbox/subproject/benchmark/source/benchmark.cpp +237 -237
  61. package/vendor/dragonbox/subproject/benchmark/source/dragonbox.cpp +30 -30
  62. package/vendor/dragonbox/subproject/benchmark/source/grisu_exact.cpp +36 -36
  63. package/vendor/dragonbox/subproject/benchmark/source/ryu.cpp +27 -27
  64. package/vendor/dragonbox/subproject/benchmark/source/schubfach.cpp +31 -31
  65. package/vendor/dragonbox/subproject/common/CMakeLists.txt +41 -41
  66. package/vendor/dragonbox/subproject/common/include/best_rational_approx.h +96 -96
  67. package/vendor/dragonbox/subproject/common/include/big_uint.h +217 -217
  68. package/vendor/dragonbox/subproject/common/include/continued_fractions.h +173 -173
  69. package/vendor/dragonbox/subproject/common/include/good_rational_approx.h +266 -266
  70. package/vendor/dragonbox/subproject/common/include/random_float.h +182 -182
  71. package/vendor/dragonbox/subproject/common/include/rational_continued_fractions.h +56 -56
  72. package/vendor/dragonbox/subproject/common/source/big_uint.cpp +601 -601
  73. package/vendor/dragonbox/subproject/meta/CMakeLists.txt +40 -40
  74. package/vendor/dragonbox/subproject/meta/results/binary32_generated_cache.txt +81 -81
  75. package/vendor/dragonbox/subproject/meta/results/binary64_compressed_cache_error_table.txt +9 -9
  76. package/vendor/dragonbox/subproject/meta/results/binary64_generated_cache.txt +622 -622
  77. package/vendor/dragonbox/subproject/meta/source/generate_cache.cpp +126 -126
  78. package/vendor/dragonbox/subproject/meta/source/live_test.cpp +81 -81
  79. package/vendor/dragonbox/subproject/meta/source/perf_test.cpp +104 -104
  80. package/vendor/dragonbox/subproject/meta/source/sandbox.cpp +20 -20
  81. package/vendor/dragonbox/subproject/test/CMakeLists.txt +69 -69
  82. package/vendor/dragonbox/subproject/test/results/binary32.csv +255 -255
  83. package/vendor/dragonbox/subproject/test/results/binary64.csv +2047 -2047
  84. package/vendor/dragonbox/subproject/test/results/plot_required_bits.m +17 -17
  85. package/vendor/dragonbox/subproject/test/source/test_all_shorter_interval_cases.cpp +88 -88
  86. package/vendor/dragonbox/subproject/test/source/uniform_random_test.cpp +95 -95
  87. package/vendor/dragonbox/subproject/test/source/verify_cache_precision.cpp +337 -337
  88. package/vendor/dragonbox/subproject/test/source/verify_compressed_cache.cpp +154 -154
  89. package/vendor/dragonbox/subproject/test/source/verify_fast_multiplication.cpp +168 -168
  90. package/vendor/dragonbox/subproject/test/source/verify_log_computation.cpp +251 -251
  91. package/vendor/dragonbox/subproject/test/source/verify_magic_division.cpp +113 -113
  92. package/vendor/libcc/libcc.cc +7651 -7651
  93. package/vendor/libcc/libcc.hh +4312 -4312
  94. package/vendor/node-addon-api/CHANGELOG.md +859 -859
  95. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +4 -4
  96. package/vendor/node-addon-api/CONTRIBUTING.md +93 -93
  97. package/vendor/node-addon-api/LICENSE.md +12 -12
  98. package/vendor/node-addon-api/README.md +293 -293
  99. package/vendor/node-addon-api/appveyor.yml +37 -37
  100. package/vendor/node-addon-api/benchmark/README.md +47 -47
  101. package/vendor/node-addon-api/benchmark/binding.gyp +25 -25
  102. package/vendor/node-addon-api/benchmark/function_args.cc +217 -217
  103. package/vendor/node-addon-api/benchmark/function_args.js +60 -60
  104. package/vendor/node-addon-api/benchmark/index.js +34 -34
  105. package/vendor/node-addon-api/benchmark/property_descriptor.cc +91 -91
  106. package/vendor/node-addon-api/benchmark/property_descriptor.js +37 -37
  107. package/vendor/node-addon-api/common.gypi +21 -21
  108. package/vendor/node-addon-api/doc/addon.md +163 -163
  109. package/vendor/node-addon-api/doc/array.md +81 -81
  110. package/vendor/node-addon-api/doc/array_buffer.md +155 -155
  111. package/vendor/node-addon-api/doc/async_context.md +86 -86
  112. package/vendor/node-addon-api/doc/async_operations.md +31 -31
  113. package/vendor/node-addon-api/doc/async_worker.md +427 -427
  114. package/vendor/node-addon-api/doc/async_worker_variants.md +557 -557
  115. package/vendor/node-addon-api/doc/bigint.md +97 -97
  116. package/vendor/node-addon-api/doc/boolean.md +68 -68
  117. package/vendor/node-addon-api/doc/buffer.md +150 -150
  118. package/vendor/node-addon-api/doc/callback_scope.md +54 -54
  119. package/vendor/node-addon-api/doc/callbackinfo.md +97 -97
  120. package/vendor/node-addon-api/doc/checker-tool.md +32 -32
  121. package/vendor/node-addon-api/doc/class_property_descriptor.md +115 -115
  122. package/vendor/node-addon-api/doc/cmake-js.md +68 -68
  123. package/vendor/node-addon-api/doc/conversion-tool.md +27 -27
  124. package/vendor/node-addon-api/doc/creating_a_release.md +62 -62
  125. package/vendor/node-addon-api/doc/dataview.md +248 -248
  126. package/vendor/node-addon-api/doc/date.md +68 -68
  127. package/vendor/node-addon-api/doc/env.md +196 -196
  128. package/vendor/node-addon-api/doc/error.md +120 -120
  129. package/vendor/node-addon-api/doc/error_handling.md +254 -254
  130. package/vendor/node-addon-api/doc/escapable_handle_scope.md +80 -80
  131. package/vendor/node-addon-api/doc/external.md +63 -63
  132. package/vendor/node-addon-api/doc/function.md +402 -402
  133. package/vendor/node-addon-api/doc/function_reference.md +238 -238
  134. package/vendor/node-addon-api/doc/generator.md +13 -13
  135. package/vendor/node-addon-api/doc/handle_scope.md +63 -63
  136. package/vendor/node-addon-api/doc/hierarchy.md +91 -91
  137. package/vendor/node-addon-api/doc/instance_wrap.md +408 -408
  138. package/vendor/node-addon-api/doc/maybe.md +76 -76
  139. package/vendor/node-addon-api/doc/memory_management.md +27 -27
  140. package/vendor/node-addon-api/doc/name.md +29 -29
  141. package/vendor/node-addon-api/doc/node-gyp.md +82 -82
  142. package/vendor/node-addon-api/doc/number.md +163 -163
  143. package/vendor/node-addon-api/doc/object.md +432 -432
  144. package/vendor/node-addon-api/doc/object_lifetime_management.md +83 -83
  145. package/vendor/node-addon-api/doc/object_reference.md +117 -117
  146. package/vendor/node-addon-api/doc/object_wrap.md +561 -561
  147. package/vendor/node-addon-api/doc/prebuild_tools.md +16 -16
  148. package/vendor/node-addon-api/doc/promises.md +79 -79
  149. package/vendor/node-addon-api/doc/property_descriptor.md +286 -286
  150. package/vendor/node-addon-api/doc/propertylvalue.md +50 -50
  151. package/vendor/node-addon-api/doc/range_error.md +59 -59
  152. package/vendor/node-addon-api/doc/reference.md +113 -113
  153. package/vendor/node-addon-api/doc/setup.md +110 -110
  154. package/vendor/node-addon-api/doc/string.md +93 -93
  155. package/vendor/node-addon-api/doc/symbol.md +60 -60
  156. package/vendor/node-addon-api/doc/threadsafe.md +121 -121
  157. package/vendor/node-addon-api/doc/threadsafe_function.md +290 -290
  158. package/vendor/node-addon-api/doc/type_error.md +59 -59
  159. package/vendor/node-addon-api/doc/typed_array.md +78 -78
  160. package/vendor/node-addon-api/doc/typed_array_of.md +137 -137
  161. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +306 -306
  162. package/vendor/node-addon-api/doc/value.md +340 -340
  163. package/vendor/node-addon-api/doc/version_management.md +43 -43
  164. package/vendor/node-addon-api/except.gypi +25 -25
  165. package/vendor/node-addon-api/index.js +11 -11
  166. package/vendor/node-addon-api/napi-inl.deprecated.h +192 -192
  167. package/vendor/node-addon-api/napi-inl.h +6209 -6209
  168. package/vendor/node-addon-api/napi.h +2983 -2983
  169. package/vendor/node-addon-api/node_api.gyp +9 -9
  170. package/vendor/node-addon-api/noexcept.gypi +26 -26
  171. package/vendor/node-addon-api/package-support.json +21 -21
  172. package/vendor/node-addon-api/package.json +399 -399
  173. package/vendor/node-addon-api/test/README.md +91 -91
  174. package/vendor/node-addon-api/test/addon.cc +36 -36
  175. package/vendor/node-addon-api/test/addon.js +11 -11
  176. package/vendor/node-addon-api/test/addon_build/index.js +49 -49
  177. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +17 -17
  178. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +62 -62
  179. package/vendor/node-addon-api/test/addon_build/tpl/index.js +9 -9
  180. package/vendor/node-addon-api/test/addon_build/tpl/package.json +11 -11
  181. package/vendor/node-addon-api/test/addon_data.cc +99 -99
  182. package/vendor/node-addon-api/test/addon_data.js +46 -46
  183. package/vendor/node-addon-api/test/array_buffer.cc +243 -243
  184. package/vendor/node-addon-api/test/array_buffer.js +69 -69
  185. package/vendor/node-addon-api/test/async_context.cc +21 -21
  186. package/vendor/node-addon-api/test/async_context.js +86 -86
  187. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +83 -83
  188. package/vendor/node-addon-api/test/async_progress_queue_worker.js +46 -46
  189. package/vendor/node-addon-api/test/async_progress_worker.cc +134 -134
  190. package/vendor/node-addon-api/test/async_progress_worker.js +61 -61
  191. package/vendor/node-addon-api/test/async_worker.cc +106 -106
  192. package/vendor/node-addon-api/test/async_worker.js +179 -179
  193. package/vendor/node-addon-api/test/async_worker_nocallback.js +13 -13
  194. package/vendor/node-addon-api/test/async_worker_persistent.cc +63 -63
  195. package/vendor/node-addon-api/test/async_worker_persistent.js +24 -24
  196. package/vendor/node-addon-api/test/basic_types/array.cc +40 -40
  197. package/vendor/node-addon-api/test/basic_types/array.js +35 -35
  198. package/vendor/node-addon-api/test/basic_types/boolean.cc +38 -38
  199. package/vendor/node-addon-api/test/basic_types/boolean.js +35 -35
  200. package/vendor/node-addon-api/test/basic_types/number.cc +99 -99
  201. package/vendor/node-addon-api/test/basic_types/number.js +114 -114
  202. package/vendor/node-addon-api/test/basic_types/value.cc +120 -120
  203. package/vendor/node-addon-api/test/basic_types/value.js +133 -133
  204. package/vendor/node-addon-api/test/bigint.cc +91 -91
  205. package/vendor/node-addon-api/test/bigint.js +53 -53
  206. package/vendor/node-addon-api/test/binding-swallowexcept.cc +12 -12
  207. package/vendor/node-addon-api/test/binding.cc +171 -171
  208. package/vendor/node-addon-api/test/binding.gyp +117 -117
  209. package/vendor/node-addon-api/test/buffer.cc +183 -183
  210. package/vendor/node-addon-api/test/buffer.js +69 -69
  211. package/vendor/node-addon-api/test/callbackscope.cc +22 -22
  212. package/vendor/node-addon-api/test/callbackscope.js +49 -49
  213. package/vendor/node-addon-api/test/common/index.js +113 -113
  214. package/vendor/node-addon-api/test/common/test_helper.h +61 -61
  215. package/vendor/node-addon-api/test/dataview/dataview.cc +48 -48
  216. package/vendor/node-addon-api/test/dataview/dataview.js +35 -35
  217. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +115 -115
  218. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +90 -90
  219. package/vendor/node-addon-api/test/date.cc +44 -44
  220. package/vendor/node-addon-api/test/date.js +18 -18
  221. package/vendor/node-addon-api/test/env_cleanup.cc +88 -88
  222. package/vendor/node-addon-api/test/env_cleanup.js +56 -56
  223. package/vendor/node-addon-api/test/error.cc +287 -287
  224. package/vendor/node-addon-api/test/error.js +81 -81
  225. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +13 -13
  226. package/vendor/node-addon-api/test/error_handling_for_primitives.js +29 -29
  227. package/vendor/node-addon-api/test/error_terminating_environment.js +94 -94
  228. package/vendor/node-addon-api/test/external.cc +81 -81
  229. package/vendor/node-addon-api/test/external.js +88 -88
  230. package/vendor/node-addon-api/test/function.cc +295 -295
  231. package/vendor/node-addon-api/test/function.js +121 -121
  232. package/vendor/node-addon-api/test/function_reference.cc +202 -202
  233. package/vendor/node-addon-api/test/function_reference.js +157 -157
  234. package/vendor/node-addon-api/test/globalObject/global_object.cc +61 -61
  235. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +31 -31
  236. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +61 -61
  237. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +40 -40
  238. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +57 -57
  239. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +28 -28
  240. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +48 -48
  241. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +30 -30
  242. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +58 -58
  243. package/vendor/node-addon-api/test/handlescope.cc +60 -60
  244. package/vendor/node-addon-api/test/handlescope.js +14 -14
  245. package/vendor/node-addon-api/test/index.js +136 -136
  246. package/vendor/node-addon-api/test/maybe/check.cc +23 -23
  247. package/vendor/node-addon-api/test/maybe/index.js +38 -38
  248. package/vendor/node-addon-api/test/memory_management.cc +17 -17
  249. package/vendor/node-addon-api/test/memory_management.js +9 -9
  250. package/vendor/node-addon-api/test/movable_callbacks.cc +23 -23
  251. package/vendor/node-addon-api/test/movable_callbacks.js +21 -21
  252. package/vendor/node-addon-api/test/name.cc +108 -108
  253. package/vendor/node-addon-api/test/name.js +59 -59
  254. package/vendor/node-addon-api/test/napi_child.js +14 -14
  255. package/vendor/node-addon-api/test/object/delete_property.cc +38 -38
  256. package/vendor/node-addon-api/test/object/delete_property.js +41 -41
  257. package/vendor/node-addon-api/test/object/finalizer.cc +29 -29
  258. package/vendor/node-addon-api/test/object/finalizer.js +28 -28
  259. package/vendor/node-addon-api/test/object/get_property.cc +34 -34
  260. package/vendor/node-addon-api/test/object/get_property.js +40 -40
  261. package/vendor/node-addon-api/test/object/has_own_property.cc +34 -34
  262. package/vendor/node-addon-api/test/object/has_own_property.js +34 -34
  263. package/vendor/node-addon-api/test/object/has_property.cc +38 -38
  264. package/vendor/node-addon-api/test/object/has_property.js +37 -37
  265. package/vendor/node-addon-api/test/object/object.cc +348 -348
  266. package/vendor/node-addon-api/test/object/object.js +217 -217
  267. package/vendor/node-addon-api/test/object/object_deprecated.cc +66 -66
  268. package/vendor/node-addon-api/test/object/object_deprecated.js +47 -47
  269. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +25 -25
  270. package/vendor/node-addon-api/test/object/object_freeze_seal.js +61 -61
  271. package/vendor/node-addon-api/test/object/set_property.cc +37 -37
  272. package/vendor/node-addon-api/test/object/set_property.js +29 -29
  273. package/vendor/node-addon-api/test/object/subscript_operator.cc +42 -42
  274. package/vendor/node-addon-api/test/object/subscript_operator.js +17 -17
  275. package/vendor/node-addon-api/test/object_reference.cc +219 -219
  276. package/vendor/node-addon-api/test/object_reference.js +259 -259
  277. package/vendor/node-addon-api/test/objectwrap.cc +268 -268
  278. package/vendor/node-addon-api/test/objectwrap.js +284 -284
  279. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +26 -26
  280. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +18 -18
  281. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +30 -30
  282. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +13 -13
  283. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +45 -45
  284. package/vendor/node-addon-api/test/objectwrap_removewrap.js +40 -40
  285. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +19 -19
  286. package/vendor/node-addon-api/test/promise.cc +29 -29
  287. package/vendor/node-addon-api/test/promise.js +18 -18
  288. package/vendor/node-addon-api/test/reference.cc +24 -24
  289. package/vendor/node-addon-api/test/reference.js +14 -14
  290. package/vendor/node-addon-api/test/run_script.cc +56 -56
  291. package/vendor/node-addon-api/test/run_script.js +45 -45
  292. package/vendor/node-addon-api/test/symbol.cc +79 -79
  293. package/vendor/node-addon-api/test/symbol.js +73 -73
  294. package/vendor/node-addon-api/test/testUtil.js +54 -54
  295. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +195 -195
  296. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +188 -188
  297. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +63 -63
  298. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +12 -12
  299. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +115 -115
  300. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +14 -14
  301. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +26 -26
  302. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +7 -7
  303. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +225 -225
  304. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +59 -59
  305. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +42 -42
  306. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +53 -53
  307. package/vendor/node-addon-api/test/thunking_manual.cc +140 -140
  308. package/vendor/node-addon-api/test/thunking_manual.js +17 -17
  309. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +215 -215
  310. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +188 -188
  311. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +68 -68
  312. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +12 -12
  313. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +127 -127
  314. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +14 -14
  315. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +28 -28
  316. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +7 -7
  317. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +237 -237
  318. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +59 -59
  319. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +53 -53
  320. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +53 -53
  321. package/vendor/node-addon-api/test/typedarray-bigint.js +58 -58
  322. package/vendor/node-addon-api/test/typedarray.cc +216 -216
  323. package/vendor/node-addon-api/test/typedarray.js +69 -69
  324. package/vendor/node-addon-api/test/version_management.cc +27 -27
  325. package/vendor/node-addon-api/test/version_management.js +31 -31
  326. package/vendor/node-addon-api/tools/README.md +73 -73
  327. package/vendor/node-addon-api/tools/check-napi.js +100 -100
  328. package/vendor/node-addon-api/tools/clang-format.js +68 -68
  329. package/vendor/node-addon-api/tools/conversion.js +309 -309
  330. package/vendor/node-addon-api/tools/eslint-format.js +71 -71
@@ -1,59 +1,59 @@
1
- # RangeError
2
-
3
- The `Napi::RangeError` class is a representation of the JavaScript `RangeError` that is
4
- thrown when trying to pass a value as an argument to a function that does not allow
5
- a range that includes the value.
6
-
7
- The `Napi::RangeError` class inherits its behaviors from the `Napi::Error` class (for
8
- more info see: [`Napi::Error`](error.md)).
9
-
10
- For more details about error handling refer to the section titled [Error handling](error_handling.md).
11
-
12
- ## Methods
13
-
14
- ### New
15
-
16
- Creates a new instance of a `Napi::RangeError` object.
17
-
18
- ```cpp
19
- Napi::RangeError::New(Napi::Env env, const char* message);
20
- ```
21
-
22
- - `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
23
- - `[in] message`: Null-terminated string to be used as the message for the `Napi::RangeError`.
24
-
25
- Returns an instance of a `Napi::RangeError` object.
26
-
27
- ### New
28
-
29
- Creates a new instance of a `Napi::RangeError` object.
30
-
31
- ```cpp
32
- Napi::RangeError::New(Napi::Env env, const std::string& message);
33
- ```
34
-
35
- - `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
36
- - `[in] message`: Reference string to be used as the message for the `Napi::RangeError`.
37
-
38
- Returns an instance of a `Napi::RangeError` object.
39
-
40
- ### Constructor
41
-
42
- Creates a new empty instance of a `Napi::RangeError`.
43
-
44
- ```cpp
45
- Napi::RangeError::RangeError();
46
- ```
47
-
48
- ### Constructor
49
-
50
- Initializes a `Napi::RangeError` instance from an existing Javascript error object.
51
-
52
- ```cpp
53
- Napi::RangeError::RangeError(napi_env env, napi_value value);
54
- ```
55
-
56
- - `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
57
- - `[in] value`: The `Napi::Error` reference to wrap.
58
-
59
- Returns an instance of a `Napi::RangeError` object.
1
+ # RangeError
2
+
3
+ The `Napi::RangeError` class is a representation of the JavaScript `RangeError` that is
4
+ thrown when trying to pass a value as an argument to a function that does not allow
5
+ a range that includes the value.
6
+
7
+ The `Napi::RangeError` class inherits its behaviors from the `Napi::Error` class (for
8
+ more info see: [`Napi::Error`](error.md)).
9
+
10
+ For more details about error handling refer to the section titled [Error handling](error_handling.md).
11
+
12
+ ## Methods
13
+
14
+ ### New
15
+
16
+ Creates a new instance of a `Napi::RangeError` object.
17
+
18
+ ```cpp
19
+ Napi::RangeError::New(Napi::Env env, const char* message);
20
+ ```
21
+
22
+ - `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
23
+ - `[in] message`: Null-terminated string to be used as the message for the `Napi::RangeError`.
24
+
25
+ Returns an instance of a `Napi::RangeError` object.
26
+
27
+ ### New
28
+
29
+ Creates a new instance of a `Napi::RangeError` object.
30
+
31
+ ```cpp
32
+ Napi::RangeError::New(Napi::Env env, const std::string& message);
33
+ ```
34
+
35
+ - `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
36
+ - `[in] message`: Reference string to be used as the message for the `Napi::RangeError`.
37
+
38
+ Returns an instance of a `Napi::RangeError` object.
39
+
40
+ ### Constructor
41
+
42
+ Creates a new empty instance of a `Napi::RangeError`.
43
+
44
+ ```cpp
45
+ Napi::RangeError::RangeError();
46
+ ```
47
+
48
+ ### Constructor
49
+
50
+ Initializes a `Napi::RangeError` instance from an existing Javascript error object.
51
+
52
+ ```cpp
53
+ Napi::RangeError::RangeError(napi_env env, napi_value value);
54
+ ```
55
+
56
+ - `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
57
+ - `[in] value`: The `Napi::Error` reference to wrap.
58
+
59
+ Returns an instance of a `Napi::RangeError` object.
@@ -1,113 +1,113 @@
1
- # Reference (template)
2
-
3
- Holds a counted reference to a [`Napi::Value`](value.md) object; initially a weak reference unless otherwise specified, may be changed to/from a strong reference by adjusting the refcount.
4
-
5
- The referenced `Napi::Value` is not immediately destroyed when the reference count is zero; it is merely then eligible for garbage-collection if there are no other references to the `Napi::Value`.
6
-
7
- `Napi::Reference` objects allocated in static space, such as a global static instance, must call the `SuppressDestruct` method to prevent its destructor, running at program shutdown time, from attempting to reset the reference when the environment is no longer valid. Avoid using this if at all possible.
8
-
9
- The following classes inherit, either directly or indirectly, from `Napi::Reference`:
10
-
11
- * [`Napi::ObjectWrap`](object_wrap.md)
12
- * [`Napi::ObjectReference`](object_reference.md)
13
- * [`Napi::FunctionReference`](function_reference.md)
14
-
15
- ## Methods
16
-
17
- ### Factory Method
18
-
19
- ```cpp
20
- static Napi::Reference<T> Napi::Reference::New(const T& value, uint32_t initialRefcount = 0);
21
- ```
22
-
23
- * `[in] value`: The value which is to be referenced.
24
-
25
- * `[in] initialRefcount`: The initial reference count.
26
-
27
- ### Empty Constructor
28
-
29
- ```cpp
30
- Napi::Reference::Reference();
31
- ```
32
-
33
- Creates a new _empty_ `Napi::Reference` instance.
34
-
35
- ### Constructor
36
-
37
- ```cpp
38
- Napi::Reference::Reference(napi_env env, napi_value value);
39
- ```
40
-
41
- * `[in] env`: The `napi_env` environment in which to construct the `Napi::Reference` object.
42
-
43
- * `[in] value`: The Node-API primitive value to be held by the `Napi::Reference`.
44
-
45
- ### Env
46
-
47
- ```cpp
48
- Napi::Env Napi::Reference::Env() const;
49
- ```
50
-
51
- Returns the `Napi::Env` value in which the `Napi::Reference` was instantiated.
52
-
53
- ### IsEmpty
54
-
55
- ```cpp
56
- bool Napi::Reference::IsEmpty() const;
57
- ```
58
-
59
- Determines whether the value held by the `Napi::Reference` is empty.
60
-
61
- ### Value
62
-
63
- ```cpp
64
- T Napi::Reference::Value() const;
65
- ```
66
-
67
- Returns the value held by the `Napi::Reference`.
68
-
69
- ### Ref
70
-
71
- ```cpp
72
- uint32_t Napi::Reference::Ref();
73
- ```
74
-
75
- Increments the reference count for the `Napi::Reference` and returns the resulting reference count. Throws an error if the increment fails.
76
-
77
- ### Unref
78
-
79
- ```cpp
80
- uint32_t Napi::Reference::Unref();
81
- ```
82
-
83
- Decrements the reference count for the `Napi::Reference` and returns the resulting reference count. Throws an error if the decrement fails.
84
-
85
- ### Reset (Empty)
86
-
87
- ```cpp
88
- void Napi::Reference::Reset();
89
- ```
90
-
91
- Sets the value held by the `Napi::Reference` to be empty.
92
-
93
- ### Reset
94
-
95
- ```cpp
96
- void Napi::Reference::Reset(const T& value, uint32_t refcount = 0);
97
- ```
98
-
99
- * `[in] value`: The value which is to be referenced.
100
-
101
- * `[in] initialRefcount`: The initial reference count.
102
-
103
- Sets the value held by the `Napi::Reference`.
104
-
105
- ### SuppressDestruct
106
-
107
- ```cpp
108
- void Napi::Reference::SuppressDestruct();
109
- ```
110
-
111
- Call this method on a `Napi::Reference` that is declared as static data to prevent its destructor, running at program shutdown time, from attempting to reset the reference when the environment is no longer valid.
112
-
113
- Avoid using this if at all possible. If you do need to use static data, **MAKE SURE** to warn your users that your addon is **NOT** threadsafe.
1
+ # Reference (template)
2
+
3
+ Holds a counted reference to a [`Napi::Value`](value.md) object; initially a weak reference unless otherwise specified, may be changed to/from a strong reference by adjusting the refcount.
4
+
5
+ The referenced `Napi::Value` is not immediately destroyed when the reference count is zero; it is merely then eligible for garbage-collection if there are no other references to the `Napi::Value`.
6
+
7
+ `Napi::Reference` objects allocated in static space, such as a global static instance, must call the `SuppressDestruct` method to prevent its destructor, running at program shutdown time, from attempting to reset the reference when the environment is no longer valid. Avoid using this if at all possible.
8
+
9
+ The following classes inherit, either directly or indirectly, from `Napi::Reference`:
10
+
11
+ * [`Napi::ObjectWrap`](object_wrap.md)
12
+ * [`Napi::ObjectReference`](object_reference.md)
13
+ * [`Napi::FunctionReference`](function_reference.md)
14
+
15
+ ## Methods
16
+
17
+ ### Factory Method
18
+
19
+ ```cpp
20
+ static Napi::Reference<T> Napi::Reference::New(const T& value, uint32_t initialRefcount = 0);
21
+ ```
22
+
23
+ * `[in] value`: The value which is to be referenced.
24
+
25
+ * `[in] initialRefcount`: The initial reference count.
26
+
27
+ ### Empty Constructor
28
+
29
+ ```cpp
30
+ Napi::Reference::Reference();
31
+ ```
32
+
33
+ Creates a new _empty_ `Napi::Reference` instance.
34
+
35
+ ### Constructor
36
+
37
+ ```cpp
38
+ Napi::Reference::Reference(napi_env env, napi_value value);
39
+ ```
40
+
41
+ * `[in] env`: The `napi_env` environment in which to construct the `Napi::Reference` object.
42
+
43
+ * `[in] value`: The Node-API primitive value to be held by the `Napi::Reference`.
44
+
45
+ ### Env
46
+
47
+ ```cpp
48
+ Napi::Env Napi::Reference::Env() const;
49
+ ```
50
+
51
+ Returns the `Napi::Env` value in which the `Napi::Reference` was instantiated.
52
+
53
+ ### IsEmpty
54
+
55
+ ```cpp
56
+ bool Napi::Reference::IsEmpty() const;
57
+ ```
58
+
59
+ Determines whether the value held by the `Napi::Reference` is empty.
60
+
61
+ ### Value
62
+
63
+ ```cpp
64
+ T Napi::Reference::Value() const;
65
+ ```
66
+
67
+ Returns the value held by the `Napi::Reference`.
68
+
69
+ ### Ref
70
+
71
+ ```cpp
72
+ uint32_t Napi::Reference::Ref();
73
+ ```
74
+
75
+ Increments the reference count for the `Napi::Reference` and returns the resulting reference count. Throws an error if the increment fails.
76
+
77
+ ### Unref
78
+
79
+ ```cpp
80
+ uint32_t Napi::Reference::Unref();
81
+ ```
82
+
83
+ Decrements the reference count for the `Napi::Reference` and returns the resulting reference count. Throws an error if the decrement fails.
84
+
85
+ ### Reset (Empty)
86
+
87
+ ```cpp
88
+ void Napi::Reference::Reset();
89
+ ```
90
+
91
+ Sets the value held by the `Napi::Reference` to be empty.
92
+
93
+ ### Reset
94
+
95
+ ```cpp
96
+ void Napi::Reference::Reset(const T& value, uint32_t refcount = 0);
97
+ ```
98
+
99
+ * `[in] value`: The value which is to be referenced.
100
+
101
+ * `[in] initialRefcount`: The initial reference count.
102
+
103
+ Sets the value held by the `Napi::Reference`.
104
+
105
+ ### SuppressDestruct
106
+
107
+ ```cpp
108
+ void Napi::Reference::SuppressDestruct();
109
+ ```
110
+
111
+ Call this method on a `Napi::Reference` that is declared as static data to prevent its destructor, running at program shutdown time, from attempting to reset the reference when the environment is no longer valid.
112
+
113
+ Avoid using this if at all possible. If you do need to use static data, **MAKE SURE** to warn your users that your addon is **NOT** threadsafe.
@@ -1,110 +1,110 @@
1
- # Setup
2
-
3
- ## Prerequisites
4
-
5
- Before starting to use **Node-API** you need to assure you have the following
6
- prerequisites:
7
-
8
- * **Node.JS** see: [Installing Node.js](https://nodejs.org/)
9
-
10
- * **Node.js native addon build tool**
11
-
12
- - **[node-gyp](node-gyp.md)**
13
-
14
- ## Installation and usage
15
-
16
- To use **Node-API** in a native module:
17
-
18
- 1. Add a dependency on this package to `package.json`:
19
-
20
- ```json
21
- "dependencies": {
22
- "node-addon-api": "*",
23
- }
24
- ```
25
-
26
- 2. Reference this package's include directory and gyp file in `binding.gyp`:
27
-
28
- ```gyp
29
- 'include_dirs': ["<!(node -p \"require('node-addon-api').include_dir\")"],
30
- ```
31
-
32
- 3. Decide whether the package will enable C++ exceptions in the Node-API wrapper.
33
- The base ABI-stable C APIs do not throw or handle C++ exceptions, but the
34
- Node-API C++ wrapper classes may _optionally_
35
- [integrate C++ and JavaScript exception-handling
36
- ](https://github.com/nodejs/node-addon-api/blob/HEAD/doc/error_handling.md).
37
- To enable that capability, C++ exceptions must be enabled in `binding.gyp`:
38
-
39
- ```gyp
40
- 'cflags!': [ '-fno-exceptions' ],
41
- 'cflags_cc!': [ '-fno-exceptions' ],
42
- 'conditions': [
43
- ["OS=='win'", {
44
- "defines": [
45
- "_HAS_EXCEPTIONS=1"
46
- ],
47
- "msvs_settings": {
48
- "VCCLCompilerTool": {
49
- "ExceptionHandling": 1
50
- },
51
- },
52
- }],
53
- ["OS=='mac'", {
54
- 'xcode_settings': {
55
- 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
56
- 'CLANG_CXX_LIBRARY': 'libc++',
57
- 'MACOSX_DEPLOYMENT_TARGET': '10.7',
58
- },
59
- }],
60
- ],
61
- ```
62
-
63
- Alternatively, disable use of C++ exceptions in Node-API:
64
-
65
- ```gyp
66
- 'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ],
67
- ```
68
-
69
- If you decide to use node-addon-api without C++ exceptions enabled, please
70
- consider enabling node-addon-api safe API type guards to ensure the proper
71
- exception handling pattern:
72
-
73
- ```gyp
74
- 'defines': [ 'NODE_ADDON_API_ENABLE_MAYBE' ],
75
- ```
76
-
77
- 4. If you would like your native addon to support OSX, please also add the
78
- following settings in the `binding.gyp` file:
79
-
80
- ```gyp
81
- 'conditions': [
82
- ['OS=="mac"', {
83
- 'cflags+': ['-fvisibility=hidden'],
84
- 'xcode_settings': {
85
- 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
86
- }
87
- }]
88
- ]
89
- ```
90
-
91
- 5. Include `napi.h` in the native module code.
92
- To ensure only ABI-stable APIs are used, DO NOT include
93
- `node.h`, `nan.h`, or `v8.h`.
94
-
95
- ```C++
96
- #include "napi.h"
97
- ```
98
-
99
- At build time, the Node-API back-compat library code will be used only when the
100
- targeted node version *does not* have Node-API built-in.
101
-
102
- The preprocessor directive `NODE_ADDON_API_DISABLE_DEPRECATED` can be defined at
103
- compile time before including `napi.h` to skip the definition of deprecated APIs.
104
-
105
- By default, throwing an exception on a terminating environment (eg. worker
106
- threads) will cause a fatal exception, terminating the Node process. This is to
107
- provide feedback to the user of the runtime error, as it is impossible to pass
108
- the error to JavaScript when the environment is terminating. In order to bypass
109
- this behavior such that the Node process will not terminate, define the
110
- preprocessor directive `NODE_API_SWALLOW_UNTHROWABLE_EXCEPTIONS`.
1
+ # Setup
2
+
3
+ ## Prerequisites
4
+
5
+ Before starting to use **Node-API** you need to assure you have the following
6
+ prerequisites:
7
+
8
+ * **Node.JS** see: [Installing Node.js](https://nodejs.org/)
9
+
10
+ * **Node.js native addon build tool**
11
+
12
+ - **[node-gyp](node-gyp.md)**
13
+
14
+ ## Installation and usage
15
+
16
+ To use **Node-API** in a native module:
17
+
18
+ 1. Add a dependency on this package to `package.json`:
19
+
20
+ ```json
21
+ "dependencies": {
22
+ "node-addon-api": "*",
23
+ }
24
+ ```
25
+
26
+ 2. Reference this package's include directory and gyp file in `binding.gyp`:
27
+
28
+ ```gyp
29
+ 'include_dirs': ["<!(node -p \"require('node-addon-api').include_dir\")"],
30
+ ```
31
+
32
+ 3. Decide whether the package will enable C++ exceptions in the Node-API wrapper.
33
+ The base ABI-stable C APIs do not throw or handle C++ exceptions, but the
34
+ Node-API C++ wrapper classes may _optionally_
35
+ [integrate C++ and JavaScript exception-handling
36
+ ](https://github.com/nodejs/node-addon-api/blob/HEAD/doc/error_handling.md).
37
+ To enable that capability, C++ exceptions must be enabled in `binding.gyp`:
38
+
39
+ ```gyp
40
+ 'cflags!': [ '-fno-exceptions' ],
41
+ 'cflags_cc!': [ '-fno-exceptions' ],
42
+ 'conditions': [
43
+ ["OS=='win'", {
44
+ "defines": [
45
+ "_HAS_EXCEPTIONS=1"
46
+ ],
47
+ "msvs_settings": {
48
+ "VCCLCompilerTool": {
49
+ "ExceptionHandling": 1
50
+ },
51
+ },
52
+ }],
53
+ ["OS=='mac'", {
54
+ 'xcode_settings': {
55
+ 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
56
+ 'CLANG_CXX_LIBRARY': 'libc++',
57
+ 'MACOSX_DEPLOYMENT_TARGET': '10.7',
58
+ },
59
+ }],
60
+ ],
61
+ ```
62
+
63
+ Alternatively, disable use of C++ exceptions in Node-API:
64
+
65
+ ```gyp
66
+ 'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ],
67
+ ```
68
+
69
+ If you decide to use node-addon-api without C++ exceptions enabled, please
70
+ consider enabling node-addon-api safe API type guards to ensure the proper
71
+ exception handling pattern:
72
+
73
+ ```gyp
74
+ 'defines': [ 'NODE_ADDON_API_ENABLE_MAYBE' ],
75
+ ```
76
+
77
+ 4. If you would like your native addon to support OSX, please also add the
78
+ following settings in the `binding.gyp` file:
79
+
80
+ ```gyp
81
+ 'conditions': [
82
+ ['OS=="mac"', {
83
+ 'cflags+': ['-fvisibility=hidden'],
84
+ 'xcode_settings': {
85
+ 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
86
+ }
87
+ }]
88
+ ]
89
+ ```
90
+
91
+ 5. Include `napi.h` in the native module code.
92
+ To ensure only ABI-stable APIs are used, DO NOT include
93
+ `node.h`, `nan.h`, or `v8.h`.
94
+
95
+ ```C++
96
+ #include "napi.h"
97
+ ```
98
+
99
+ At build time, the Node-API back-compat library code will be used only when the
100
+ targeted node version *does not* have Node-API built-in.
101
+
102
+ The preprocessor directive `NODE_ADDON_API_DISABLE_DEPRECATED` can be defined at
103
+ compile time before including `napi.h` to skip the definition of deprecated APIs.
104
+
105
+ By default, throwing an exception on a terminating environment (eg. worker
106
+ threads) will cause a fatal exception, terminating the Node process. This is to
107
+ provide feedback to the user of the runtime error, as it is impossible to pass
108
+ the error to JavaScript when the environment is terminating. In order to bypass
109
+ this behavior such that the Node process will not terminate, define the
110
+ preprocessor directive `NODE_API_SWALLOW_UNTHROWABLE_EXCEPTIONS`.