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.
- package/CMakeLists.txt +63 -60
- package/README.md +162 -153
- package/package.json +19 -18
- package/src/call.hh +27 -27
- package/src/call_arm32.cc +514 -0
- package/src/call_arm32_fwd.S +108 -0
- package/src/call_arm64.cc +497 -482
- package/src/call_arm64_fwd.S +110 -115
- package/src/call_x64_sysv.cc +477 -477
- package/src/call_x64_sysv_fwd.S +131 -131
- package/src/call_x64_win.cc +243 -243
- package/src/call_x64_win_fwd.asm +105 -105
- package/src/call_x86.cc +259 -259
- package/src/call_x86_fwd.S +48 -48
- package/src/call_x86_fwd.asm +50 -50
- package/src/ffi.cc +504 -504
- package/src/ffi.hh +136 -135
- package/src/util.cc +297 -296
- package/src/util.hh +80 -80
- package/vendor/dragonbox/CMakeLists.txt +122 -122
- package/vendor/dragonbox/LICENSE-Apache2-LLVM +218 -218
- package/vendor/dragonbox/LICENSE-Boost +23 -23
- package/vendor/dragonbox/README.md +277 -277
- package/vendor/dragonbox/cmake/dragonboxConfig.cmake +1 -1
- package/vendor/dragonbox/include/dragonbox/dragonbox.h +2674 -2670
- package/vendor/dragonbox/include/dragonbox/dragonbox_to_chars.h +108 -108
- package/vendor/dragonbox/other_files/Dragonbox.pdf +0 -0
- package/vendor/dragonbox/other_files/unknown_win64_vc2019.html +539 -539
- package/vendor/dragonbox/source/dragonbox_to_chars.cpp +303 -303
- package/vendor/dragonbox/subproject/3rdparty/grisu_exact/CMakeLists.txt +23 -23
- package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.cpp +238 -238
- package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.h +95 -95
- package/vendor/dragonbox/subproject/3rdparty/grisu_exact/grisu_exact.h +2666 -2666
- package/vendor/dragonbox/subproject/3rdparty/ryu/CMakeLists.txt +16 -16
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/common.h +114 -114
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s.c +509 -509
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_full_table.h +367 -367
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_intrinsics.h +357 -357
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/digit_table.h +35 -35
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s.c +345 -345
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_full_table.h +55 -55
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_intrinsics.h +128 -128
- package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/ryu.h +46 -46
- package/vendor/dragonbox/subproject/3rdparty/schubfach/CMakeLists.txt +21 -21
- package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.cc +699 -699
- package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.h +31 -31
- package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.cc +1354 -1354
- package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.h +31 -31
- package/vendor/dragonbox/subproject/3rdparty/shaded_plots/example_shaded_plots.m +68 -68
- package/vendor/dragonbox/subproject/3rdparty/shaded_plots/license.txt +25 -25
- package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution.m +92 -92
- package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution_prctile.m +121 -121
- package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_histogram_shaded.m +99 -99
- package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_shaded.m +93 -93
- package/vendor/dragonbox/subproject/benchmark/CMakeLists.txt +64 -64
- package/vendor/dragonbox/subproject/benchmark/include/benchmark.h +40 -40
- package/vendor/dragonbox/subproject/benchmark/matlab/plot_benchmarks.m +21 -21
- package/vendor/dragonbox/subproject/benchmark/matlab/plot_digit_benchmark.m +78 -78
- package/vendor/dragonbox/subproject/benchmark/matlab/plot_uniform_benchmark.m +95 -95
- package/vendor/dragonbox/subproject/benchmark/source/benchmark.cpp +237 -237
- package/vendor/dragonbox/subproject/benchmark/source/dragonbox.cpp +30 -30
- package/vendor/dragonbox/subproject/benchmark/source/grisu_exact.cpp +36 -36
- package/vendor/dragonbox/subproject/benchmark/source/ryu.cpp +27 -27
- package/vendor/dragonbox/subproject/benchmark/source/schubfach.cpp +31 -31
- package/vendor/dragonbox/subproject/common/CMakeLists.txt +41 -41
- package/vendor/dragonbox/subproject/common/include/best_rational_approx.h +96 -96
- package/vendor/dragonbox/subproject/common/include/big_uint.h +217 -217
- package/vendor/dragonbox/subproject/common/include/continued_fractions.h +173 -173
- package/vendor/dragonbox/subproject/common/include/good_rational_approx.h +266 -266
- package/vendor/dragonbox/subproject/common/include/random_float.h +182 -182
- package/vendor/dragonbox/subproject/common/include/rational_continued_fractions.h +56 -56
- package/vendor/dragonbox/subproject/common/source/big_uint.cpp +601 -601
- package/vendor/dragonbox/subproject/meta/CMakeLists.txt +40 -40
- package/vendor/dragonbox/subproject/meta/results/binary32_generated_cache.txt +81 -81
- package/vendor/dragonbox/subproject/meta/results/binary64_compressed_cache_error_table.txt +9 -9
- package/vendor/dragonbox/subproject/meta/results/binary64_generated_cache.txt +622 -622
- package/vendor/dragonbox/subproject/meta/source/generate_cache.cpp +126 -126
- package/vendor/dragonbox/subproject/meta/source/live_test.cpp +81 -81
- package/vendor/dragonbox/subproject/meta/source/perf_test.cpp +104 -104
- package/vendor/dragonbox/subproject/meta/source/sandbox.cpp +20 -20
- package/vendor/dragonbox/subproject/test/CMakeLists.txt +69 -69
- package/vendor/dragonbox/subproject/test/results/binary32.csv +255 -255
- package/vendor/dragonbox/subproject/test/results/binary64.csv +2047 -2047
- package/vendor/dragonbox/subproject/test/results/plot_required_bits.m +17 -17
- package/vendor/dragonbox/subproject/test/source/test_all_shorter_interval_cases.cpp +88 -88
- package/vendor/dragonbox/subproject/test/source/uniform_random_test.cpp +95 -95
- package/vendor/dragonbox/subproject/test/source/verify_cache_precision.cpp +337 -337
- package/vendor/dragonbox/subproject/test/source/verify_compressed_cache.cpp +154 -154
- package/vendor/dragonbox/subproject/test/source/verify_fast_multiplication.cpp +168 -168
- package/vendor/dragonbox/subproject/test/source/verify_log_computation.cpp +251 -251
- package/vendor/dragonbox/subproject/test/source/verify_magic_division.cpp +113 -113
- package/vendor/libcc/libcc.cc +7651 -7651
- package/vendor/libcc/libcc.hh +4312 -4312
- package/vendor/node-addon-api/CHANGELOG.md +859 -859
- package/vendor/node-addon-api/CODE_OF_CONDUCT.md +4 -4
- package/vendor/node-addon-api/CONTRIBUTING.md +93 -93
- package/vendor/node-addon-api/LICENSE.md +12 -12
- package/vendor/node-addon-api/README.md +293 -293
- package/vendor/node-addon-api/appveyor.yml +37 -37
- package/vendor/node-addon-api/benchmark/README.md +47 -47
- package/vendor/node-addon-api/benchmark/binding.gyp +25 -25
- package/vendor/node-addon-api/benchmark/function_args.cc +217 -217
- package/vendor/node-addon-api/benchmark/function_args.js +60 -60
- package/vendor/node-addon-api/benchmark/index.js +34 -34
- package/vendor/node-addon-api/benchmark/property_descriptor.cc +91 -91
- package/vendor/node-addon-api/benchmark/property_descriptor.js +37 -37
- package/vendor/node-addon-api/common.gypi +21 -21
- package/vendor/node-addon-api/doc/addon.md +163 -163
- package/vendor/node-addon-api/doc/array.md +81 -81
- package/vendor/node-addon-api/doc/array_buffer.md +155 -155
- package/vendor/node-addon-api/doc/async_context.md +86 -86
- package/vendor/node-addon-api/doc/async_operations.md +31 -31
- package/vendor/node-addon-api/doc/async_worker.md +427 -427
- package/vendor/node-addon-api/doc/async_worker_variants.md +557 -557
- package/vendor/node-addon-api/doc/bigint.md +97 -97
- package/vendor/node-addon-api/doc/boolean.md +68 -68
- package/vendor/node-addon-api/doc/buffer.md +150 -150
- package/vendor/node-addon-api/doc/callback_scope.md +54 -54
- package/vendor/node-addon-api/doc/callbackinfo.md +97 -97
- package/vendor/node-addon-api/doc/checker-tool.md +32 -32
- package/vendor/node-addon-api/doc/class_property_descriptor.md +115 -115
- package/vendor/node-addon-api/doc/cmake-js.md +68 -68
- package/vendor/node-addon-api/doc/conversion-tool.md +27 -27
- package/vendor/node-addon-api/doc/creating_a_release.md +62 -62
- package/vendor/node-addon-api/doc/dataview.md +248 -248
- package/vendor/node-addon-api/doc/date.md +68 -68
- package/vendor/node-addon-api/doc/env.md +196 -196
- package/vendor/node-addon-api/doc/error.md +120 -120
- package/vendor/node-addon-api/doc/error_handling.md +254 -254
- package/vendor/node-addon-api/doc/escapable_handle_scope.md +80 -80
- package/vendor/node-addon-api/doc/external.md +63 -63
- package/vendor/node-addon-api/doc/function.md +402 -402
- package/vendor/node-addon-api/doc/function_reference.md +238 -238
- package/vendor/node-addon-api/doc/generator.md +13 -13
- package/vendor/node-addon-api/doc/handle_scope.md +63 -63
- package/vendor/node-addon-api/doc/hierarchy.md +91 -91
- package/vendor/node-addon-api/doc/instance_wrap.md +408 -408
- package/vendor/node-addon-api/doc/maybe.md +76 -76
- package/vendor/node-addon-api/doc/memory_management.md +27 -27
- package/vendor/node-addon-api/doc/name.md +29 -29
- package/vendor/node-addon-api/doc/node-gyp.md +82 -82
- package/vendor/node-addon-api/doc/number.md +163 -163
- package/vendor/node-addon-api/doc/object.md +432 -432
- package/vendor/node-addon-api/doc/object_lifetime_management.md +83 -83
- package/vendor/node-addon-api/doc/object_reference.md +117 -117
- package/vendor/node-addon-api/doc/object_wrap.md +561 -561
- package/vendor/node-addon-api/doc/prebuild_tools.md +16 -16
- package/vendor/node-addon-api/doc/promises.md +79 -79
- package/vendor/node-addon-api/doc/property_descriptor.md +286 -286
- package/vendor/node-addon-api/doc/propertylvalue.md +50 -50
- package/vendor/node-addon-api/doc/range_error.md +59 -59
- package/vendor/node-addon-api/doc/reference.md +113 -113
- package/vendor/node-addon-api/doc/setup.md +110 -110
- package/vendor/node-addon-api/doc/string.md +93 -93
- package/vendor/node-addon-api/doc/symbol.md +60 -60
- package/vendor/node-addon-api/doc/threadsafe.md +121 -121
- package/vendor/node-addon-api/doc/threadsafe_function.md +290 -290
- package/vendor/node-addon-api/doc/type_error.md +59 -59
- package/vendor/node-addon-api/doc/typed_array.md +78 -78
- package/vendor/node-addon-api/doc/typed_array_of.md +137 -137
- package/vendor/node-addon-api/doc/typed_threadsafe_function.md +306 -306
- package/vendor/node-addon-api/doc/value.md +340 -340
- package/vendor/node-addon-api/doc/version_management.md +43 -43
- package/vendor/node-addon-api/except.gypi +25 -25
- package/vendor/node-addon-api/index.js +11 -11
- package/vendor/node-addon-api/napi-inl.deprecated.h +192 -192
- package/vendor/node-addon-api/napi-inl.h +6209 -6209
- package/vendor/node-addon-api/napi.h +2983 -2983
- package/vendor/node-addon-api/node_api.gyp +9 -9
- package/vendor/node-addon-api/noexcept.gypi +26 -26
- package/vendor/node-addon-api/package-support.json +21 -21
- package/vendor/node-addon-api/package.json +399 -399
- package/vendor/node-addon-api/test/README.md +91 -91
- package/vendor/node-addon-api/test/addon.cc +36 -36
- package/vendor/node-addon-api/test/addon.js +11 -11
- package/vendor/node-addon-api/test/addon_build/index.js +49 -49
- package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +17 -17
- package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +62 -62
- package/vendor/node-addon-api/test/addon_build/tpl/index.js +9 -9
- package/vendor/node-addon-api/test/addon_build/tpl/package.json +11 -11
- package/vendor/node-addon-api/test/addon_data.cc +99 -99
- package/vendor/node-addon-api/test/addon_data.js +46 -46
- package/vendor/node-addon-api/test/array_buffer.cc +243 -243
- package/vendor/node-addon-api/test/array_buffer.js +69 -69
- package/vendor/node-addon-api/test/async_context.cc +21 -21
- package/vendor/node-addon-api/test/async_context.js +86 -86
- package/vendor/node-addon-api/test/async_progress_queue_worker.cc +83 -83
- package/vendor/node-addon-api/test/async_progress_queue_worker.js +46 -46
- package/vendor/node-addon-api/test/async_progress_worker.cc +134 -134
- package/vendor/node-addon-api/test/async_progress_worker.js +61 -61
- package/vendor/node-addon-api/test/async_worker.cc +106 -106
- package/vendor/node-addon-api/test/async_worker.js +179 -179
- package/vendor/node-addon-api/test/async_worker_nocallback.js +13 -13
- package/vendor/node-addon-api/test/async_worker_persistent.cc +63 -63
- package/vendor/node-addon-api/test/async_worker_persistent.js +24 -24
- package/vendor/node-addon-api/test/basic_types/array.cc +40 -40
- package/vendor/node-addon-api/test/basic_types/array.js +35 -35
- package/vendor/node-addon-api/test/basic_types/boolean.cc +38 -38
- package/vendor/node-addon-api/test/basic_types/boolean.js +35 -35
- package/vendor/node-addon-api/test/basic_types/number.cc +99 -99
- package/vendor/node-addon-api/test/basic_types/number.js +114 -114
- package/vendor/node-addon-api/test/basic_types/value.cc +120 -120
- package/vendor/node-addon-api/test/basic_types/value.js +133 -133
- package/vendor/node-addon-api/test/bigint.cc +91 -91
- package/vendor/node-addon-api/test/bigint.js +53 -53
- package/vendor/node-addon-api/test/binding-swallowexcept.cc +12 -12
- package/vendor/node-addon-api/test/binding.cc +171 -171
- package/vendor/node-addon-api/test/binding.gyp +117 -117
- package/vendor/node-addon-api/test/buffer.cc +183 -183
- package/vendor/node-addon-api/test/buffer.js +69 -69
- package/vendor/node-addon-api/test/callbackscope.cc +22 -22
- package/vendor/node-addon-api/test/callbackscope.js +49 -49
- package/vendor/node-addon-api/test/common/index.js +113 -113
- package/vendor/node-addon-api/test/common/test_helper.h +61 -61
- package/vendor/node-addon-api/test/dataview/dataview.cc +48 -48
- package/vendor/node-addon-api/test/dataview/dataview.js +35 -35
- package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +115 -115
- package/vendor/node-addon-api/test/dataview/dataview_read_write.js +90 -90
- package/vendor/node-addon-api/test/date.cc +44 -44
- package/vendor/node-addon-api/test/date.js +18 -18
- package/vendor/node-addon-api/test/env_cleanup.cc +88 -88
- package/vendor/node-addon-api/test/env_cleanup.js +56 -56
- package/vendor/node-addon-api/test/error.cc +287 -287
- package/vendor/node-addon-api/test/error.js +81 -81
- package/vendor/node-addon-api/test/error_handling_for_primitives.cc +13 -13
- package/vendor/node-addon-api/test/error_handling_for_primitives.js +29 -29
- package/vendor/node-addon-api/test/error_terminating_environment.js +94 -94
- package/vendor/node-addon-api/test/external.cc +81 -81
- package/vendor/node-addon-api/test/external.js +88 -88
- package/vendor/node-addon-api/test/function.cc +295 -295
- package/vendor/node-addon-api/test/function.js +121 -121
- package/vendor/node-addon-api/test/function_reference.cc +202 -202
- package/vendor/node-addon-api/test/function_reference.js +157 -157
- package/vendor/node-addon-api/test/globalObject/global_object.cc +61 -61
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +31 -31
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +61 -61
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +40 -40
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +57 -57
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +28 -28
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +48 -48
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +30 -30
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +58 -58
- package/vendor/node-addon-api/test/handlescope.cc +60 -60
- package/vendor/node-addon-api/test/handlescope.js +14 -14
- package/vendor/node-addon-api/test/index.js +136 -136
- package/vendor/node-addon-api/test/maybe/check.cc +23 -23
- package/vendor/node-addon-api/test/maybe/index.js +38 -38
- package/vendor/node-addon-api/test/memory_management.cc +17 -17
- package/vendor/node-addon-api/test/memory_management.js +9 -9
- package/vendor/node-addon-api/test/movable_callbacks.cc +23 -23
- package/vendor/node-addon-api/test/movable_callbacks.js +21 -21
- package/vendor/node-addon-api/test/name.cc +108 -108
- package/vendor/node-addon-api/test/name.js +59 -59
- package/vendor/node-addon-api/test/napi_child.js +14 -14
- package/vendor/node-addon-api/test/object/delete_property.cc +38 -38
- package/vendor/node-addon-api/test/object/delete_property.js +41 -41
- package/vendor/node-addon-api/test/object/finalizer.cc +29 -29
- package/vendor/node-addon-api/test/object/finalizer.js +28 -28
- package/vendor/node-addon-api/test/object/get_property.cc +34 -34
- package/vendor/node-addon-api/test/object/get_property.js +40 -40
- package/vendor/node-addon-api/test/object/has_own_property.cc +34 -34
- package/vendor/node-addon-api/test/object/has_own_property.js +34 -34
- package/vendor/node-addon-api/test/object/has_property.cc +38 -38
- package/vendor/node-addon-api/test/object/has_property.js +37 -37
- package/vendor/node-addon-api/test/object/object.cc +348 -348
- package/vendor/node-addon-api/test/object/object.js +217 -217
- package/vendor/node-addon-api/test/object/object_deprecated.cc +66 -66
- package/vendor/node-addon-api/test/object/object_deprecated.js +47 -47
- package/vendor/node-addon-api/test/object/object_freeze_seal.cc +25 -25
- package/vendor/node-addon-api/test/object/object_freeze_seal.js +61 -61
- package/vendor/node-addon-api/test/object/set_property.cc +37 -37
- package/vendor/node-addon-api/test/object/set_property.js +29 -29
- package/vendor/node-addon-api/test/object/subscript_operator.cc +42 -42
- package/vendor/node-addon-api/test/object/subscript_operator.js +17 -17
- package/vendor/node-addon-api/test/object_reference.cc +219 -219
- package/vendor/node-addon-api/test/object_reference.js +259 -259
- package/vendor/node-addon-api/test/objectwrap.cc +268 -268
- package/vendor/node-addon-api/test/objectwrap.js +284 -284
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +26 -26
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +18 -18
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +30 -30
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +13 -13
- package/vendor/node-addon-api/test/objectwrap_removewrap.cc +45 -45
- package/vendor/node-addon-api/test/objectwrap_removewrap.js +40 -40
- package/vendor/node-addon-api/test/objectwrap_worker_thread.js +19 -19
- package/vendor/node-addon-api/test/promise.cc +29 -29
- package/vendor/node-addon-api/test/promise.js +18 -18
- package/vendor/node-addon-api/test/reference.cc +24 -24
- package/vendor/node-addon-api/test/reference.js +14 -14
- package/vendor/node-addon-api/test/run_script.cc +56 -56
- package/vendor/node-addon-api/test/run_script.js +45 -45
- package/vendor/node-addon-api/test/symbol.cc +79 -79
- package/vendor/node-addon-api/test/symbol.js +73 -73
- package/vendor/node-addon-api/test/testUtil.js +54 -54
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +195 -195
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +188 -188
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +63 -63
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +12 -12
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +115 -115
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +14 -14
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +26 -26
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +7 -7
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +225 -225
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +59 -59
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +42 -42
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +53 -53
- package/vendor/node-addon-api/test/thunking_manual.cc +140 -140
- package/vendor/node-addon-api/test/thunking_manual.js +17 -17
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +215 -215
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +188 -188
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +68 -68
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +12 -12
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +127 -127
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +14 -14
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +28 -28
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +7 -7
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +237 -237
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +59 -59
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +53 -53
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +53 -53
- package/vendor/node-addon-api/test/typedarray-bigint.js +58 -58
- package/vendor/node-addon-api/test/typedarray.cc +216 -216
- package/vendor/node-addon-api/test/typedarray.js +69 -69
- package/vendor/node-addon-api/test/version_management.cc +27 -27
- package/vendor/node-addon-api/test/version_management.js +31 -31
- package/vendor/node-addon-api/tools/README.md +73 -73
- package/vendor/node-addon-api/tools/check-napi.js +100 -100
- package/vendor/node-addon-api/tools/clang-format.js +68 -68
- package/vendor/node-addon-api/tools/conversion.js +309 -309
- 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.
|