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,43 +1,43 @@
|
|
|
1
|
-
# VersionManagement
|
|
2
|
-
|
|
3
|
-
The `Napi::VersionManagement` class contains methods that allow information
|
|
4
|
-
to be retrieved about the version of Node-API and Node.js. In some cases it is
|
|
5
|
-
important to make decisions based on different versions of the system.
|
|
6
|
-
|
|
7
|
-
## Methods
|
|
8
|
-
|
|
9
|
-
### GetNapiVersion
|
|
10
|
-
|
|
11
|
-
Retrieves the highest Node-API version supported by Node.js runtime.
|
|
12
|
-
|
|
13
|
-
```cpp
|
|
14
|
-
static uint32_t Napi::VersionManagement::GetNapiVersion(Env env);
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
- `[in] env`: The environment in which the API is invoked under.
|
|
18
|
-
|
|
19
|
-
Returns the highest Node-API version supported by Node.js runtime.
|
|
20
|
-
|
|
21
|
-
### GetNodeVersion
|
|
22
|
-
|
|
23
|
-
Retrieves information about Node.js version present on the system. All the
|
|
24
|
-
information is stored in the `napi_node_version` structure that is defined as
|
|
25
|
-
shown below:
|
|
26
|
-
|
|
27
|
-
```cpp
|
|
28
|
-
typedef struct {
|
|
29
|
-
uint32_t major;
|
|
30
|
-
uint32_t minor;
|
|
31
|
-
uint32_t patch;
|
|
32
|
-
const char* release;
|
|
33
|
-
} napi_node_version;
|
|
34
|
-
````
|
|
35
|
-
|
|
36
|
-
```cpp
|
|
37
|
-
static const napi_node_version* Napi::VersionManagement::GetNodeVersion(Env env);
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
- `[in] env`: The environment in which the API is invoked under.
|
|
41
|
-
|
|
42
|
-
Returns the structure a pointer to the structure `napi_node_version` populated by
|
|
43
|
-
the version information of Node.js runtime.
|
|
1
|
+
# VersionManagement
|
|
2
|
+
|
|
3
|
+
The `Napi::VersionManagement` class contains methods that allow information
|
|
4
|
+
to be retrieved about the version of Node-API and Node.js. In some cases it is
|
|
5
|
+
important to make decisions based on different versions of the system.
|
|
6
|
+
|
|
7
|
+
## Methods
|
|
8
|
+
|
|
9
|
+
### GetNapiVersion
|
|
10
|
+
|
|
11
|
+
Retrieves the highest Node-API version supported by Node.js runtime.
|
|
12
|
+
|
|
13
|
+
```cpp
|
|
14
|
+
static uint32_t Napi::VersionManagement::GetNapiVersion(Env env);
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- `[in] env`: The environment in which the API is invoked under.
|
|
18
|
+
|
|
19
|
+
Returns the highest Node-API version supported by Node.js runtime.
|
|
20
|
+
|
|
21
|
+
### GetNodeVersion
|
|
22
|
+
|
|
23
|
+
Retrieves information about Node.js version present on the system. All the
|
|
24
|
+
information is stored in the `napi_node_version` structure that is defined as
|
|
25
|
+
shown below:
|
|
26
|
+
|
|
27
|
+
```cpp
|
|
28
|
+
typedef struct {
|
|
29
|
+
uint32_t major;
|
|
30
|
+
uint32_t minor;
|
|
31
|
+
uint32_t patch;
|
|
32
|
+
const char* release;
|
|
33
|
+
} napi_node_version;
|
|
34
|
+
````
|
|
35
|
+
|
|
36
|
+
```cpp
|
|
37
|
+
static const napi_node_version* Napi::VersionManagement::GetNodeVersion(Env env);
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- `[in] env`: The environment in which the API is invoked under.
|
|
41
|
+
|
|
42
|
+
Returns the structure a pointer to the structure `napi_node_version` populated by
|
|
43
|
+
the version information of Node.js runtime.
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
{
|
|
2
|
-
'defines': [ 'NAPI_CPP_EXCEPTIONS' ],
|
|
3
|
-
'cflags!': [ '-fno-exceptions' ],
|
|
4
|
-
'cflags_cc!': [ '-fno-exceptions' ],
|
|
5
|
-
'conditions': [
|
|
6
|
-
["OS=='win'", {
|
|
7
|
-
"defines": [
|
|
8
|
-
"_HAS_EXCEPTIONS=1"
|
|
9
|
-
],
|
|
10
|
-
"msvs_settings": {
|
|
11
|
-
"VCCLCompilerTool": {
|
|
12
|
-
"ExceptionHandling": 1,
|
|
13
|
-
'EnablePREfast': 'true',
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
}],
|
|
17
|
-
["OS=='mac'", {
|
|
18
|
-
'xcode_settings': {
|
|
19
|
-
'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
|
|
20
|
-
'CLANG_CXX_LIBRARY': 'libc++',
|
|
21
|
-
'MACOSX_DEPLOYMENT_TARGET': '10.7',
|
|
22
|
-
},
|
|
23
|
-
}],
|
|
24
|
-
],
|
|
25
|
-
}
|
|
1
|
+
{
|
|
2
|
+
'defines': [ 'NAPI_CPP_EXCEPTIONS' ],
|
|
3
|
+
'cflags!': [ '-fno-exceptions' ],
|
|
4
|
+
'cflags_cc!': [ '-fno-exceptions' ],
|
|
5
|
+
'conditions': [
|
|
6
|
+
["OS=='win'", {
|
|
7
|
+
"defines": [
|
|
8
|
+
"_HAS_EXCEPTIONS=1"
|
|
9
|
+
],
|
|
10
|
+
"msvs_settings": {
|
|
11
|
+
"VCCLCompilerTool": {
|
|
12
|
+
"ExceptionHandling": 1,
|
|
13
|
+
'EnablePREfast': 'true',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
}],
|
|
17
|
+
["OS=='mac'", {
|
|
18
|
+
'xcode_settings': {
|
|
19
|
+
'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
|
|
20
|
+
'CLANG_CXX_LIBRARY': 'libc++',
|
|
21
|
+
'MACOSX_DEPLOYMENT_TARGET': '10.7',
|
|
22
|
+
},
|
|
23
|
+
}],
|
|
24
|
+
],
|
|
25
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const path = require('path');
|
|
2
|
-
|
|
3
|
-
const include_dir = path.relative('.', __dirname);
|
|
4
|
-
|
|
5
|
-
module.exports = {
|
|
6
|
-
include: `"${__dirname}"`, // deprecated, can be removed as part of 4.0.0
|
|
7
|
-
include_dir,
|
|
8
|
-
gyp: path.join(include_dir, 'node_api.gyp:nothing'),
|
|
9
|
-
isNodeApiBuiltin: true,
|
|
10
|
-
needsFlag: false
|
|
11
|
-
};
|
|
1
|
+
const path = require('path');
|
|
2
|
+
|
|
3
|
+
const include_dir = path.relative('.', __dirname);
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
include: `"${__dirname}"`, // deprecated, can be removed as part of 4.0.0
|
|
7
|
+
include_dir,
|
|
8
|
+
gyp: path.join(include_dir, 'node_api.gyp:nothing'),
|
|
9
|
+
isNodeApiBuiltin: true,
|
|
10
|
+
needsFlag: false
|
|
11
|
+
};
|
|
@@ -1,192 +1,192 @@
|
|
|
1
|
-
#ifndef SRC_NAPI_INL_DEPRECATED_H_
|
|
2
|
-
#define SRC_NAPI_INL_DEPRECATED_H_
|
|
3
|
-
|
|
4
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
5
|
-
// PropertyDescriptor class
|
|
6
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
7
|
-
|
|
8
|
-
template <typename Getter>
|
|
9
|
-
inline PropertyDescriptor
|
|
10
|
-
PropertyDescriptor::Accessor(const char* utf8name,
|
|
11
|
-
Getter getter,
|
|
12
|
-
napi_property_attributes attributes,
|
|
13
|
-
void* /*data*/) {
|
|
14
|
-
using CbData = details::CallbackData<Getter, Napi::Value>;
|
|
15
|
-
// TODO: Delete when the function is destroyed
|
|
16
|
-
auto callbackData = new CbData({ getter, nullptr });
|
|
17
|
-
|
|
18
|
-
return PropertyDescriptor({
|
|
19
|
-
utf8name,
|
|
20
|
-
nullptr,
|
|
21
|
-
nullptr,
|
|
22
|
-
CbData::Wrapper,
|
|
23
|
-
nullptr,
|
|
24
|
-
nullptr,
|
|
25
|
-
attributes,
|
|
26
|
-
callbackData
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
template <typename Getter>
|
|
31
|
-
inline PropertyDescriptor PropertyDescriptor::Accessor(const std::string& utf8name,
|
|
32
|
-
Getter getter,
|
|
33
|
-
napi_property_attributes attributes,
|
|
34
|
-
void* data) {
|
|
35
|
-
return Accessor(utf8name.c_str(), getter, attributes, data);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
template <typename Getter>
|
|
39
|
-
inline PropertyDescriptor PropertyDescriptor::Accessor(napi_value name,
|
|
40
|
-
Getter getter,
|
|
41
|
-
napi_property_attributes attributes,
|
|
42
|
-
void* /*data*/) {
|
|
43
|
-
using CbData = details::CallbackData<Getter, Napi::Value>;
|
|
44
|
-
// TODO: Delete when the function is destroyed
|
|
45
|
-
auto callbackData = new CbData({ getter, nullptr });
|
|
46
|
-
|
|
47
|
-
return PropertyDescriptor({
|
|
48
|
-
nullptr,
|
|
49
|
-
name,
|
|
50
|
-
nullptr,
|
|
51
|
-
CbData::Wrapper,
|
|
52
|
-
nullptr,
|
|
53
|
-
nullptr,
|
|
54
|
-
attributes,
|
|
55
|
-
callbackData
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
template <typename Getter>
|
|
60
|
-
inline PropertyDescriptor PropertyDescriptor::Accessor(Name name,
|
|
61
|
-
Getter getter,
|
|
62
|
-
napi_property_attributes attributes,
|
|
63
|
-
void* data) {
|
|
64
|
-
napi_value nameValue = name;
|
|
65
|
-
return PropertyDescriptor::Accessor(nameValue, getter, attributes, data);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
template <typename Getter, typename Setter>
|
|
69
|
-
inline PropertyDescriptor PropertyDescriptor::Accessor(const char* utf8name,
|
|
70
|
-
Getter getter,
|
|
71
|
-
Setter setter,
|
|
72
|
-
napi_property_attributes attributes,
|
|
73
|
-
void* /*data*/) {
|
|
74
|
-
using CbData = details::AccessorCallbackData<Getter, Setter>;
|
|
75
|
-
// TODO: Delete when the function is destroyed
|
|
76
|
-
auto callbackData = new CbData({ getter, setter, nullptr });
|
|
77
|
-
|
|
78
|
-
return PropertyDescriptor({
|
|
79
|
-
utf8name,
|
|
80
|
-
nullptr,
|
|
81
|
-
nullptr,
|
|
82
|
-
CbData::GetterWrapper,
|
|
83
|
-
CbData::SetterWrapper,
|
|
84
|
-
nullptr,
|
|
85
|
-
attributes,
|
|
86
|
-
callbackData
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
template <typename Getter, typename Setter>
|
|
91
|
-
inline PropertyDescriptor PropertyDescriptor::Accessor(const std::string& utf8name,
|
|
92
|
-
Getter getter,
|
|
93
|
-
Setter setter,
|
|
94
|
-
napi_property_attributes attributes,
|
|
95
|
-
void* data) {
|
|
96
|
-
return Accessor(utf8name.c_str(), getter, setter, attributes, data);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
template <typename Getter, typename Setter>
|
|
100
|
-
inline PropertyDescriptor PropertyDescriptor::Accessor(napi_value name,
|
|
101
|
-
Getter getter,
|
|
102
|
-
Setter setter,
|
|
103
|
-
napi_property_attributes attributes,
|
|
104
|
-
void* /*data*/) {
|
|
105
|
-
using CbData = details::AccessorCallbackData<Getter, Setter>;
|
|
106
|
-
// TODO: Delete when the function is destroyed
|
|
107
|
-
auto callbackData = new CbData({ getter, setter, nullptr });
|
|
108
|
-
|
|
109
|
-
return PropertyDescriptor({
|
|
110
|
-
nullptr,
|
|
111
|
-
name,
|
|
112
|
-
nullptr,
|
|
113
|
-
CbData::GetterWrapper,
|
|
114
|
-
CbData::SetterWrapper,
|
|
115
|
-
nullptr,
|
|
116
|
-
attributes,
|
|
117
|
-
callbackData
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
template <typename Getter, typename Setter>
|
|
122
|
-
inline PropertyDescriptor PropertyDescriptor::Accessor(Name name,
|
|
123
|
-
Getter getter,
|
|
124
|
-
Setter setter,
|
|
125
|
-
napi_property_attributes attributes,
|
|
126
|
-
void* data) {
|
|
127
|
-
napi_value nameValue = name;
|
|
128
|
-
return PropertyDescriptor::Accessor(nameValue, getter, setter, attributes, data);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
template <typename Callable>
|
|
132
|
-
inline PropertyDescriptor PropertyDescriptor::Function(const char* utf8name,
|
|
133
|
-
Callable cb,
|
|
134
|
-
napi_property_attributes attributes,
|
|
135
|
-
void* /*data*/) {
|
|
136
|
-
using ReturnType = decltype(cb(CallbackInfo(nullptr, nullptr)));
|
|
137
|
-
using CbData = details::CallbackData<Callable, ReturnType>;
|
|
138
|
-
// TODO: Delete when the function is destroyed
|
|
139
|
-
auto callbackData = new CbData({ cb, nullptr });
|
|
140
|
-
|
|
141
|
-
return PropertyDescriptor({
|
|
142
|
-
utf8name,
|
|
143
|
-
nullptr,
|
|
144
|
-
CbData::Wrapper,
|
|
145
|
-
nullptr,
|
|
146
|
-
nullptr,
|
|
147
|
-
nullptr,
|
|
148
|
-
attributes,
|
|
149
|
-
callbackData
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
template <typename Callable>
|
|
154
|
-
inline PropertyDescriptor PropertyDescriptor::Function(const std::string& utf8name,
|
|
155
|
-
Callable cb,
|
|
156
|
-
napi_property_attributes attributes,
|
|
157
|
-
void* data) {
|
|
158
|
-
return Function(utf8name.c_str(), cb, attributes, data);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
template <typename Callable>
|
|
162
|
-
inline PropertyDescriptor PropertyDescriptor::Function(napi_value name,
|
|
163
|
-
Callable cb,
|
|
164
|
-
napi_property_attributes attributes,
|
|
165
|
-
void* /*data*/) {
|
|
166
|
-
using ReturnType = decltype(cb(CallbackInfo(nullptr, nullptr)));
|
|
167
|
-
using CbData = details::CallbackData<Callable, ReturnType>;
|
|
168
|
-
// TODO: Delete when the function is destroyed
|
|
169
|
-
auto callbackData = new CbData({ cb, nullptr });
|
|
170
|
-
|
|
171
|
-
return PropertyDescriptor({
|
|
172
|
-
nullptr,
|
|
173
|
-
name,
|
|
174
|
-
CbData::Wrapper,
|
|
175
|
-
nullptr,
|
|
176
|
-
nullptr,
|
|
177
|
-
nullptr,
|
|
178
|
-
attributes,
|
|
179
|
-
callbackData
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
template <typename Callable>
|
|
184
|
-
inline PropertyDescriptor PropertyDescriptor::Function(Name name,
|
|
185
|
-
Callable cb,
|
|
186
|
-
napi_property_attributes attributes,
|
|
187
|
-
void* data) {
|
|
188
|
-
napi_value nameValue = name;
|
|
189
|
-
return PropertyDescriptor::Function(nameValue, cb, attributes, data);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
#endif // !SRC_NAPI_INL_DEPRECATED_H_
|
|
1
|
+
#ifndef SRC_NAPI_INL_DEPRECATED_H_
|
|
2
|
+
#define SRC_NAPI_INL_DEPRECATED_H_
|
|
3
|
+
|
|
4
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
5
|
+
// PropertyDescriptor class
|
|
6
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
7
|
+
|
|
8
|
+
template <typename Getter>
|
|
9
|
+
inline PropertyDescriptor
|
|
10
|
+
PropertyDescriptor::Accessor(const char* utf8name,
|
|
11
|
+
Getter getter,
|
|
12
|
+
napi_property_attributes attributes,
|
|
13
|
+
void* /*data*/) {
|
|
14
|
+
using CbData = details::CallbackData<Getter, Napi::Value>;
|
|
15
|
+
// TODO: Delete when the function is destroyed
|
|
16
|
+
auto callbackData = new CbData({ getter, nullptr });
|
|
17
|
+
|
|
18
|
+
return PropertyDescriptor({
|
|
19
|
+
utf8name,
|
|
20
|
+
nullptr,
|
|
21
|
+
nullptr,
|
|
22
|
+
CbData::Wrapper,
|
|
23
|
+
nullptr,
|
|
24
|
+
nullptr,
|
|
25
|
+
attributes,
|
|
26
|
+
callbackData
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
template <typename Getter>
|
|
31
|
+
inline PropertyDescriptor PropertyDescriptor::Accessor(const std::string& utf8name,
|
|
32
|
+
Getter getter,
|
|
33
|
+
napi_property_attributes attributes,
|
|
34
|
+
void* data) {
|
|
35
|
+
return Accessor(utf8name.c_str(), getter, attributes, data);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
template <typename Getter>
|
|
39
|
+
inline PropertyDescriptor PropertyDescriptor::Accessor(napi_value name,
|
|
40
|
+
Getter getter,
|
|
41
|
+
napi_property_attributes attributes,
|
|
42
|
+
void* /*data*/) {
|
|
43
|
+
using CbData = details::CallbackData<Getter, Napi::Value>;
|
|
44
|
+
// TODO: Delete when the function is destroyed
|
|
45
|
+
auto callbackData = new CbData({ getter, nullptr });
|
|
46
|
+
|
|
47
|
+
return PropertyDescriptor({
|
|
48
|
+
nullptr,
|
|
49
|
+
name,
|
|
50
|
+
nullptr,
|
|
51
|
+
CbData::Wrapper,
|
|
52
|
+
nullptr,
|
|
53
|
+
nullptr,
|
|
54
|
+
attributes,
|
|
55
|
+
callbackData
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
template <typename Getter>
|
|
60
|
+
inline PropertyDescriptor PropertyDescriptor::Accessor(Name name,
|
|
61
|
+
Getter getter,
|
|
62
|
+
napi_property_attributes attributes,
|
|
63
|
+
void* data) {
|
|
64
|
+
napi_value nameValue = name;
|
|
65
|
+
return PropertyDescriptor::Accessor(nameValue, getter, attributes, data);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
template <typename Getter, typename Setter>
|
|
69
|
+
inline PropertyDescriptor PropertyDescriptor::Accessor(const char* utf8name,
|
|
70
|
+
Getter getter,
|
|
71
|
+
Setter setter,
|
|
72
|
+
napi_property_attributes attributes,
|
|
73
|
+
void* /*data*/) {
|
|
74
|
+
using CbData = details::AccessorCallbackData<Getter, Setter>;
|
|
75
|
+
// TODO: Delete when the function is destroyed
|
|
76
|
+
auto callbackData = new CbData({ getter, setter, nullptr });
|
|
77
|
+
|
|
78
|
+
return PropertyDescriptor({
|
|
79
|
+
utf8name,
|
|
80
|
+
nullptr,
|
|
81
|
+
nullptr,
|
|
82
|
+
CbData::GetterWrapper,
|
|
83
|
+
CbData::SetterWrapper,
|
|
84
|
+
nullptr,
|
|
85
|
+
attributes,
|
|
86
|
+
callbackData
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
template <typename Getter, typename Setter>
|
|
91
|
+
inline PropertyDescriptor PropertyDescriptor::Accessor(const std::string& utf8name,
|
|
92
|
+
Getter getter,
|
|
93
|
+
Setter setter,
|
|
94
|
+
napi_property_attributes attributes,
|
|
95
|
+
void* data) {
|
|
96
|
+
return Accessor(utf8name.c_str(), getter, setter, attributes, data);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
template <typename Getter, typename Setter>
|
|
100
|
+
inline PropertyDescriptor PropertyDescriptor::Accessor(napi_value name,
|
|
101
|
+
Getter getter,
|
|
102
|
+
Setter setter,
|
|
103
|
+
napi_property_attributes attributes,
|
|
104
|
+
void* /*data*/) {
|
|
105
|
+
using CbData = details::AccessorCallbackData<Getter, Setter>;
|
|
106
|
+
// TODO: Delete when the function is destroyed
|
|
107
|
+
auto callbackData = new CbData({ getter, setter, nullptr });
|
|
108
|
+
|
|
109
|
+
return PropertyDescriptor({
|
|
110
|
+
nullptr,
|
|
111
|
+
name,
|
|
112
|
+
nullptr,
|
|
113
|
+
CbData::GetterWrapper,
|
|
114
|
+
CbData::SetterWrapper,
|
|
115
|
+
nullptr,
|
|
116
|
+
attributes,
|
|
117
|
+
callbackData
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
template <typename Getter, typename Setter>
|
|
122
|
+
inline PropertyDescriptor PropertyDescriptor::Accessor(Name name,
|
|
123
|
+
Getter getter,
|
|
124
|
+
Setter setter,
|
|
125
|
+
napi_property_attributes attributes,
|
|
126
|
+
void* data) {
|
|
127
|
+
napi_value nameValue = name;
|
|
128
|
+
return PropertyDescriptor::Accessor(nameValue, getter, setter, attributes, data);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
template <typename Callable>
|
|
132
|
+
inline PropertyDescriptor PropertyDescriptor::Function(const char* utf8name,
|
|
133
|
+
Callable cb,
|
|
134
|
+
napi_property_attributes attributes,
|
|
135
|
+
void* /*data*/) {
|
|
136
|
+
using ReturnType = decltype(cb(CallbackInfo(nullptr, nullptr)));
|
|
137
|
+
using CbData = details::CallbackData<Callable, ReturnType>;
|
|
138
|
+
// TODO: Delete when the function is destroyed
|
|
139
|
+
auto callbackData = new CbData({ cb, nullptr });
|
|
140
|
+
|
|
141
|
+
return PropertyDescriptor({
|
|
142
|
+
utf8name,
|
|
143
|
+
nullptr,
|
|
144
|
+
CbData::Wrapper,
|
|
145
|
+
nullptr,
|
|
146
|
+
nullptr,
|
|
147
|
+
nullptr,
|
|
148
|
+
attributes,
|
|
149
|
+
callbackData
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
template <typename Callable>
|
|
154
|
+
inline PropertyDescriptor PropertyDescriptor::Function(const std::string& utf8name,
|
|
155
|
+
Callable cb,
|
|
156
|
+
napi_property_attributes attributes,
|
|
157
|
+
void* data) {
|
|
158
|
+
return Function(utf8name.c_str(), cb, attributes, data);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
template <typename Callable>
|
|
162
|
+
inline PropertyDescriptor PropertyDescriptor::Function(napi_value name,
|
|
163
|
+
Callable cb,
|
|
164
|
+
napi_property_attributes attributes,
|
|
165
|
+
void* /*data*/) {
|
|
166
|
+
using ReturnType = decltype(cb(CallbackInfo(nullptr, nullptr)));
|
|
167
|
+
using CbData = details::CallbackData<Callable, ReturnType>;
|
|
168
|
+
// TODO: Delete when the function is destroyed
|
|
169
|
+
auto callbackData = new CbData({ cb, nullptr });
|
|
170
|
+
|
|
171
|
+
return PropertyDescriptor({
|
|
172
|
+
nullptr,
|
|
173
|
+
name,
|
|
174
|
+
CbData::Wrapper,
|
|
175
|
+
nullptr,
|
|
176
|
+
nullptr,
|
|
177
|
+
nullptr,
|
|
178
|
+
attributes,
|
|
179
|
+
callbackData
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
template <typename Callable>
|
|
184
|
+
inline PropertyDescriptor PropertyDescriptor::Function(Name name,
|
|
185
|
+
Callable cb,
|
|
186
|
+
napi_property_attributes attributes,
|
|
187
|
+
void* data) {
|
|
188
|
+
napi_value nameValue = name;
|
|
189
|
+
return PropertyDescriptor::Function(nameValue, cb, attributes, data);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
#endif // !SRC_NAPI_INL_DEPRECATED_H_
|