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,97 +1,97 @@
1
- # BigInt
2
-
3
- Class `Napi::Bigint` inherits from class [`Napi::Value`][].
4
-
5
- A JavaScript BigInt value.
6
-
7
- ## Methods
8
-
9
- ### New
10
-
11
- ```cpp
12
- static Napi::BigInt Napi::BigInt::New(Napi::Env env, int64_t value);
13
- static Napi::BigInt Napi::BigInt::New(Napi::Env env, uint64_t value);
14
- ```
15
-
16
- - `[in] env`: The environment in which to construct the `Napi::BigInt` object.
17
- - `[in] value`: The value the JavaScript `BigInt` will contain
18
-
19
- These APIs convert the C `int64_t` and `uint64_t` types to the JavaScript
20
- `BigInt` type.
21
-
22
- ```cpp
23
- static Napi::BigInt Napi::BigInt::New(Napi::Env env,
24
- int sign_bit,
25
- size_t word_count,
26
- const uint64_t* words);
27
- ```
28
-
29
- - `[in] env`: The environment in which to construct the `Napi::BigInt` object.
30
- - `[in] sign_bit`: Determines if the resulting `BigInt` will be positive or negative.
31
- - `[in] word_count`: The length of the words array.
32
- - `[in] words`: An array of `uint64_t` little-endian 64-bit words.
33
-
34
- This API converts an array of unsigned 64-bit words into a single `BigInt`
35
- value.
36
-
37
- The resulting `BigInt` is calculated as: (–1)<sup>`sign_bit`</sup> (`words[0]`
38
- × (2<sup>64</sup>)<sup>0</sup> + `words[1]` × (2<sup>64</sup>)<sup>1</sup> + …)
39
-
40
- Returns a new JavaScript `BigInt`.
41
-
42
- ### Constructor
43
-
44
- ```cpp
45
- Napi::BigInt();
46
- ```
47
-
48
- Returns a new empty JavaScript `Napi::BigInt`.
49
-
50
- ### Int64Value
51
-
52
- ```cpp
53
- int64_t Napi::BigInt::Int64Value(bool* lossless) const;
54
- ```
55
-
56
- - `[out] lossless`: Indicates whether the `BigInt` value was converted losslessly.
57
-
58
- Returns the C `int64_t` primitive equivalent of the given JavaScript
59
- `BigInt`. If needed it will truncate the value, setting lossless to false.
60
-
61
- ### Uint64Value
62
-
63
- ```cpp
64
- uint64_t Napi::BigInt::Uint64Value(bool* lossless) const;
65
- ```
66
-
67
- - `[out] lossless`: Indicates whether the `BigInt` value was converted
68
- losslessly.
69
-
70
- Returns the C `uint64_t` primitive equivalent of the given JavaScript
71
- `BigInt`. If needed it will truncate the value, setting lossless to false.
72
-
73
- ### WordCount
74
-
75
- ```cpp
76
- size_t Napi::BigInt::WordCount() const;
77
- ```
78
-
79
- Returns the number of words needed to store this `BigInt` value.
80
-
81
- ### ToWords
82
-
83
- ```cpp
84
- void Napi::BigInt::ToWords(int* sign_bit, size_t* word_count, uint64_t* words);
85
- ```
86
-
87
- - `[out] sign_bit`: Integer representing if the JavaScript `BigInt` is positive
88
- or negative.
89
- - `[in/out] word_count`: Must be initialized to the length of the words array.
90
- Upon return, it will be set to the actual number of words that would be
91
- needed to store this `BigInt`.
92
- - `[out] words`: Pointer to a pre-allocated 64-bit word array.
93
-
94
- Returns a single `BigInt` value into a sign bit, 64-bit little-endian array,
95
- and the number of elements in the array.
96
-
97
- [`Napi::Value`]: ./value.md
1
+ # BigInt
2
+
3
+ Class `Napi::Bigint` inherits from class [`Napi::Value`][].
4
+
5
+ A JavaScript BigInt value.
6
+
7
+ ## Methods
8
+
9
+ ### New
10
+
11
+ ```cpp
12
+ static Napi::BigInt Napi::BigInt::New(Napi::Env env, int64_t value);
13
+ static Napi::BigInt Napi::BigInt::New(Napi::Env env, uint64_t value);
14
+ ```
15
+
16
+ - `[in] env`: The environment in which to construct the `Napi::BigInt` object.
17
+ - `[in] value`: The value the JavaScript `BigInt` will contain
18
+
19
+ These APIs convert the C `int64_t` and `uint64_t` types to the JavaScript
20
+ `BigInt` type.
21
+
22
+ ```cpp
23
+ static Napi::BigInt Napi::BigInt::New(Napi::Env env,
24
+ int sign_bit,
25
+ size_t word_count,
26
+ const uint64_t* words);
27
+ ```
28
+
29
+ - `[in] env`: The environment in which to construct the `Napi::BigInt` object.
30
+ - `[in] sign_bit`: Determines if the resulting `BigInt` will be positive or negative.
31
+ - `[in] word_count`: The length of the words array.
32
+ - `[in] words`: An array of `uint64_t` little-endian 64-bit words.
33
+
34
+ This API converts an array of unsigned 64-bit words into a single `BigInt`
35
+ value.
36
+
37
+ The resulting `BigInt` is calculated as: (–1)<sup>`sign_bit`</sup> (`words[0]`
38
+ × (2<sup>64</sup>)<sup>0</sup> + `words[1]` × (2<sup>64</sup>)<sup>1</sup> + …)
39
+
40
+ Returns a new JavaScript `BigInt`.
41
+
42
+ ### Constructor
43
+
44
+ ```cpp
45
+ Napi::BigInt();
46
+ ```
47
+
48
+ Returns a new empty JavaScript `Napi::BigInt`.
49
+
50
+ ### Int64Value
51
+
52
+ ```cpp
53
+ int64_t Napi::BigInt::Int64Value(bool* lossless) const;
54
+ ```
55
+
56
+ - `[out] lossless`: Indicates whether the `BigInt` value was converted losslessly.
57
+
58
+ Returns the C `int64_t` primitive equivalent of the given JavaScript
59
+ `BigInt`. If needed it will truncate the value, setting lossless to false.
60
+
61
+ ### Uint64Value
62
+
63
+ ```cpp
64
+ uint64_t Napi::BigInt::Uint64Value(bool* lossless) const;
65
+ ```
66
+
67
+ - `[out] lossless`: Indicates whether the `BigInt` value was converted
68
+ losslessly.
69
+
70
+ Returns the C `uint64_t` primitive equivalent of the given JavaScript
71
+ `BigInt`. If needed it will truncate the value, setting lossless to false.
72
+
73
+ ### WordCount
74
+
75
+ ```cpp
76
+ size_t Napi::BigInt::WordCount() const;
77
+ ```
78
+
79
+ Returns the number of words needed to store this `BigInt` value.
80
+
81
+ ### ToWords
82
+
83
+ ```cpp
84
+ void Napi::BigInt::ToWords(int* sign_bit, size_t* word_count, uint64_t* words);
85
+ ```
86
+
87
+ - `[out] sign_bit`: Integer representing if the JavaScript `BigInt` is positive
88
+ or negative.
89
+ - `[in/out] word_count`: Must be initialized to the length of the words array.
90
+ Upon return, it will be set to the actual number of words that would be
91
+ needed to store this `BigInt`.
92
+ - `[out] words`: Pointer to a pre-allocated 64-bit word array.
93
+
94
+ Returns a single `BigInt` value into a sign bit, 64-bit little-endian array,
95
+ and the number of elements in the array.
96
+
97
+ [`Napi::Value`]: ./value.md
@@ -1,68 +1,68 @@
1
- # Boolean
2
-
3
- Class `Napi::Boolean` inherits from class [`Napi::Value`][].
4
-
5
- `Napi::Boolean` class is a representation of the JavaScript `Boolean` object. The
6
- `Napi::Boolean` class inherits its behavior from the `Napi::Value` class
7
- (for more info see: [`Napi::Value`](value.md)).
8
-
9
- ## Methods
10
-
11
- ### Constructor
12
-
13
- Creates a new empty instance of an `Napi::Boolean` object.
14
-
15
- ```cpp
16
- Napi::Boolean::Boolean();
17
- ```
18
-
19
- Returns a new _empty_ `Napi::Boolean` object.
20
-
21
- ### Constructor
22
-
23
- Creates a new instance of the `Napi::Boolean` object.
24
-
25
- ```cpp
26
- Napi::Boolean(napi_env env, napi_value value);
27
- ```
28
-
29
- - `[in] env`: The `napi_env` environment in which to construct the `Napi::Boolean` object.
30
- - `[in] value`: The `napi_value` which is a handle for a JavaScript `Boolean`.
31
-
32
- Returns a non-empty `Napi::Boolean` object.
33
-
34
- ### New
35
-
36
- Initializes a new instance of the `Napi::Boolean` object.
37
-
38
- ```cpp
39
- Napi::Boolean Napi::Boolean::New(napi_env env, bool value);
40
- ```
41
- - `[in] env`: The `napi_env` environment in which to construct the `Napi::Boolean` object.
42
- - `[in] value`: The primitive boolean value (`true` or `false`).
43
-
44
- Returns a new instance of the `Napi::Boolean` object.
45
-
46
- ### Value
47
-
48
- Converts a `Napi::Boolean` value to a boolean primitive.
49
-
50
- ```cpp
51
- bool Napi::Boolean::Value() const;
52
- ```
53
-
54
- Returns the boolean primitive type of the corresponding `Napi::Boolean` object.
55
-
56
- ## Operators
57
-
58
- ### operator bool
59
-
60
- Converts a `Napi::Boolean` value to a boolean primitive.
61
-
62
- ```cpp
63
- Napi::Boolean::operator bool() const;
64
- ```
65
-
66
- Returns the boolean primitive type of the corresponding `Napi::Boolean` object.
67
-
68
- [`Napi::Value`]: ./value.md
1
+ # Boolean
2
+
3
+ Class `Napi::Boolean` inherits from class [`Napi::Value`][].
4
+
5
+ `Napi::Boolean` class is a representation of the JavaScript `Boolean` object. The
6
+ `Napi::Boolean` class inherits its behavior from the `Napi::Value` class
7
+ (for more info see: [`Napi::Value`](value.md)).
8
+
9
+ ## Methods
10
+
11
+ ### Constructor
12
+
13
+ Creates a new empty instance of an `Napi::Boolean` object.
14
+
15
+ ```cpp
16
+ Napi::Boolean::Boolean();
17
+ ```
18
+
19
+ Returns a new _empty_ `Napi::Boolean` object.
20
+
21
+ ### Constructor
22
+
23
+ Creates a new instance of the `Napi::Boolean` object.
24
+
25
+ ```cpp
26
+ Napi::Boolean(napi_env env, napi_value value);
27
+ ```
28
+
29
+ - `[in] env`: The `napi_env` environment in which to construct the `Napi::Boolean` object.
30
+ - `[in] value`: The `napi_value` which is a handle for a JavaScript `Boolean`.
31
+
32
+ Returns a non-empty `Napi::Boolean` object.
33
+
34
+ ### New
35
+
36
+ Initializes a new instance of the `Napi::Boolean` object.
37
+
38
+ ```cpp
39
+ Napi::Boolean Napi::Boolean::New(napi_env env, bool value);
40
+ ```
41
+ - `[in] env`: The `napi_env` environment in which to construct the `Napi::Boolean` object.
42
+ - `[in] value`: The primitive boolean value (`true` or `false`).
43
+
44
+ Returns a new instance of the `Napi::Boolean` object.
45
+
46
+ ### Value
47
+
48
+ Converts a `Napi::Boolean` value to a boolean primitive.
49
+
50
+ ```cpp
51
+ bool Napi::Boolean::Value() const;
52
+ ```
53
+
54
+ Returns the boolean primitive type of the corresponding `Napi::Boolean` object.
55
+
56
+ ## Operators
57
+
58
+ ### operator bool
59
+
60
+ Converts a `Napi::Boolean` value to a boolean primitive.
61
+
62
+ ```cpp
63
+ Napi::Boolean::operator bool() const;
64
+ ```
65
+
66
+ Returns the boolean primitive type of the corresponding `Napi::Boolean` object.
67
+
68
+ [`Napi::Value`]: ./value.md
@@ -1,150 +1,150 @@
1
- # Buffer
2
-
3
- Class `Napi::Buffer` inherits from class [`Napi::Uint8Array`][].
4
-
5
- The `Napi::Buffer` class creates a projection of raw data that can be consumed by
6
- script.
7
-
8
- ## Methods
9
-
10
- ### New
11
-
12
- Allocates a new `Napi::Buffer` object with a given length.
13
-
14
- ```cpp
15
- static Napi::Buffer<T> Napi::Buffer::New(napi_env env, size_t length);
16
- ```
17
-
18
- - `[in] env`: The environment in which to create the `Napi::Buffer` object.
19
- - `[in] length`: The number of `T` elements to allocate.
20
-
21
- Returns a new `Napi::Buffer` object.
22
-
23
- ### New
24
-
25
- Wraps the provided external data into a new `Napi::Buffer` object.
26
-
27
- The `Napi::Buffer` object does not assume ownership for the data and expects it to be
28
- valid for the lifetime of the object. Since the `Napi::Buffer` is subject to garbage
29
- collection this overload is only suitable for data which is static and never
30
- needs to be freed.
31
- This factory method will not provide the caller with an opportunity to free the
32
- data when the `Napi::Buffer` gets garbage-collected. If you need to free the
33
- data retained by the `Napi::Buffer` object please use other variants of the
34
- `Napi::Buffer::New` factory method that accept `Napi::Finalizer`, which is a
35
- function that will be invoked when the `Napi::Buffer` object has been
36
- destroyed.
37
-
38
- ```cpp
39
- static Napi::Buffer<T> Napi::Buffer::New(napi_env env, T* data, size_t length);
40
- ```
41
-
42
- - `[in] env`: The environment in which to create the `Napi::Buffer` object.
43
- - `[in] data`: The pointer to the external data to expose.
44
- - `[in] length`: The number of `T` elements in the external data.
45
-
46
- Returns a new `Napi::Buffer` object.
47
-
48
- ### New
49
-
50
- Wraps the provided external data into a new `Napi::Buffer` object.
51
-
52
- The `Napi::Buffer` object does not assume ownership for the data and expects it
53
- to be valid for the lifetime of the object. The data can only be freed once the
54
- `finalizeCallback` is invoked to indicate that the `Napi::Buffer` has been released.
55
-
56
- ```cpp
57
- template <typename Finalizer>
58
- static Napi::Buffer<T> Napi::Buffer::New(napi_env env,
59
- T* data,
60
- size_t length,
61
- Finalizer finalizeCallback);
62
- ```
63
-
64
- - `[in] env`: The environment in which to create the `Napi::Buffer` object.
65
- - `[in] data`: The pointer to the external data to expose.
66
- - `[in] length`: The number of `T` elements in the external data.
67
- - `[in] finalizeCallback`: The function to be called when the `Napi::Buffer` is
68
- destroyed. It must implement `operator()`, accept a `T*` (which is the
69
- external data pointer), and return `void`.
70
-
71
- Returns a new `Napi::Buffer` object.
72
-
73
- ### New
74
-
75
- Wraps the provided external data into a new `Napi::Buffer` object.
76
-
77
- The `Napi::Buffer` object does not assume ownership for the data and expects it to be
78
- valid for the lifetime of the object. The data can only be freed once the
79
- `finalizeCallback` is invoked to indicate that the `Napi::Buffer` has been released.
80
-
81
- ```cpp
82
- template <typename Finalizer, typename Hint>
83
- static Napi::Buffer<T> Napi::Buffer::New(napi_env env,
84
- T* data,
85
- size_t length,
86
- Finalizer finalizeCallback,
87
- Hint* finalizeHint);
88
- ```
89
-
90
- - `[in] env`: The environment in which to create the `Napi::Buffer` object.
91
- - `[in] data`: The pointer to the external data to expose.
92
- - `[in] length`: The number of `T` elements in the external data.
93
- - `[in] finalizeCallback`: The function to be called when the `Napi::Buffer` is
94
- destroyed. It must implement `operator()`, accept a `T*` (which is the
95
- external data pointer) and `Hint*`, and return `void`.
96
- - `[in] finalizeHint`: The hint to be passed as the second parameter of the
97
- finalize callback.
98
-
99
- Returns a new `Napi::Buffer` object.
100
-
101
- ### Copy
102
-
103
- Allocates a new `Napi::Buffer` object and copies the provided external data into it.
104
-
105
- ```cpp
106
- static Napi::Buffer<T> Napi::Buffer::Copy(napi_env env, const T* data, size_t length);
107
- ```
108
-
109
- - `[in] env`: The environment in which to create the `Napi::Buffer` object.
110
- - `[in] data`: The pointer to the external data to copy.
111
- - `[in] length`: The number of `T` elements in the external data.
112
-
113
- Returns a new `Napi::Buffer` object containing a copy of the data.
114
-
115
- ### Constructor
116
-
117
- Initializes an empty instance of the `Napi::Buffer` class.
118
-
119
- ```cpp
120
- Napi::Buffer::Buffer();
121
- ```
122
-
123
- ### Constructor
124
-
125
- Initializes the `Napi::Buffer` object using an existing Uint8Array.
126
-
127
- ```cpp
128
- Napi::Buffer::Buffer(napi_env env, napi_value value);
129
- ```
130
-
131
- - `[in] env`: The environment in which to create the `Napi::Buffer` object.
132
- - `[in] value`: The Uint8Array reference to wrap.
133
-
134
- ### Data
135
-
136
- ```cpp
137
- T* Napi::Buffer::Data() const;
138
- ```
139
-
140
- Returns a pointer the external data.
141
-
142
- ### Length
143
-
144
- ```cpp
145
- size_t Napi::Buffer::Length() const;
146
- ```
147
-
148
- Returns the number of `T` elements in the external data.
149
-
150
- [`Napi::Uint8Array`]: ./typed_array_of.md
1
+ # Buffer
2
+
3
+ Class `Napi::Buffer` inherits from class [`Napi::Uint8Array`][].
4
+
5
+ The `Napi::Buffer` class creates a projection of raw data that can be consumed by
6
+ script.
7
+
8
+ ## Methods
9
+
10
+ ### New
11
+
12
+ Allocates a new `Napi::Buffer` object with a given length.
13
+
14
+ ```cpp
15
+ static Napi::Buffer<T> Napi::Buffer::New(napi_env env, size_t length);
16
+ ```
17
+
18
+ - `[in] env`: The environment in which to create the `Napi::Buffer` object.
19
+ - `[in] length`: The number of `T` elements to allocate.
20
+
21
+ Returns a new `Napi::Buffer` object.
22
+
23
+ ### New
24
+
25
+ Wraps the provided external data into a new `Napi::Buffer` object.
26
+
27
+ The `Napi::Buffer` object does not assume ownership for the data and expects it to be
28
+ valid for the lifetime of the object. Since the `Napi::Buffer` is subject to garbage
29
+ collection this overload is only suitable for data which is static and never
30
+ needs to be freed.
31
+ This factory method will not provide the caller with an opportunity to free the
32
+ data when the `Napi::Buffer` gets garbage-collected. If you need to free the
33
+ data retained by the `Napi::Buffer` object please use other variants of the
34
+ `Napi::Buffer::New` factory method that accept `Napi::Finalizer`, which is a
35
+ function that will be invoked when the `Napi::Buffer` object has been
36
+ destroyed.
37
+
38
+ ```cpp
39
+ static Napi::Buffer<T> Napi::Buffer::New(napi_env env, T* data, size_t length);
40
+ ```
41
+
42
+ - `[in] env`: The environment in which to create the `Napi::Buffer` object.
43
+ - `[in] data`: The pointer to the external data to expose.
44
+ - `[in] length`: The number of `T` elements in the external data.
45
+
46
+ Returns a new `Napi::Buffer` object.
47
+
48
+ ### New
49
+
50
+ Wraps the provided external data into a new `Napi::Buffer` object.
51
+
52
+ The `Napi::Buffer` object does not assume ownership for the data and expects it
53
+ to be valid for the lifetime of the object. The data can only be freed once the
54
+ `finalizeCallback` is invoked to indicate that the `Napi::Buffer` has been released.
55
+
56
+ ```cpp
57
+ template <typename Finalizer>
58
+ static Napi::Buffer<T> Napi::Buffer::New(napi_env env,
59
+ T* data,
60
+ size_t length,
61
+ Finalizer finalizeCallback);
62
+ ```
63
+
64
+ - `[in] env`: The environment in which to create the `Napi::Buffer` object.
65
+ - `[in] data`: The pointer to the external data to expose.
66
+ - `[in] length`: The number of `T` elements in the external data.
67
+ - `[in] finalizeCallback`: The function to be called when the `Napi::Buffer` is
68
+ destroyed. It must implement `operator()`, accept a `T*` (which is the
69
+ external data pointer), and return `void`.
70
+
71
+ Returns a new `Napi::Buffer` object.
72
+
73
+ ### New
74
+
75
+ Wraps the provided external data into a new `Napi::Buffer` object.
76
+
77
+ The `Napi::Buffer` object does not assume ownership for the data and expects it to be
78
+ valid for the lifetime of the object. The data can only be freed once the
79
+ `finalizeCallback` is invoked to indicate that the `Napi::Buffer` has been released.
80
+
81
+ ```cpp
82
+ template <typename Finalizer, typename Hint>
83
+ static Napi::Buffer<T> Napi::Buffer::New(napi_env env,
84
+ T* data,
85
+ size_t length,
86
+ Finalizer finalizeCallback,
87
+ Hint* finalizeHint);
88
+ ```
89
+
90
+ - `[in] env`: The environment in which to create the `Napi::Buffer` object.
91
+ - `[in] data`: The pointer to the external data to expose.
92
+ - `[in] length`: The number of `T` elements in the external data.
93
+ - `[in] finalizeCallback`: The function to be called when the `Napi::Buffer` is
94
+ destroyed. It must implement `operator()`, accept a `T*` (which is the
95
+ external data pointer) and `Hint*`, and return `void`.
96
+ - `[in] finalizeHint`: The hint to be passed as the second parameter of the
97
+ finalize callback.
98
+
99
+ Returns a new `Napi::Buffer` object.
100
+
101
+ ### Copy
102
+
103
+ Allocates a new `Napi::Buffer` object and copies the provided external data into it.
104
+
105
+ ```cpp
106
+ static Napi::Buffer<T> Napi::Buffer::Copy(napi_env env, const T* data, size_t length);
107
+ ```
108
+
109
+ - `[in] env`: The environment in which to create the `Napi::Buffer` object.
110
+ - `[in] data`: The pointer to the external data to copy.
111
+ - `[in] length`: The number of `T` elements in the external data.
112
+
113
+ Returns a new `Napi::Buffer` object containing a copy of the data.
114
+
115
+ ### Constructor
116
+
117
+ Initializes an empty instance of the `Napi::Buffer` class.
118
+
119
+ ```cpp
120
+ Napi::Buffer::Buffer();
121
+ ```
122
+
123
+ ### Constructor
124
+
125
+ Initializes the `Napi::Buffer` object using an existing Uint8Array.
126
+
127
+ ```cpp
128
+ Napi::Buffer::Buffer(napi_env env, napi_value value);
129
+ ```
130
+
131
+ - `[in] env`: The environment in which to create the `Napi::Buffer` object.
132
+ - `[in] value`: The Uint8Array reference to wrap.
133
+
134
+ ### Data
135
+
136
+ ```cpp
137
+ T* Napi::Buffer::Data() const;
138
+ ```
139
+
140
+ Returns a pointer the external data.
141
+
142
+ ### Length
143
+
144
+ ```cpp
145
+ size_t Napi::Buffer::Length() const;
146
+ ```
147
+
148
+ Returns the number of `T` elements in the external data.
149
+
150
+ [`Napi::Uint8Array`]: ./typed_array_of.md