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,286 +1,286 @@
1
- # Property Descriptor
2
-
3
- A [`Napi::Object`](object.md) can be assigned properties via its [`DefineProperty`](object.md#defineproperty) and [`DefineProperties`](object.md#defineproperties) functions, which take PropertyDescriptor(s) as their parameters. The `Napi::PropertyDescriptor` can contain either values or functions, which are then assigned to the `Napi::Object`. Note that a single instance of a `Napi::PropertyDescriptor` class can only contain either one value, or at most two functions. PropertyDescriptors can only be created through the class methods [`Accessor`](#accessor), [`Function`](#function), or [`Value`](#value), each of which return a new static instance of a `Napi::PropertyDescriptor`.
4
-
5
- ## Example
6
-
7
- ```cpp
8
- #include <napi.h>
9
-
10
- using namespace Napi;
11
-
12
- Value TestGetter(const CallbackInfo& info) {
13
- return Boolean::New(info.Env(), testValue);
14
- }
15
-
16
- void TestSetter(const CallbackInfo& info) {
17
- testValue = info[0].As<Boolean>();
18
- }
19
-
20
- Value TestFunction(const CallbackInfo& info) {
21
- return Boolean::New(info.Env(), true);
22
- }
23
-
24
- Void Init(Env env) {
25
- // Create an object.
26
- Object obj = Object::New(env);
27
-
28
- // Accessor
29
- PropertyDescriptor pd1 = PropertyDescriptor::Accessor<TestGetter>("pd1");
30
- PropertyDescriptor pd2 =
31
- PropertyDescriptor::Accessor<TestGetter, TestSetter>("pd2");
32
- // Function
33
- PropertyDescriptor pd3 = PropertyDescriptor::Function(env,
34
- "function",
35
- TestFunction);
36
- // Value
37
- Boolean true_bool = Boolean::New(env, true);
38
- PropertyDescriptor pd4 =
39
- PropertyDescriptor::Value("boolean value",
40
- Napi::Boolean::New(env, true),
41
- napi_writable);
42
-
43
- // Assign properties to the object.
44
- obj.DefineProperties({pd1, pd2, pd3, pd4});
45
- }
46
- ```
47
-
48
- ## Types
49
-
50
- ### PropertyDescriptor::GetterCallback
51
-
52
- ```cpp
53
- using GetterCallback = Napi::Value (*)(const Napi::CallbackInfo& info);
54
- ```
55
-
56
- This is the signature of a getter function to be passed as a template parameter
57
- to `PropertyDescriptor::Accessor`.
58
-
59
- ### PropertyDescriptor::SetterCallback
60
-
61
- ```cpp
62
- using SetterCallback = void (*)(const Napi::CallbackInfo& info);
63
- ```
64
-
65
- This is the signature of a setter function to be passed as a template parameter
66
- to `PropertyDescriptor::Accessor`.
67
-
68
- ## Methods
69
-
70
- ### Constructor
71
-
72
- ```cpp
73
- Napi::PropertyDescriptor::PropertyDescriptor (napi_property_descriptor desc);
74
- ```
75
-
76
- * `[in] desc`: A PropertyDescriptor that is needed in order to create another PropertyDescriptor.
77
-
78
- ### Accessor
79
-
80
- ```cpp
81
- template <Napi::PropertyDescriptor::GetterCallback Getter>
82
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
83
- napi_property_attributes attributes = napi_default,
84
- void* data = nullptr);
85
- ```
86
-
87
- * `[template] Getter`: A getter function.
88
- * `[in] attributes`: Potential attributes for the getter function.
89
- * `[in] data`: A pointer to data of any type, default is a null pointer.
90
-
91
- Returns a PropertyDescriptor that contains a read-only property.
92
-
93
- The name of the property can be any of the following types:
94
- - `const char*`
95
- - `const std::string &`
96
- - `napi_value value`
97
- - `Napi::Name`
98
-
99
- ```cpp
100
- template <
101
- Napi::PropertyDescriptor::GetterCallback Getter,
102
- Napi::PropertyDescriptor::SetterCallback Setter>
103
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
104
- napi_property_attributes attributes = napi_default,
105
- void* data = nullptr);
106
- ```
107
-
108
- * `[template] Getter`: A getter function.
109
- * `[template] Setter`: A setter function.
110
- * `[in] attributes`: Potential attributes for the getter function.
111
- * `[in] data`: A pointer to data of any type, default is a null pointer.
112
-
113
- Returns a PropertyDescriptor that contains a read-write property.
114
-
115
- The name of the property can be any of the following types:
116
- - `const char*`
117
- - `const std::string &`
118
- - `napi_value value`
119
- - `Napi::Name`
120
-
121
- ```cpp
122
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
123
- Getter getter,
124
- napi_property_attributes attributes = napi_default,
125
- void *data = nullptr);
126
- ```
127
-
128
- * `[in] name`: The name used for the getter function.
129
- * `[in] getter`: A getter function.
130
- * `[in] attributes`: Potential attributes for the getter function.
131
- * `[in] data`: A pointer to data of any type, default is a null pointer.
132
-
133
- Returns a PropertyDescriptor that contains a function.
134
-
135
- The name of the property can be any of the following types:
136
- - `const char*`
137
- - `const std::string &`
138
- - `napi_value value`
139
- - `Napi::Name`
140
-
141
- **The above signature is deprecated. It will result in a memory leak if used.**
142
-
143
- ```cpp
144
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (
145
- Napi::Env env,
146
- Napi::Object object,
147
- ___ name,
148
- Getter getter,
149
- napi_property_attributes attributes = napi_default,
150
- void *data = nullptr);
151
- ```
152
-
153
- * `[in] env`: The environment in which to create this accessor.
154
- * `[in] object`: The object on which the accessor will be defined.
155
- * `[in] name`: The name used for the getter function.
156
- * `[in] getter`: A getter function.
157
- * `[in] attributes`: Potential attributes for the getter function.
158
- * `[in] data`: A pointer to data of any type, default is a null pointer.
159
-
160
- Returns a `Napi::PropertyDescriptor` that contains a `Getter` accessor.
161
-
162
- The name of the property can be any of the following types:
163
- - `const char*`
164
- - `const std::string &`
165
- - `Napi::Name`
166
-
167
- ```cpp
168
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
169
- Getter getter,
170
- Setter setter,
171
- napi_property_attributes attributes = napi_default,
172
- void *data = nullptr);
173
- ```
174
-
175
- * `[in] name`: The name of the getter and setter function.
176
- * `[in] getter`: The getter function.
177
- * `[in] setter`: The setter function.
178
- * `[in] attributes`: Potential attributes for the getter function.
179
- * `[in] data`: A pointer to data of any type, default is a null pointer.
180
-
181
- Returns a `Napi::PropertyDescriptor` that contains a `Getter` and `Setter` function.
182
-
183
- The name of the property can be any of the following types:
184
- - `const char*`
185
- - `const std::string &`
186
- - `napi_value value`
187
- - `Napi::Name`
188
-
189
- **The above signature is deprecated. It will result in a memory leak if used.**
190
-
191
- ```cpp
192
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (
193
- Napi::Env env,
194
- Napi::Object object,
195
- ___ name,
196
- Getter getter,
197
- Setter setter,
198
- napi_property_attributes attributes = napi_default,
199
- void *data = nullptr);
200
- ```
201
-
202
- * `[in] env`: The environment in which to create this accessor.
203
- * `[in] object`: The object on which the accessor will be defined.
204
- * `[in] name`: The name of the getter and setter function.
205
- * `[in] getter`: The getter function.
206
- * `[in] setter`: The setter function.
207
- * `[in] attributes`: Potential attributes for the getter function.
208
- * `[in] data`: A pointer to data of any type, default is a null pointer.
209
-
210
- Returns a `Napi::PropertyDescriptor` that contains a `Getter` and `Setter` function.
211
-
212
- The name of the property can be any of the following types:
213
- - `const char*`
214
- - `const std::string &`
215
- - `Napi::Name`
216
-
217
- ### Function
218
-
219
- ```cpp
220
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Function (___ name,
221
- Callable cb,
222
- napi_property_attributes attributes = napi_default,
223
- void *data = nullptr);
224
- ```
225
-
226
- * `[in] name`: The name of the Callable function.
227
- * `[in] cb`: The function
228
- * `[in] attributes`: Potential attributes for the getter function.
229
- * `[in] data`: A pointer to data of any type, default is a null pointer.
230
-
231
- Returns a `Napi::PropertyDescriptor` that contains a callable `Napi::Function`.
232
-
233
- The name of the property can be any of the following types:
234
- - `const char*`
235
- - `const std::string &`
236
- - `napi_value value`
237
- - `Napi::Name`
238
-
239
- **The above signature is deprecated. It will result in a memory leak if used.**
240
-
241
- ```cpp
242
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Function (
243
- Napi::Env env,
244
- ___ name,
245
- Callable cb,
246
- napi_property_attributes attributes = napi_default,
247
- void *data = nullptr);
248
- ```
249
-
250
- * `[in] env`: The environment in which to create this accessor.
251
- * `[in] name`: The name of the Callable function.
252
- * `[in] cb`: The function
253
- * `[in] attributes`: Potential attributes for the getter function.
254
- * `[in] data`: A pointer to data of any type, default is a null pointer.
255
-
256
- Returns a `Napi::PropertyDescriptor` that contains a callable `Napi::Function`.
257
-
258
- The name of the property can be any of the following types:
259
- - `const char*`
260
- - `const std::string &`
261
- - `Napi::Name`
262
-
263
- ### Value
264
-
265
- ```cpp
266
- static Napi::PropertyDescriptor Napi::PropertyDescriptor::Value (___ name,
267
- napi_value value,
268
- napi_property_attributes attributes = napi_default);
269
- ```
270
-
271
- The name of the property can be any of the following types:
272
- - `const char*`
273
- - `const std::string &`
274
- - `napi_value value`
275
- - `Napi::Name`
276
-
277
- ## Related Information
278
-
279
- ### napi\_property\_attributes
280
- `napi_property_attributes` are flags used to indicate to JavaScript certain permissions that the property is meant to have. The following are the flag options:
281
- - napi\_default,
282
- - napi\_writable,
283
- - napi\_enumerable,
284
- - napi\_configurable
285
- For more information on the flags and on napi\_property\_attributes, please read the documentation [here](https://github.com/nodejs/node/blob/HEAD/doc/api/n-api.md#napi_property_attributes).
286
-
1
+ # Property Descriptor
2
+
3
+ A [`Napi::Object`](object.md) can be assigned properties via its [`DefineProperty`](object.md#defineproperty) and [`DefineProperties`](object.md#defineproperties) functions, which take PropertyDescriptor(s) as their parameters. The `Napi::PropertyDescriptor` can contain either values or functions, which are then assigned to the `Napi::Object`. Note that a single instance of a `Napi::PropertyDescriptor` class can only contain either one value, or at most two functions. PropertyDescriptors can only be created through the class methods [`Accessor`](#accessor), [`Function`](#function), or [`Value`](#value), each of which return a new static instance of a `Napi::PropertyDescriptor`.
4
+
5
+ ## Example
6
+
7
+ ```cpp
8
+ #include <napi.h>
9
+
10
+ using namespace Napi;
11
+
12
+ Value TestGetter(const CallbackInfo& info) {
13
+ return Boolean::New(info.Env(), testValue);
14
+ }
15
+
16
+ void TestSetter(const CallbackInfo& info) {
17
+ testValue = info[0].As<Boolean>();
18
+ }
19
+
20
+ Value TestFunction(const CallbackInfo& info) {
21
+ return Boolean::New(info.Env(), true);
22
+ }
23
+
24
+ Void Init(Env env) {
25
+ // Create an object.
26
+ Object obj = Object::New(env);
27
+
28
+ // Accessor
29
+ PropertyDescriptor pd1 = PropertyDescriptor::Accessor<TestGetter>("pd1");
30
+ PropertyDescriptor pd2 =
31
+ PropertyDescriptor::Accessor<TestGetter, TestSetter>("pd2");
32
+ // Function
33
+ PropertyDescriptor pd3 = PropertyDescriptor::Function(env,
34
+ "function",
35
+ TestFunction);
36
+ // Value
37
+ Boolean true_bool = Boolean::New(env, true);
38
+ PropertyDescriptor pd4 =
39
+ PropertyDescriptor::Value("boolean value",
40
+ Napi::Boolean::New(env, true),
41
+ napi_writable);
42
+
43
+ // Assign properties to the object.
44
+ obj.DefineProperties({pd1, pd2, pd3, pd4});
45
+ }
46
+ ```
47
+
48
+ ## Types
49
+
50
+ ### PropertyDescriptor::GetterCallback
51
+
52
+ ```cpp
53
+ using GetterCallback = Napi::Value (*)(const Napi::CallbackInfo& info);
54
+ ```
55
+
56
+ This is the signature of a getter function to be passed as a template parameter
57
+ to `PropertyDescriptor::Accessor`.
58
+
59
+ ### PropertyDescriptor::SetterCallback
60
+
61
+ ```cpp
62
+ using SetterCallback = void (*)(const Napi::CallbackInfo& info);
63
+ ```
64
+
65
+ This is the signature of a setter function to be passed as a template parameter
66
+ to `PropertyDescriptor::Accessor`.
67
+
68
+ ## Methods
69
+
70
+ ### Constructor
71
+
72
+ ```cpp
73
+ Napi::PropertyDescriptor::PropertyDescriptor (napi_property_descriptor desc);
74
+ ```
75
+
76
+ * `[in] desc`: A PropertyDescriptor that is needed in order to create another PropertyDescriptor.
77
+
78
+ ### Accessor
79
+
80
+ ```cpp
81
+ template <Napi::PropertyDescriptor::GetterCallback Getter>
82
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
83
+ napi_property_attributes attributes = napi_default,
84
+ void* data = nullptr);
85
+ ```
86
+
87
+ * `[template] Getter`: A getter function.
88
+ * `[in] attributes`: Potential attributes for the getter function.
89
+ * `[in] data`: A pointer to data of any type, default is a null pointer.
90
+
91
+ Returns a PropertyDescriptor that contains a read-only property.
92
+
93
+ The name of the property can be any of the following types:
94
+ - `const char*`
95
+ - `const std::string &`
96
+ - `napi_value value`
97
+ - `Napi::Name`
98
+
99
+ ```cpp
100
+ template <
101
+ Napi::PropertyDescriptor::GetterCallback Getter,
102
+ Napi::PropertyDescriptor::SetterCallback Setter>
103
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
104
+ napi_property_attributes attributes = napi_default,
105
+ void* data = nullptr);
106
+ ```
107
+
108
+ * `[template] Getter`: A getter function.
109
+ * `[template] Setter`: A setter function.
110
+ * `[in] attributes`: Potential attributes for the getter function.
111
+ * `[in] data`: A pointer to data of any type, default is a null pointer.
112
+
113
+ Returns a PropertyDescriptor that contains a read-write property.
114
+
115
+ The name of the property can be any of the following types:
116
+ - `const char*`
117
+ - `const std::string &`
118
+ - `napi_value value`
119
+ - `Napi::Name`
120
+
121
+ ```cpp
122
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
123
+ Getter getter,
124
+ napi_property_attributes attributes = napi_default,
125
+ void *data = nullptr);
126
+ ```
127
+
128
+ * `[in] name`: The name used for the getter function.
129
+ * `[in] getter`: A getter function.
130
+ * `[in] attributes`: Potential attributes for the getter function.
131
+ * `[in] data`: A pointer to data of any type, default is a null pointer.
132
+
133
+ Returns a PropertyDescriptor that contains a function.
134
+
135
+ The name of the property can be any of the following types:
136
+ - `const char*`
137
+ - `const std::string &`
138
+ - `napi_value value`
139
+ - `Napi::Name`
140
+
141
+ **The above signature is deprecated. It will result in a memory leak if used.**
142
+
143
+ ```cpp
144
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (
145
+ Napi::Env env,
146
+ Napi::Object object,
147
+ ___ name,
148
+ Getter getter,
149
+ napi_property_attributes attributes = napi_default,
150
+ void *data = nullptr);
151
+ ```
152
+
153
+ * `[in] env`: The environment in which to create this accessor.
154
+ * `[in] object`: The object on which the accessor will be defined.
155
+ * `[in] name`: The name used for the getter function.
156
+ * `[in] getter`: A getter function.
157
+ * `[in] attributes`: Potential attributes for the getter function.
158
+ * `[in] data`: A pointer to data of any type, default is a null pointer.
159
+
160
+ Returns a `Napi::PropertyDescriptor` that contains a `Getter` accessor.
161
+
162
+ The name of the property can be any of the following types:
163
+ - `const char*`
164
+ - `const std::string &`
165
+ - `Napi::Name`
166
+
167
+ ```cpp
168
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
169
+ Getter getter,
170
+ Setter setter,
171
+ napi_property_attributes attributes = napi_default,
172
+ void *data = nullptr);
173
+ ```
174
+
175
+ * `[in] name`: The name of the getter and setter function.
176
+ * `[in] getter`: The getter function.
177
+ * `[in] setter`: The setter function.
178
+ * `[in] attributes`: Potential attributes for the getter function.
179
+ * `[in] data`: A pointer to data of any type, default is a null pointer.
180
+
181
+ Returns a `Napi::PropertyDescriptor` that contains a `Getter` and `Setter` function.
182
+
183
+ The name of the property can be any of the following types:
184
+ - `const char*`
185
+ - `const std::string &`
186
+ - `napi_value value`
187
+ - `Napi::Name`
188
+
189
+ **The above signature is deprecated. It will result in a memory leak if used.**
190
+
191
+ ```cpp
192
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (
193
+ Napi::Env env,
194
+ Napi::Object object,
195
+ ___ name,
196
+ Getter getter,
197
+ Setter setter,
198
+ napi_property_attributes attributes = napi_default,
199
+ void *data = nullptr);
200
+ ```
201
+
202
+ * `[in] env`: The environment in which to create this accessor.
203
+ * `[in] object`: The object on which the accessor will be defined.
204
+ * `[in] name`: The name of the getter and setter function.
205
+ * `[in] getter`: The getter function.
206
+ * `[in] setter`: The setter function.
207
+ * `[in] attributes`: Potential attributes for the getter function.
208
+ * `[in] data`: A pointer to data of any type, default is a null pointer.
209
+
210
+ Returns a `Napi::PropertyDescriptor` that contains a `Getter` and `Setter` function.
211
+
212
+ The name of the property can be any of the following types:
213
+ - `const char*`
214
+ - `const std::string &`
215
+ - `Napi::Name`
216
+
217
+ ### Function
218
+
219
+ ```cpp
220
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Function (___ name,
221
+ Callable cb,
222
+ napi_property_attributes attributes = napi_default,
223
+ void *data = nullptr);
224
+ ```
225
+
226
+ * `[in] name`: The name of the Callable function.
227
+ * `[in] cb`: The function
228
+ * `[in] attributes`: Potential attributes for the getter function.
229
+ * `[in] data`: A pointer to data of any type, default is a null pointer.
230
+
231
+ Returns a `Napi::PropertyDescriptor` that contains a callable `Napi::Function`.
232
+
233
+ The name of the property can be any of the following types:
234
+ - `const char*`
235
+ - `const std::string &`
236
+ - `napi_value value`
237
+ - `Napi::Name`
238
+
239
+ **The above signature is deprecated. It will result in a memory leak if used.**
240
+
241
+ ```cpp
242
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Function (
243
+ Napi::Env env,
244
+ ___ name,
245
+ Callable cb,
246
+ napi_property_attributes attributes = napi_default,
247
+ void *data = nullptr);
248
+ ```
249
+
250
+ * `[in] env`: The environment in which to create this accessor.
251
+ * `[in] name`: The name of the Callable function.
252
+ * `[in] cb`: The function
253
+ * `[in] attributes`: Potential attributes for the getter function.
254
+ * `[in] data`: A pointer to data of any type, default is a null pointer.
255
+
256
+ Returns a `Napi::PropertyDescriptor` that contains a callable `Napi::Function`.
257
+
258
+ The name of the property can be any of the following types:
259
+ - `const char*`
260
+ - `const std::string &`
261
+ - `Napi::Name`
262
+
263
+ ### Value
264
+
265
+ ```cpp
266
+ static Napi::PropertyDescriptor Napi::PropertyDescriptor::Value (___ name,
267
+ napi_value value,
268
+ napi_property_attributes attributes = napi_default);
269
+ ```
270
+
271
+ The name of the property can be any of the following types:
272
+ - `const char*`
273
+ - `const std::string &`
274
+ - `napi_value value`
275
+ - `Napi::Name`
276
+
277
+ ## Related Information
278
+
279
+ ### napi\_property\_attributes
280
+ `napi_property_attributes` are flags used to indicate to JavaScript certain permissions that the property is meant to have. The following are the flag options:
281
+ - napi\_default,
282
+ - napi\_writable,
283
+ - napi\_enumerable,
284
+ - napi\_configurable
285
+ For more information on the flags and on napi\_property\_attributes, please read the documentation [here](https://github.com/nodejs/node/blob/HEAD/doc/api/n-api.md#napi_property_attributes).
286
+
@@ -1,50 +1,50 @@
1
- # PropertyLValue
2
-
3
- The `Napi::Object::PropertyLValue` class is a helper class provided by
4
- `Napi::Object` to allow more intuitive assignment of properties.
5
-
6
- ## Example
7
- ```cpp
8
- #include <napi.h>
9
-
10
- using namespace Napi;
11
-
12
- Void Init(Env env) {
13
- // Create a new instance
14
- Object obj = Object::New(env);
15
-
16
- // Assign a value to a property.
17
- obj["hello"] = "world";
18
- }
19
- ```
20
-
21
- In the above example, `obj["hello"]` returns a `Napi::Object::PropertyLValue`
22
- whose `operator=()` method accepts a string which will become the value of the
23
- "hello" property of the newly created object.
24
-
25
- In general, `obj[key] = value` is the equivalent of `obj.Set(key, value)`, where
26
- the types of `key` and `value` are all those supported by
27
- [`Napi::Object::Set()`](object.md#set).
28
-
29
- ## Methods
30
-
31
- ### operator Value()
32
-
33
- ```cpp
34
- operator Value() const;
35
- ```
36
-
37
- Implicitly casts this `Napi::Object::PropertyLValue` to a `Napi::Value`.
38
-
39
- ### operator =()
40
-
41
- ```cpp
42
- template <typename ValueType>
43
- PropertyLValue& operator =(ValueType value);
44
- ```
45
-
46
- * `[in] value` a value to assign to the property referred to by the
47
- `Napi::Object::PropertyLValue`. The type of the value is one of the types
48
- supported by the second parameter of [`Napi::Object::Set()`](object.md#set).
49
-
50
- Returns a self-reference.
1
+ # PropertyLValue
2
+
3
+ The `Napi::Object::PropertyLValue` class is a helper class provided by
4
+ `Napi::Object` to allow more intuitive assignment of properties.
5
+
6
+ ## Example
7
+ ```cpp
8
+ #include <napi.h>
9
+
10
+ using namespace Napi;
11
+
12
+ Void Init(Env env) {
13
+ // Create a new instance
14
+ Object obj = Object::New(env);
15
+
16
+ // Assign a value to a property.
17
+ obj["hello"] = "world";
18
+ }
19
+ ```
20
+
21
+ In the above example, `obj["hello"]` returns a `Napi::Object::PropertyLValue`
22
+ whose `operator=()` method accepts a string which will become the value of the
23
+ "hello" property of the newly created object.
24
+
25
+ In general, `obj[key] = value` is the equivalent of `obj.Set(key, value)`, where
26
+ the types of `key` and `value` are all those supported by
27
+ [`Napi::Object::Set()`](object.md#set).
28
+
29
+ ## Methods
30
+
31
+ ### operator Value()
32
+
33
+ ```cpp
34
+ operator Value() const;
35
+ ```
36
+
37
+ Implicitly casts this `Napi::Object::PropertyLValue` to a `Napi::Value`.
38
+
39
+ ### operator =()
40
+
41
+ ```cpp
42
+ template <typename ValueType>
43
+ PropertyLValue& operator =(ValueType value);
44
+ ```
45
+
46
+ * `[in] value` a value to assign to the property referred to by the
47
+ `Napi::Object::PropertyLValue`. The type of the value is one of the types
48
+ supported by the second parameter of [`Napi::Object::Set()`](object.md#set).
49
+
50
+ Returns a self-reference.