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,76 +1,76 @@
|
|
|
1
|
-
# Maybe (template)
|
|
2
|
-
|
|
3
|
-
Class `Napi::Maybe<T>` represents a value that may be empty: every `Maybe` is
|
|
4
|
-
either `Just` and contains a value, or `Nothing`, and does not. `Maybe` types
|
|
5
|
-
are very common in node-addon-api code, as they represent that the function may
|
|
6
|
-
throw a JavaScript exception and cause the program to be unable to evaluate any
|
|
7
|
-
JavaScript code until the exception has been handled.
|
|
8
|
-
|
|
9
|
-
Typically, the value wrapped in `Napi::Maybe<T>` is [`Napi::Value`] and its
|
|
10
|
-
subclasses.
|
|
11
|
-
|
|
12
|
-
## Methods
|
|
13
|
-
|
|
14
|
-
### IsNothing
|
|
15
|
-
|
|
16
|
-
```cpp
|
|
17
|
-
template <typename T>
|
|
18
|
-
bool Napi::Maybe::IsNothing() const;
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Returns `true` if the `Maybe` is `Nothing` and does not contain a value, and
|
|
22
|
-
`false` otherwise.
|
|
23
|
-
|
|
24
|
-
### IsJust
|
|
25
|
-
|
|
26
|
-
```cpp
|
|
27
|
-
template <typename T>
|
|
28
|
-
bool Napi::Maybe::IsJust() const;
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Returns `true` if the `Maybe` is `Just` and contains a value, and `false`
|
|
32
|
-
otherwise.
|
|
33
|
-
|
|
34
|
-
### Check
|
|
35
|
-
|
|
36
|
-
```cpp
|
|
37
|
-
template <typename T>
|
|
38
|
-
void Napi::Maybe::Check() const;
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Short-hand for `Maybe::Unwrap()`, which doesn't return a value. Could be used
|
|
42
|
-
where the actual value of the Maybe is not needed like `Object::Set`.
|
|
43
|
-
If this Maybe is nothing (empty), node-addon-api will crash the
|
|
44
|
-
process.
|
|
45
|
-
|
|
46
|
-
### Unwrap
|
|
47
|
-
|
|
48
|
-
```cpp
|
|
49
|
-
template <typename T>
|
|
50
|
-
T Napi::Maybe::Unwrap() const;
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Return the value of type `T` contained in the Maybe. If this Maybe is
|
|
54
|
-
nothing (empty), node-addon-api will crash the process.
|
|
55
|
-
|
|
56
|
-
### UnwrapOr
|
|
57
|
-
|
|
58
|
-
```cpp
|
|
59
|
-
template <typename T>
|
|
60
|
-
T Napi::Maybe::UnwrapOr(const T& default_value) const;
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
Return the value of type T contained in the Maybe, or use a default
|
|
64
|
-
value if this Maybe is nothing (empty).
|
|
65
|
-
|
|
66
|
-
### UnwrapTo
|
|
67
|
-
|
|
68
|
-
```cpp
|
|
69
|
-
template <typename T>
|
|
70
|
-
bool Napi::Maybe::UnwrapTo(T* result) const;
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Converts this Maybe to a value of type `T` in the `out`. If this Maybe is
|
|
74
|
-
nothing (empty), `false` is returned and `out` is left untouched.
|
|
75
|
-
|
|
76
|
-
[`Napi::Value`]: ./value.md
|
|
1
|
+
# Maybe (template)
|
|
2
|
+
|
|
3
|
+
Class `Napi::Maybe<T>` represents a value that may be empty: every `Maybe` is
|
|
4
|
+
either `Just` and contains a value, or `Nothing`, and does not. `Maybe` types
|
|
5
|
+
are very common in node-addon-api code, as they represent that the function may
|
|
6
|
+
throw a JavaScript exception and cause the program to be unable to evaluate any
|
|
7
|
+
JavaScript code until the exception has been handled.
|
|
8
|
+
|
|
9
|
+
Typically, the value wrapped in `Napi::Maybe<T>` is [`Napi::Value`] and its
|
|
10
|
+
subclasses.
|
|
11
|
+
|
|
12
|
+
## Methods
|
|
13
|
+
|
|
14
|
+
### IsNothing
|
|
15
|
+
|
|
16
|
+
```cpp
|
|
17
|
+
template <typename T>
|
|
18
|
+
bool Napi::Maybe::IsNothing() const;
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Returns `true` if the `Maybe` is `Nothing` and does not contain a value, and
|
|
22
|
+
`false` otherwise.
|
|
23
|
+
|
|
24
|
+
### IsJust
|
|
25
|
+
|
|
26
|
+
```cpp
|
|
27
|
+
template <typename T>
|
|
28
|
+
bool Napi::Maybe::IsJust() const;
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Returns `true` if the `Maybe` is `Just` and contains a value, and `false`
|
|
32
|
+
otherwise.
|
|
33
|
+
|
|
34
|
+
### Check
|
|
35
|
+
|
|
36
|
+
```cpp
|
|
37
|
+
template <typename T>
|
|
38
|
+
void Napi::Maybe::Check() const;
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Short-hand for `Maybe::Unwrap()`, which doesn't return a value. Could be used
|
|
42
|
+
where the actual value of the Maybe is not needed like `Object::Set`.
|
|
43
|
+
If this Maybe is nothing (empty), node-addon-api will crash the
|
|
44
|
+
process.
|
|
45
|
+
|
|
46
|
+
### Unwrap
|
|
47
|
+
|
|
48
|
+
```cpp
|
|
49
|
+
template <typename T>
|
|
50
|
+
T Napi::Maybe::Unwrap() const;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Return the value of type `T` contained in the Maybe. If this Maybe is
|
|
54
|
+
nothing (empty), node-addon-api will crash the process.
|
|
55
|
+
|
|
56
|
+
### UnwrapOr
|
|
57
|
+
|
|
58
|
+
```cpp
|
|
59
|
+
template <typename T>
|
|
60
|
+
T Napi::Maybe::UnwrapOr(const T& default_value) const;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Return the value of type T contained in the Maybe, or use a default
|
|
64
|
+
value if this Maybe is nothing (empty).
|
|
65
|
+
|
|
66
|
+
### UnwrapTo
|
|
67
|
+
|
|
68
|
+
```cpp
|
|
69
|
+
template <typename T>
|
|
70
|
+
bool Napi::Maybe::UnwrapTo(T* result) const;
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Converts this Maybe to a value of type `T` in the `out`. If this Maybe is
|
|
74
|
+
nothing (empty), `false` is returned and `out` is left untouched.
|
|
75
|
+
|
|
76
|
+
[`Napi::Value`]: ./value.md
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
# MemoryManagement
|
|
2
|
-
|
|
3
|
-
The `Napi::MemoryManagement` class contains functions that give the JavaScript engine
|
|
4
|
-
an indication of the amount of externally allocated memory that is kept alive by
|
|
5
|
-
JavaScript objects.
|
|
6
|
-
|
|
7
|
-
## Methods
|
|
8
|
-
|
|
9
|
-
### AdjustExternalMemory
|
|
10
|
-
|
|
11
|
-
The function `AdjustExternalMemory` adjusts the amount of registered external
|
|
12
|
-
memory used to give the JavaScript engine an indication of the amount of externally
|
|
13
|
-
allocated memory that is kept alive by JavaScript objects.
|
|
14
|
-
The JavaScript engine uses this to decide when to perform global garbage collections.
|
|
15
|
-
Registering externally allocated memory will trigger global garbage collections
|
|
16
|
-
more often than it would otherwise in an attempt to garbage collect the JavaScript
|
|
17
|
-
objects that keep the externally allocated memory alive.
|
|
18
|
-
|
|
19
|
-
```cpp
|
|
20
|
-
static int64_t Napi::MemoryManagement::AdjustExternalMemory(Napi::Env env, int64_t change_in_bytes);
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
- `[in] env`: The environment in which the API is invoked under.
|
|
24
|
-
- `[in] change_in_bytes`: The change in externally allocated memory that is kept
|
|
25
|
-
alive by JavaScript objects expressed in bytes.
|
|
26
|
-
|
|
27
|
-
Returns the adjusted memory value.
|
|
1
|
+
# MemoryManagement
|
|
2
|
+
|
|
3
|
+
The `Napi::MemoryManagement` class contains functions that give the JavaScript engine
|
|
4
|
+
an indication of the amount of externally allocated memory that is kept alive by
|
|
5
|
+
JavaScript objects.
|
|
6
|
+
|
|
7
|
+
## Methods
|
|
8
|
+
|
|
9
|
+
### AdjustExternalMemory
|
|
10
|
+
|
|
11
|
+
The function `AdjustExternalMemory` adjusts the amount of registered external
|
|
12
|
+
memory used to give the JavaScript engine an indication of the amount of externally
|
|
13
|
+
allocated memory that is kept alive by JavaScript objects.
|
|
14
|
+
The JavaScript engine uses this to decide when to perform global garbage collections.
|
|
15
|
+
Registering externally allocated memory will trigger global garbage collections
|
|
16
|
+
more often than it would otherwise in an attempt to garbage collect the JavaScript
|
|
17
|
+
objects that keep the externally allocated memory alive.
|
|
18
|
+
|
|
19
|
+
```cpp
|
|
20
|
+
static int64_t Napi::MemoryManagement::AdjustExternalMemory(Napi::Env env, int64_t change_in_bytes);
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
- `[in] env`: The environment in which the API is invoked under.
|
|
24
|
+
- `[in] change_in_bytes`: The change in externally allocated memory that is kept
|
|
25
|
+
alive by JavaScript objects expressed in bytes.
|
|
26
|
+
|
|
27
|
+
Returns the adjusted memory value.
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
# Name
|
|
2
|
-
|
|
3
|
-
Class `Napi::Name` inherits from class [`Napi::Value`][].
|
|
4
|
-
|
|
5
|
-
Names are JavaScript values that can be used as a property name. There are two
|
|
6
|
-
specialized types of names supported in Node.js Addon API [`Napi::String`](string.md)
|
|
7
|
-
and [`Napi::Symbol`](symbol.md).
|
|
8
|
-
|
|
9
|
-
## Methods
|
|
10
|
-
|
|
11
|
-
### Constructor
|
|
12
|
-
```cpp
|
|
13
|
-
Napi::Name::Name();
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Returns an empty `Napi::Name`.
|
|
17
|
-
|
|
18
|
-
```cpp
|
|
19
|
-
Napi::Name::Name(napi_env env, napi_value value);
|
|
20
|
-
```
|
|
21
|
-
- `[in] env` - The environment in which to create the array.
|
|
22
|
-
- `[in] value` - The primitive to wrap.
|
|
23
|
-
|
|
24
|
-
Returns a `Napi::Name` created from the JavaScript primitive.
|
|
25
|
-
|
|
26
|
-
Note:
|
|
27
|
-
The value is not coerced to a string.
|
|
28
|
-
|
|
29
|
-
[`Napi::Value`]: ./value.md
|
|
1
|
+
# Name
|
|
2
|
+
|
|
3
|
+
Class `Napi::Name` inherits from class [`Napi::Value`][].
|
|
4
|
+
|
|
5
|
+
Names are JavaScript values that can be used as a property name. There are two
|
|
6
|
+
specialized types of names supported in Node.js Addon API [`Napi::String`](string.md)
|
|
7
|
+
and [`Napi::Symbol`](symbol.md).
|
|
8
|
+
|
|
9
|
+
## Methods
|
|
10
|
+
|
|
11
|
+
### Constructor
|
|
12
|
+
```cpp
|
|
13
|
+
Napi::Name::Name();
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Returns an empty `Napi::Name`.
|
|
17
|
+
|
|
18
|
+
```cpp
|
|
19
|
+
Napi::Name::Name(napi_env env, napi_value value);
|
|
20
|
+
```
|
|
21
|
+
- `[in] env` - The environment in which to create the array.
|
|
22
|
+
- `[in] value` - The primitive to wrap.
|
|
23
|
+
|
|
24
|
+
Returns a `Napi::Name` created from the JavaScript primitive.
|
|
25
|
+
|
|
26
|
+
Note:
|
|
27
|
+
The value is not coerced to a string.
|
|
28
|
+
|
|
29
|
+
[`Napi::Value`]: ./value.md
|
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
# node-gyp
|
|
2
|
-
|
|
3
|
-
C++ code needs to be compiled into executable form whether it be as an object
|
|
4
|
-
file to linked with others, a shared library, or a standalone executable.
|
|
5
|
-
|
|
6
|
-
The main reason for this is that we need to link to the Node.js dependencies and
|
|
7
|
-
headers correctly, another reason is that we need a cross platform way to build
|
|
8
|
-
C++ source into binary for the target platform.
|
|
9
|
-
|
|
10
|
-
Until now **node-gyp** is the **de-facto** standard build tool for writing
|
|
11
|
-
Node.js addons. It's based on Google's **gyp** build tool, which abstract away
|
|
12
|
-
many of the tedious issues related to cross platform building.
|
|
13
|
-
|
|
14
|
-
**node-gyp** uses a file called ```binding.gyp``` that is located on the root of
|
|
15
|
-
your addon project.
|
|
16
|
-
|
|
17
|
-
```binding.gyp``` file, contains all building configurations organized with a
|
|
18
|
-
JSON like syntax. The most important parameter is the **target** that must be
|
|
19
|
-
set to the same value used on the initialization code of the addon as in the
|
|
20
|
-
examples reported below:
|
|
21
|
-
|
|
22
|
-
### **binding.gyp**
|
|
23
|
-
|
|
24
|
-
```gyp
|
|
25
|
-
{
|
|
26
|
-
"targets": [
|
|
27
|
-
{
|
|
28
|
-
# myModule is the name of your native addon
|
|
29
|
-
"target_name": "myModule",
|
|
30
|
-
"sources": ["src/my_module.cc", ...],
|
|
31
|
-
...
|
|
32
|
-
]
|
|
33
|
-
}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### **my_module.cc**
|
|
37
|
-
|
|
38
|
-
```cpp
|
|
39
|
-
#include <napi.h>
|
|
40
|
-
|
|
41
|
-
// ...
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* This code is our entry-point. We receive two arguments here, the first is the
|
|
45
|
-
* environment that represent an independent instance of the JavaScript runtime,
|
|
46
|
-
* the second is exports, the same as module.exports in a .js file.
|
|
47
|
-
* You can either add properties to the exports object passed in or create your
|
|
48
|
-
* own exports object. In either case you must return the object to be used as
|
|
49
|
-
* the exports for the module when you return from the Init function.
|
|
50
|
-
*/
|
|
51
|
-
Napi::Object Init(Napi::Env env, Napi::Object exports) {
|
|
52
|
-
|
|
53
|
-
// ...
|
|
54
|
-
|
|
55
|
-
return exports;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* This code defines the entry-point for the Node addon, it tells Node where to go
|
|
60
|
-
* once the library has been loaded into active memory. The first argument must
|
|
61
|
-
* match the "target" in our *binding.gyp*. Using NODE_GYP_MODULE_NAME ensures
|
|
62
|
-
* that the argument will be correct, as long as the module is built with
|
|
63
|
-
* node-gyp (which is the usual way of building modules). The second argument
|
|
64
|
-
* points to the function to invoke. The function must not be namespaced.
|
|
65
|
-
*/
|
|
66
|
-
NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init)
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## **node-gyp** reference
|
|
70
|
-
|
|
71
|
-
- [Installation](https://www.npmjs.com/package/node-gyp#installation)
|
|
72
|
-
- [How to use](https://www.npmjs.com/package/node-gyp#how-to-use)
|
|
73
|
-
- [The binding.gyp file](https://www.npmjs.com/package/node-gyp#the-bindinggyp-file)
|
|
74
|
-
- [Commands](https://www.npmjs.com/package/node-gyp#commands)
|
|
75
|
-
- [Command options](https://www.npmjs.com/package/node-gyp#command-options)
|
|
76
|
-
- [Configuration](https://www.npmjs.com/package/node-gyp#configuration)
|
|
77
|
-
|
|
78
|
-
Sometimes finding the right settings for ```binding.gyp``` is not easy so to
|
|
79
|
-
accomplish at most complicated task please refer to:
|
|
80
|
-
|
|
81
|
-
- [GYP documentation](https://gyp.gsrc.io/index.md)
|
|
82
|
-
- [node-gyp wiki](https://github.com/nodejs/node-gyp/wiki)
|
|
1
|
+
# node-gyp
|
|
2
|
+
|
|
3
|
+
C++ code needs to be compiled into executable form whether it be as an object
|
|
4
|
+
file to linked with others, a shared library, or a standalone executable.
|
|
5
|
+
|
|
6
|
+
The main reason for this is that we need to link to the Node.js dependencies and
|
|
7
|
+
headers correctly, another reason is that we need a cross platform way to build
|
|
8
|
+
C++ source into binary for the target platform.
|
|
9
|
+
|
|
10
|
+
Until now **node-gyp** is the **de-facto** standard build tool for writing
|
|
11
|
+
Node.js addons. It's based on Google's **gyp** build tool, which abstract away
|
|
12
|
+
many of the tedious issues related to cross platform building.
|
|
13
|
+
|
|
14
|
+
**node-gyp** uses a file called ```binding.gyp``` that is located on the root of
|
|
15
|
+
your addon project.
|
|
16
|
+
|
|
17
|
+
```binding.gyp``` file, contains all building configurations organized with a
|
|
18
|
+
JSON like syntax. The most important parameter is the **target** that must be
|
|
19
|
+
set to the same value used on the initialization code of the addon as in the
|
|
20
|
+
examples reported below:
|
|
21
|
+
|
|
22
|
+
### **binding.gyp**
|
|
23
|
+
|
|
24
|
+
```gyp
|
|
25
|
+
{
|
|
26
|
+
"targets": [
|
|
27
|
+
{
|
|
28
|
+
# myModule is the name of your native addon
|
|
29
|
+
"target_name": "myModule",
|
|
30
|
+
"sources": ["src/my_module.cc", ...],
|
|
31
|
+
...
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### **my_module.cc**
|
|
37
|
+
|
|
38
|
+
```cpp
|
|
39
|
+
#include <napi.h>
|
|
40
|
+
|
|
41
|
+
// ...
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* This code is our entry-point. We receive two arguments here, the first is the
|
|
45
|
+
* environment that represent an independent instance of the JavaScript runtime,
|
|
46
|
+
* the second is exports, the same as module.exports in a .js file.
|
|
47
|
+
* You can either add properties to the exports object passed in or create your
|
|
48
|
+
* own exports object. In either case you must return the object to be used as
|
|
49
|
+
* the exports for the module when you return from the Init function.
|
|
50
|
+
*/
|
|
51
|
+
Napi::Object Init(Napi::Env env, Napi::Object exports) {
|
|
52
|
+
|
|
53
|
+
// ...
|
|
54
|
+
|
|
55
|
+
return exports;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* This code defines the entry-point for the Node addon, it tells Node where to go
|
|
60
|
+
* once the library has been loaded into active memory. The first argument must
|
|
61
|
+
* match the "target" in our *binding.gyp*. Using NODE_GYP_MODULE_NAME ensures
|
|
62
|
+
* that the argument will be correct, as long as the module is built with
|
|
63
|
+
* node-gyp (which is the usual way of building modules). The second argument
|
|
64
|
+
* points to the function to invoke. The function must not be namespaced.
|
|
65
|
+
*/
|
|
66
|
+
NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## **node-gyp** reference
|
|
70
|
+
|
|
71
|
+
- [Installation](https://www.npmjs.com/package/node-gyp#installation)
|
|
72
|
+
- [How to use](https://www.npmjs.com/package/node-gyp#how-to-use)
|
|
73
|
+
- [The binding.gyp file](https://www.npmjs.com/package/node-gyp#the-bindinggyp-file)
|
|
74
|
+
- [Commands](https://www.npmjs.com/package/node-gyp#commands)
|
|
75
|
+
- [Command options](https://www.npmjs.com/package/node-gyp#command-options)
|
|
76
|
+
- [Configuration](https://www.npmjs.com/package/node-gyp#configuration)
|
|
77
|
+
|
|
78
|
+
Sometimes finding the right settings for ```binding.gyp``` is not easy so to
|
|
79
|
+
accomplish at most complicated task please refer to:
|
|
80
|
+
|
|
81
|
+
- [GYP documentation](https://gyp.gsrc.io/index.md)
|
|
82
|
+
- [node-gyp wiki](https://github.com/nodejs/node-gyp/wiki)
|