koffi 0.9.4 → 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 (327) 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
@@ -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