koffi 0.9.2 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +60 -60
- package/README.md +163 -153
- package/package.json +19 -18
- package/src/call.hh +27 -27
- package/src/call_arm64.cc +482 -482
- package/src/call_arm64_fwd.S +115 -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 +135 -135
- package/src/util.cc +296 -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 +2670 -2670
- package/vendor/dragonbox/include/dragonbox/dragonbox_to_chars.h +108 -108
- 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
- package/build/ALL_BUILD.vcxproj +0 -186
- package/build/ALL_BUILD.vcxproj.filters +0 -8
- package/build/CMakeCache.txt +0 -417
- package/build/CMakeFiles/3.23.0-rc1/CMakeASMCompiler.cmake +0 -20
- package/build/CMakeFiles/3.23.0-rc1/CMakeASM_MASMCompiler.cmake +0 -20
- package/build/CMakeFiles/3.23.0-rc1/CMakeCCompiler.cmake +0 -72
- package/build/CMakeFiles/3.23.0-rc1/CMakeCXXCompiler.cmake +0 -83
- package/build/CMakeFiles/3.23.0-rc1/CMakeDetermineCompilerABI_C.bin +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CMakeRCCompiler.cmake +0 -6
- package/build/CMakeFiles/3.23.0-rc1/CMakeSystem.cmake +0 -15
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/CMakeCCompilerId.c +0 -828
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/CompilerIdC.exe +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/CompilerIdC.vcxproj +0 -71
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CMakeCCompilerId.obj +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.exe.recipe +0 -11
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/CL.command.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/CL.read.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/CL.write.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/CompilerIdC.lastbuildstate +0 -2
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/link.command.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/link.read.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdC/Debug/CompilerIdC.tlog/link.write.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -816
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/CompilerIdCXX.exe +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/CompilerIdCXX.vcxproj +0 -71
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe +0 -11
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate +0 -2
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog +0 -0
- package/build/CMakeFiles/3.23.0-rc1/VCTargetsPath.txt +0 -1
- package/build/CMakeFiles/3.23.0-rc1/VCTargetsPath.vcxproj +0 -31
- package/build/CMakeFiles/3.23.0-rc1/x64/Debug/VCTargetsPath.recipe +0 -11
- package/build/CMakeFiles/3.23.0-rc1/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate +0 -2
- package/build/CMakeFiles/41bcd16856091d4a38fd1f71fbe2f202/generate.stamp.rule +0 -1
- package/build/CMakeFiles/CMakeError.log +0 -108
- package/build/CMakeFiles/CMakeOutput.log +0 -413
- package/build/CMakeFiles/TargetDirectories.txt +0 -3
- package/build/CMakeFiles/cmake.check_cache +0 -1
- package/build/CMakeFiles/generate.stamp +0 -1
- package/build/CMakeFiles/generate.stamp.depend +0 -109
- package/build/CMakeFiles/generate.stamp.list +0 -1
- package/build/Release/koffi.exp +0 -0
- package/build/Release/koffi.lib +0 -0
- package/build/Release/koffi.node +0 -0
- package/build/ZERO_CHECK.vcxproj +0 -176
- package/build/ZERO_CHECK.vcxproj.filters +0 -13
- package/build/cmake_install.cmake +0 -44
- package/build/koffi.dir/Release/call_arm64.obj +0 -0
- package/build/koffi.dir/Release/call_x64_sysv.obj +0 -0
- package/build/koffi.dir/Release/call_x64_win.obj +0 -0
- package/build/koffi.dir/Release/call_x64_win_fwd.obj +0 -0
- package/build/koffi.dir/Release/call_x86.obj +0 -0
- package/build/koffi.dir/Release/ffi.obj +0 -0
- package/build/koffi.dir/Release/koffi.node.recipe +0 -14
- package/build/koffi.dir/Release/koffi.tlog/CL.command.1.tlog +0 -0
- package/build/koffi.dir/Release/koffi.tlog/CL.read.1.tlog +0 -0
- package/build/koffi.dir/Release/koffi.tlog/CL.write.1.tlog +0 -0
- package/build/koffi.dir/Release/koffi.tlog/CustomBuild.command.1.tlog +0 -10
- package/build/koffi.dir/Release/koffi.tlog/CustomBuild.read.1.tlog +0 -108
- package/build/koffi.dir/Release/koffi.tlog/CustomBuild.write.1.tlog +0 -2
- package/build/koffi.dir/Release/koffi.tlog/Masm.read.1u.tlog +0 -0
- package/build/koffi.dir/Release/koffi.tlog/Masm.write.1u.tlog +0 -0
- package/build/koffi.dir/Release/koffi.tlog/koffi.lastbuildstate +0 -2
- package/build/koffi.dir/Release/koffi.tlog/koffi.write.1u.tlog +0 -0
- package/build/koffi.dir/Release/koffi.tlog/link.command.1.tlog +0 -0
- package/build/koffi.dir/Release/koffi.tlog/link.read.1.tlog +0 -0
- package/build/koffi.dir/Release/koffi.tlog/link.write.1.tlog +0 -0
- package/build/koffi.dir/Release/libcc.obj +0 -0
- package/build/koffi.dir/Release/util.obj +0 -0
- package/build/koffi.dir/Release/win_delay_load_hook.obj +0 -0
- package/build/koffi.sln +0 -53
- package/build/koffi.vcxproj +0 -363
- package/build/koffi.vcxproj.filters +0 -40
- package/build/x64/Release/ALL_BUILD/ALL_BUILD.recipe +0 -17
- package/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/ALL_BUILD.lastbuildstate +0 -2
- package/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.command.1.tlog +0 -10
- package/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.read.1.tlog +0 -108
- package/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.write.1.tlog +0 -2
- package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.recipe +0 -11
- package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog +0 -10
- package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog +0 -109
- package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog +0 -2
- package/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate +0 -2
|
@@ -1,196 +1,196 @@
|
|
|
1
|
-
# Env
|
|
2
|
-
|
|
3
|
-
The opaque data structure containing the environment in which the request is being run.
|
|
4
|
-
|
|
5
|
-
The Env object is usually created and passed by the Node.js runtime or node-addon-api infrastructure.
|
|
6
|
-
|
|
7
|
-
## Methods
|
|
8
|
-
|
|
9
|
-
### Constructor
|
|
10
|
-
|
|
11
|
-
```cpp
|
|
12
|
-
Napi::Env::Env(napi_env env);
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
- `[in] env`: The `napi_env` environment from which to construct the `Napi::Env` object.
|
|
16
|
-
|
|
17
|
-
### napi_env
|
|
18
|
-
|
|
19
|
-
```cpp
|
|
20
|
-
operator napi_env() const;
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Returns the `napi_env` opaque data structure representing the environment.
|
|
24
|
-
|
|
25
|
-
### Global
|
|
26
|
-
|
|
27
|
-
```cpp
|
|
28
|
-
Napi::Object Napi::Env::Global() const;
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Returns the `Napi::Object` representing the environment's JavaScript Global Object.
|
|
32
|
-
|
|
33
|
-
### Undefined
|
|
34
|
-
|
|
35
|
-
```cpp
|
|
36
|
-
Napi::Value Napi::Env::Undefined() const;
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Returns the `Napi::Value` representing the environment's JavaScript Undefined Object.
|
|
40
|
-
|
|
41
|
-
### Null
|
|
42
|
-
|
|
43
|
-
```cpp
|
|
44
|
-
Napi::Value Napi::Env::Null() const;
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Returns the `Napi::Value` representing the environment's JavaScript Null Object.
|
|
48
|
-
|
|
49
|
-
### IsExceptionPending
|
|
50
|
-
|
|
51
|
-
```cpp
|
|
52
|
-
bool Napi::Env::IsExceptionPending() const;
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Returns a `bool` indicating if an exception is pending in the environment.
|
|
56
|
-
|
|
57
|
-
### GetAndClearPendingException
|
|
58
|
-
|
|
59
|
-
```cpp
|
|
60
|
-
Napi::Error Napi::Env::GetAndClearPendingException();
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
Returns an `Napi::Error` object representing the environment's pending exception, if any.
|
|
64
|
-
|
|
65
|
-
### RunScript
|
|
66
|
-
|
|
67
|
-
```cpp
|
|
68
|
-
Napi::Value Napi::Env::RunScript(____ script);
|
|
69
|
-
```
|
|
70
|
-
- `[in] script`: A string containing JavaScript code to execute.
|
|
71
|
-
|
|
72
|
-
Runs JavaScript code contained in a string and returns its result.
|
|
73
|
-
|
|
74
|
-
The `script` can be any of the following types:
|
|
75
|
-
- [`Napi::String`](string.md)
|
|
76
|
-
- `const char *`
|
|
77
|
-
- `const std::string &`
|
|
78
|
-
|
|
79
|
-
### GetInstanceData
|
|
80
|
-
```cpp
|
|
81
|
-
template <typename T> T* GetInstanceData();
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Returns the instance data that was previously associated with the environment,
|
|
85
|
-
or `nullptr` if none was associated.
|
|
86
|
-
|
|
87
|
-
### SetInstanceData
|
|
88
|
-
|
|
89
|
-
```cpp
|
|
90
|
-
template <typename T> using Finalizer = void (*)(Env, T*);
|
|
91
|
-
template <typename T, Finalizer<T> fini = Env::DefaultFini<T>>
|
|
92
|
-
void SetInstanceData(T* data);
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
- `[template] fini`: A function to call when the instance data is to be deleted.
|
|
96
|
-
Accepts a function of the form `void CleanupData(Napi::Env env, T* data)`. If
|
|
97
|
-
not given, the default finalizer will be used, which simply uses the `delete`
|
|
98
|
-
operator to destroy `T*` when the addon instance is unloaded.
|
|
99
|
-
- `[in] data`: A pointer to data that will be associated with the instance of
|
|
100
|
-
the addon for the duration of its lifecycle.
|
|
101
|
-
|
|
102
|
-
Associates a data item stored at `T* data` with the current instance of the
|
|
103
|
-
addon. The item will be passed to the function `fini` which gets called when an
|
|
104
|
-
instance of the addon is unloaded.
|
|
105
|
-
|
|
106
|
-
### SetInstanceData
|
|
107
|
-
|
|
108
|
-
```cpp
|
|
109
|
-
template <typename DataType, typename HintType>
|
|
110
|
-
using FinalizerWithHint = void (*)(Env, DataType*, HintType*);
|
|
111
|
-
template <typename DataType,
|
|
112
|
-
typename HintType,
|
|
113
|
-
FinalizerWithHint<DataType, HintType> fini =
|
|
114
|
-
Env::DefaultFiniWithHint<DataType, HintType>>
|
|
115
|
-
void SetInstanceData(DataType* data, HintType* hint);
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
- `[template] fini`: A function to call when the instance data is to be deleted.
|
|
119
|
-
Accepts a function of the form
|
|
120
|
-
`void CleanupData(Napi::Env env, DataType* data, HintType* hint)`. If not given,
|
|
121
|
-
the default finalizer will be used, which simply uses the `delete` operator to
|
|
122
|
-
destroy `T*` when the addon instance is unloaded.
|
|
123
|
-
- `[in] data`: A pointer to data that will be associated with the instance of
|
|
124
|
-
the addon for the duration of its lifecycle.
|
|
125
|
-
- `[in] hint`: A pointer to data that will be associated with the instance of
|
|
126
|
-
the addon for the duration of its lifecycle and will be passed as a hint to
|
|
127
|
-
`fini` when the addon instance is unloaded.
|
|
128
|
-
|
|
129
|
-
Associates a data item stored at `T* data` with the current instance of the
|
|
130
|
-
addon. The item will be passed to the function `fini` which gets called when an
|
|
131
|
-
instance of the addon is unloaded. This overload accepts an additional hint to
|
|
132
|
-
be passed to `fini`.
|
|
133
|
-
|
|
134
|
-
### AddCleanupHook
|
|
135
|
-
|
|
136
|
-
```cpp
|
|
137
|
-
template <typename Hook>
|
|
138
|
-
CleanupHook<Hook> AddCleanupHook(Hook hook);
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
- `[in] hook`: A function to call when the environment exists. Accepts a
|
|
142
|
-
function of the form `void ()`.
|
|
143
|
-
|
|
144
|
-
Registers `hook` as a function to be run once the current Node.js environment
|
|
145
|
-
exits. Unlike the underlying C-based Node-API, providing the same `hook`
|
|
146
|
-
multiple times **is** allowed. The hooks will be called in reverse order, i.e.
|
|
147
|
-
the most recently added one will be called first.
|
|
148
|
-
|
|
149
|
-
Returns an `Env::CleanupHook` object, which can be used to remove the hook via
|
|
150
|
-
its `Remove()` method.
|
|
151
|
-
|
|
152
|
-
### AddCleanupHook
|
|
153
|
-
|
|
154
|
-
```cpp
|
|
155
|
-
template <typename Hook, typename Arg>
|
|
156
|
-
CleanupHook<Hook, Arg> AddCleanupHook(Hook hook, Arg* arg);
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
- `[in] hook`: A function to call when the environment exists. Accepts a
|
|
160
|
-
function of the form `void (Arg* arg)`.
|
|
161
|
-
- `[in] arg`: A pointer to data that will be passed as the argument to `hook`.
|
|
162
|
-
|
|
163
|
-
Registers `hook` as a function to be run with the `arg` parameter once the
|
|
164
|
-
current Node.js environment exits. Unlike the underlying C-based Node-API,
|
|
165
|
-
providing the same `hook` and `arg` pair multiple times **is** allowed. The
|
|
166
|
-
hooks will be called in reverse order, i.e. the most recently added one will be
|
|
167
|
-
called first.
|
|
168
|
-
|
|
169
|
-
Returns an `Env::CleanupHook` object, which can be used to remove the hook via
|
|
170
|
-
its `Remove()` method.
|
|
171
|
-
|
|
172
|
-
# Env::CleanupHook
|
|
173
|
-
|
|
174
|
-
The `Env::CleanupHook` object allows removal of the hook added via
|
|
175
|
-
`Env::AddCleanupHook()`
|
|
176
|
-
|
|
177
|
-
## Methods
|
|
178
|
-
|
|
179
|
-
### IsEmpty
|
|
180
|
-
|
|
181
|
-
```cpp
|
|
182
|
-
bool IsEmpty();
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Returns `true` if the cleanup hook was **not** successfully registered.
|
|
186
|
-
|
|
187
|
-
### Remove
|
|
188
|
-
|
|
189
|
-
```cpp
|
|
190
|
-
bool Remove(Env env);
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
Unregisters the hook from running once the current Node.js environment exits.
|
|
194
|
-
|
|
195
|
-
Returns `true` if the hook was successfully removed from the Node.js
|
|
196
|
-
environment.
|
|
1
|
+
# Env
|
|
2
|
+
|
|
3
|
+
The opaque data structure containing the environment in which the request is being run.
|
|
4
|
+
|
|
5
|
+
The Env object is usually created and passed by the Node.js runtime or node-addon-api infrastructure.
|
|
6
|
+
|
|
7
|
+
## Methods
|
|
8
|
+
|
|
9
|
+
### Constructor
|
|
10
|
+
|
|
11
|
+
```cpp
|
|
12
|
+
Napi::Env::Env(napi_env env);
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- `[in] env`: The `napi_env` environment from which to construct the `Napi::Env` object.
|
|
16
|
+
|
|
17
|
+
### napi_env
|
|
18
|
+
|
|
19
|
+
```cpp
|
|
20
|
+
operator napi_env() const;
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Returns the `napi_env` opaque data structure representing the environment.
|
|
24
|
+
|
|
25
|
+
### Global
|
|
26
|
+
|
|
27
|
+
```cpp
|
|
28
|
+
Napi::Object Napi::Env::Global() const;
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Returns the `Napi::Object` representing the environment's JavaScript Global Object.
|
|
32
|
+
|
|
33
|
+
### Undefined
|
|
34
|
+
|
|
35
|
+
```cpp
|
|
36
|
+
Napi::Value Napi::Env::Undefined() const;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Returns the `Napi::Value` representing the environment's JavaScript Undefined Object.
|
|
40
|
+
|
|
41
|
+
### Null
|
|
42
|
+
|
|
43
|
+
```cpp
|
|
44
|
+
Napi::Value Napi::Env::Null() const;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Returns the `Napi::Value` representing the environment's JavaScript Null Object.
|
|
48
|
+
|
|
49
|
+
### IsExceptionPending
|
|
50
|
+
|
|
51
|
+
```cpp
|
|
52
|
+
bool Napi::Env::IsExceptionPending() const;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Returns a `bool` indicating if an exception is pending in the environment.
|
|
56
|
+
|
|
57
|
+
### GetAndClearPendingException
|
|
58
|
+
|
|
59
|
+
```cpp
|
|
60
|
+
Napi::Error Napi::Env::GetAndClearPendingException();
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Returns an `Napi::Error` object representing the environment's pending exception, if any.
|
|
64
|
+
|
|
65
|
+
### RunScript
|
|
66
|
+
|
|
67
|
+
```cpp
|
|
68
|
+
Napi::Value Napi::Env::RunScript(____ script);
|
|
69
|
+
```
|
|
70
|
+
- `[in] script`: A string containing JavaScript code to execute.
|
|
71
|
+
|
|
72
|
+
Runs JavaScript code contained in a string and returns its result.
|
|
73
|
+
|
|
74
|
+
The `script` can be any of the following types:
|
|
75
|
+
- [`Napi::String`](string.md)
|
|
76
|
+
- `const char *`
|
|
77
|
+
- `const std::string &`
|
|
78
|
+
|
|
79
|
+
### GetInstanceData
|
|
80
|
+
```cpp
|
|
81
|
+
template <typename T> T* GetInstanceData();
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Returns the instance data that was previously associated with the environment,
|
|
85
|
+
or `nullptr` if none was associated.
|
|
86
|
+
|
|
87
|
+
### SetInstanceData
|
|
88
|
+
|
|
89
|
+
```cpp
|
|
90
|
+
template <typename T> using Finalizer = void (*)(Env, T*);
|
|
91
|
+
template <typename T, Finalizer<T> fini = Env::DefaultFini<T>>
|
|
92
|
+
void SetInstanceData(T* data);
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
- `[template] fini`: A function to call when the instance data is to be deleted.
|
|
96
|
+
Accepts a function of the form `void CleanupData(Napi::Env env, T* data)`. If
|
|
97
|
+
not given, the default finalizer will be used, which simply uses the `delete`
|
|
98
|
+
operator to destroy `T*` when the addon instance is unloaded.
|
|
99
|
+
- `[in] data`: A pointer to data that will be associated with the instance of
|
|
100
|
+
the addon for the duration of its lifecycle.
|
|
101
|
+
|
|
102
|
+
Associates a data item stored at `T* data` with the current instance of the
|
|
103
|
+
addon. The item will be passed to the function `fini` which gets called when an
|
|
104
|
+
instance of the addon is unloaded.
|
|
105
|
+
|
|
106
|
+
### SetInstanceData
|
|
107
|
+
|
|
108
|
+
```cpp
|
|
109
|
+
template <typename DataType, typename HintType>
|
|
110
|
+
using FinalizerWithHint = void (*)(Env, DataType*, HintType*);
|
|
111
|
+
template <typename DataType,
|
|
112
|
+
typename HintType,
|
|
113
|
+
FinalizerWithHint<DataType, HintType> fini =
|
|
114
|
+
Env::DefaultFiniWithHint<DataType, HintType>>
|
|
115
|
+
void SetInstanceData(DataType* data, HintType* hint);
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- `[template] fini`: A function to call when the instance data is to be deleted.
|
|
119
|
+
Accepts a function of the form
|
|
120
|
+
`void CleanupData(Napi::Env env, DataType* data, HintType* hint)`. If not given,
|
|
121
|
+
the default finalizer will be used, which simply uses the `delete` operator to
|
|
122
|
+
destroy `T*` when the addon instance is unloaded.
|
|
123
|
+
- `[in] data`: A pointer to data that will be associated with the instance of
|
|
124
|
+
the addon for the duration of its lifecycle.
|
|
125
|
+
- `[in] hint`: A pointer to data that will be associated with the instance of
|
|
126
|
+
the addon for the duration of its lifecycle and will be passed as a hint to
|
|
127
|
+
`fini` when the addon instance is unloaded.
|
|
128
|
+
|
|
129
|
+
Associates a data item stored at `T* data` with the current instance of the
|
|
130
|
+
addon. The item will be passed to the function `fini` which gets called when an
|
|
131
|
+
instance of the addon is unloaded. This overload accepts an additional hint to
|
|
132
|
+
be passed to `fini`.
|
|
133
|
+
|
|
134
|
+
### AddCleanupHook
|
|
135
|
+
|
|
136
|
+
```cpp
|
|
137
|
+
template <typename Hook>
|
|
138
|
+
CleanupHook<Hook> AddCleanupHook(Hook hook);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
- `[in] hook`: A function to call when the environment exists. Accepts a
|
|
142
|
+
function of the form `void ()`.
|
|
143
|
+
|
|
144
|
+
Registers `hook` as a function to be run once the current Node.js environment
|
|
145
|
+
exits. Unlike the underlying C-based Node-API, providing the same `hook`
|
|
146
|
+
multiple times **is** allowed. The hooks will be called in reverse order, i.e.
|
|
147
|
+
the most recently added one will be called first.
|
|
148
|
+
|
|
149
|
+
Returns an `Env::CleanupHook` object, which can be used to remove the hook via
|
|
150
|
+
its `Remove()` method.
|
|
151
|
+
|
|
152
|
+
### AddCleanupHook
|
|
153
|
+
|
|
154
|
+
```cpp
|
|
155
|
+
template <typename Hook, typename Arg>
|
|
156
|
+
CleanupHook<Hook, Arg> AddCleanupHook(Hook hook, Arg* arg);
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
- `[in] hook`: A function to call when the environment exists. Accepts a
|
|
160
|
+
function of the form `void (Arg* arg)`.
|
|
161
|
+
- `[in] arg`: A pointer to data that will be passed as the argument to `hook`.
|
|
162
|
+
|
|
163
|
+
Registers `hook` as a function to be run with the `arg` parameter once the
|
|
164
|
+
current Node.js environment exits. Unlike the underlying C-based Node-API,
|
|
165
|
+
providing the same `hook` and `arg` pair multiple times **is** allowed. The
|
|
166
|
+
hooks will be called in reverse order, i.e. the most recently added one will be
|
|
167
|
+
called first.
|
|
168
|
+
|
|
169
|
+
Returns an `Env::CleanupHook` object, which can be used to remove the hook via
|
|
170
|
+
its `Remove()` method.
|
|
171
|
+
|
|
172
|
+
# Env::CleanupHook
|
|
173
|
+
|
|
174
|
+
The `Env::CleanupHook` object allows removal of the hook added via
|
|
175
|
+
`Env::AddCleanupHook()`
|
|
176
|
+
|
|
177
|
+
## Methods
|
|
178
|
+
|
|
179
|
+
### IsEmpty
|
|
180
|
+
|
|
181
|
+
```cpp
|
|
182
|
+
bool IsEmpty();
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Returns `true` if the cleanup hook was **not** successfully registered.
|
|
186
|
+
|
|
187
|
+
### Remove
|
|
188
|
+
|
|
189
|
+
```cpp
|
|
190
|
+
bool Remove(Env env);
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Unregisters the hook from running once the current Node.js environment exits.
|
|
194
|
+
|
|
195
|
+
Returns `true` if the hook was successfully removed from the Node.js
|
|
196
|
+
environment.
|
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
# Error
|
|
2
|
-
|
|
3
|
-
Class `Napi::Error` inherits from class [`Napi::ObjectReference`][] and class [`std::exception`][].
|
|
4
|
-
|
|
5
|
-
The `Napi::Error` class is a representation of the JavaScript `Error` object that is thrown
|
|
6
|
-
when runtime errors occur. The Error object can also be used as a base object for
|
|
7
|
-
user-defined exceptions.
|
|
8
|
-
|
|
9
|
-
The `Napi::Error` class is a persistent reference to a JavaScript error object thus
|
|
10
|
-
inherits its behavior from the `Napi::ObjectReference` class (for more info see: [`Napi::ObjectReference`](object_reference.md)).
|
|
11
|
-
|
|
12
|
-
If C++ exceptions are enabled (for more info see: [Setup](setup.md)), then the
|
|
13
|
-
`Napi::Error` class extends `std::exception` and enables integrated
|
|
14
|
-
error-handling for C++ exceptions and JavaScript exceptions.
|
|
15
|
-
|
|
16
|
-
For more details about error handling refer to the section titled [Error handling](error_handling.md).
|
|
17
|
-
|
|
18
|
-
## Methods
|
|
19
|
-
|
|
20
|
-
### New
|
|
21
|
-
|
|
22
|
-
Creates empty instance of an `Napi::Error` object for the specified environment.
|
|
23
|
-
|
|
24
|
-
```cpp
|
|
25
|
-
Napi::Error::New(Napi::Env env);
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
29
|
-
|
|
30
|
-
Returns an instance of `Napi::Error` object.
|
|
31
|
-
|
|
32
|
-
### New
|
|
33
|
-
|
|
34
|
-
Creates instance of an `Napi::Error` object.
|
|
35
|
-
|
|
36
|
-
```cpp
|
|
37
|
-
Napi::Error::New(Napi::Env env, const char* message);
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
41
|
-
- `[in] message`: Null-terminated string to be used as the message for the `Napi::Error`.
|
|
42
|
-
|
|
43
|
-
Returns instance of an `Napi::Error` object.
|
|
44
|
-
|
|
45
|
-
### New
|
|
46
|
-
|
|
47
|
-
Creates instance of an `Napi::Error` object
|
|
48
|
-
|
|
49
|
-
```cpp
|
|
50
|
-
Napi::Error::New(Napi::Env env, const std::string& message);
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
54
|
-
- `[in] message`: Reference string to be used as the message for the `Napi::Error`.
|
|
55
|
-
|
|
56
|
-
Returns instance of an `Napi::Error` object.
|
|
57
|
-
|
|
58
|
-
### Fatal
|
|
59
|
-
|
|
60
|
-
In case of an unrecoverable error in a native module, a fatal error can be thrown
|
|
61
|
-
to immediately terminate the process.
|
|
62
|
-
|
|
63
|
-
```cpp
|
|
64
|
-
static NAPI_NO_RETURN void Napi::Error::Fatal(const char* location, const char* message);
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
The function call does not return, the process will be terminated.
|
|
68
|
-
|
|
69
|
-
### Constructor
|
|
70
|
-
|
|
71
|
-
Creates empty instance of an `Napi::Error`.
|
|
72
|
-
|
|
73
|
-
```cpp
|
|
74
|
-
Napi::Error::Error();
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Returns an instance of `Napi::Error` object.
|
|
78
|
-
|
|
79
|
-
### Constructor
|
|
80
|
-
|
|
81
|
-
Initializes an `Napi::Error` instance from an existing JavaScript error object.
|
|
82
|
-
|
|
83
|
-
```cpp
|
|
84
|
-
Napi::Error::Error(napi_env env, napi_value value);
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
- `[in] env`: The environment in which to construct the error object.
|
|
88
|
-
- `[in] value`: The `Napi::Error` reference to wrap.
|
|
89
|
-
|
|
90
|
-
Returns instance of an `Napi::Error` object.
|
|
91
|
-
|
|
92
|
-
### Message
|
|
93
|
-
|
|
94
|
-
```cpp
|
|
95
|
-
std::string& Napi::Error::Message() const NAPI_NOEXCEPT;
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Returns the reference to the string that represent the message of the error.
|
|
99
|
-
|
|
100
|
-
### ThrowAsJavaScriptException
|
|
101
|
-
|
|
102
|
-
Throw the error as JavaScript exception.
|
|
103
|
-
|
|
104
|
-
```cpp
|
|
105
|
-
void Napi::Error::ThrowAsJavaScriptException() const;
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Throws the error as a JavaScript exception.
|
|
109
|
-
|
|
110
|
-
### what
|
|
111
|
-
|
|
112
|
-
```cpp
|
|
113
|
-
const char* Napi::Error::what() const NAPI_NOEXCEPT override;
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Returns a pointer to a null-terminated string that is used to identify the
|
|
117
|
-
exception. This method can be used only if the exception mechanism is enabled.
|
|
118
|
-
|
|
119
|
-
[`Napi::ObjectReference`]: ./object_reference.md
|
|
120
|
-
[`std::exception`]: https://cplusplus.com/reference/exception/exception/
|
|
1
|
+
# Error
|
|
2
|
+
|
|
3
|
+
Class `Napi::Error` inherits from class [`Napi::ObjectReference`][] and class [`std::exception`][].
|
|
4
|
+
|
|
5
|
+
The `Napi::Error` class is a representation of the JavaScript `Error` object that is thrown
|
|
6
|
+
when runtime errors occur. The Error object can also be used as a base object for
|
|
7
|
+
user-defined exceptions.
|
|
8
|
+
|
|
9
|
+
The `Napi::Error` class is a persistent reference to a JavaScript error object thus
|
|
10
|
+
inherits its behavior from the `Napi::ObjectReference` class (for more info see: [`Napi::ObjectReference`](object_reference.md)).
|
|
11
|
+
|
|
12
|
+
If C++ exceptions are enabled (for more info see: [Setup](setup.md)), then the
|
|
13
|
+
`Napi::Error` class extends `std::exception` and enables integrated
|
|
14
|
+
error-handling for C++ exceptions and JavaScript exceptions.
|
|
15
|
+
|
|
16
|
+
For more details about error handling refer to the section titled [Error handling](error_handling.md).
|
|
17
|
+
|
|
18
|
+
## Methods
|
|
19
|
+
|
|
20
|
+
### New
|
|
21
|
+
|
|
22
|
+
Creates empty instance of an `Napi::Error` object for the specified environment.
|
|
23
|
+
|
|
24
|
+
```cpp
|
|
25
|
+
Napi::Error::New(Napi::Env env);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
29
|
+
|
|
30
|
+
Returns an instance of `Napi::Error` object.
|
|
31
|
+
|
|
32
|
+
### New
|
|
33
|
+
|
|
34
|
+
Creates instance of an `Napi::Error` object.
|
|
35
|
+
|
|
36
|
+
```cpp
|
|
37
|
+
Napi::Error::New(Napi::Env env, const char* message);
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
41
|
+
- `[in] message`: Null-terminated string to be used as the message for the `Napi::Error`.
|
|
42
|
+
|
|
43
|
+
Returns instance of an `Napi::Error` object.
|
|
44
|
+
|
|
45
|
+
### New
|
|
46
|
+
|
|
47
|
+
Creates instance of an `Napi::Error` object
|
|
48
|
+
|
|
49
|
+
```cpp
|
|
50
|
+
Napi::Error::New(Napi::Env env, const std::string& message);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
54
|
+
- `[in] message`: Reference string to be used as the message for the `Napi::Error`.
|
|
55
|
+
|
|
56
|
+
Returns instance of an `Napi::Error` object.
|
|
57
|
+
|
|
58
|
+
### Fatal
|
|
59
|
+
|
|
60
|
+
In case of an unrecoverable error in a native module, a fatal error can be thrown
|
|
61
|
+
to immediately terminate the process.
|
|
62
|
+
|
|
63
|
+
```cpp
|
|
64
|
+
static NAPI_NO_RETURN void Napi::Error::Fatal(const char* location, const char* message);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
The function call does not return, the process will be terminated.
|
|
68
|
+
|
|
69
|
+
### Constructor
|
|
70
|
+
|
|
71
|
+
Creates empty instance of an `Napi::Error`.
|
|
72
|
+
|
|
73
|
+
```cpp
|
|
74
|
+
Napi::Error::Error();
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Returns an instance of `Napi::Error` object.
|
|
78
|
+
|
|
79
|
+
### Constructor
|
|
80
|
+
|
|
81
|
+
Initializes an `Napi::Error` instance from an existing JavaScript error object.
|
|
82
|
+
|
|
83
|
+
```cpp
|
|
84
|
+
Napi::Error::Error(napi_env env, napi_value value);
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- `[in] env`: The environment in which to construct the error object.
|
|
88
|
+
- `[in] value`: The `Napi::Error` reference to wrap.
|
|
89
|
+
|
|
90
|
+
Returns instance of an `Napi::Error` object.
|
|
91
|
+
|
|
92
|
+
### Message
|
|
93
|
+
|
|
94
|
+
```cpp
|
|
95
|
+
std::string& Napi::Error::Message() const NAPI_NOEXCEPT;
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Returns the reference to the string that represent the message of the error.
|
|
99
|
+
|
|
100
|
+
### ThrowAsJavaScriptException
|
|
101
|
+
|
|
102
|
+
Throw the error as JavaScript exception.
|
|
103
|
+
|
|
104
|
+
```cpp
|
|
105
|
+
void Napi::Error::ThrowAsJavaScriptException() const;
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Throws the error as a JavaScript exception.
|
|
109
|
+
|
|
110
|
+
### what
|
|
111
|
+
|
|
112
|
+
```cpp
|
|
113
|
+
const char* Napi::Error::what() const NAPI_NOEXCEPT override;
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Returns a pointer to a null-terminated string that is used to identify the
|
|
117
|
+
exception. This method can be used only if the exception mechanism is enabled.
|
|
118
|
+
|
|
119
|
+
[`Napi::ObjectReference`]: ./object_reference.md
|
|
120
|
+
[`std::exception`]: https://cplusplus.com/reference/exception/exception/
|