koffi 0.9.4 → 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
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
# Writing Tests
|
|
2
|
-
|
|
3
|
-
There are multiple flavors of node-addon-api test builds that cover different
|
|
4
|
-
build flags defined in `napi.h`:
|
|
5
|
-
|
|
6
|
-
1. c++ exceptions enabled,
|
|
7
|
-
2. c++ exceptions disabled,
|
|
8
|
-
3. c++ exceptions disabled, and `NODE_ADDON_API_ENABLE_MAYBE` defined.
|
|
9
|
-
|
|
10
|
-
Functions in node-addon-api that call into JavaScript can have different
|
|
11
|
-
declared return types to reflect build flavor settings. For example,
|
|
12
|
-
`Napi::Object::Set` returns `bool` when `NODE_ADDON_API_ENABLE_MAYBE`
|
|
13
|
-
is not defined, and `Napi::Maybe<bool>` when `NODE_ADDON_API_ENABLE_MAYBE`
|
|
14
|
-
is defined. In source code, return type variants are defined as
|
|
15
|
-
`Napi::MaybeOrValue<>` to prevent the duplication of most of the code base.
|
|
16
|
-
|
|
17
|
-
To properly test these build flavors, all values returned by a function defined
|
|
18
|
-
to return `Napi::MaybeOrValue<>` should be tested by using one of the following
|
|
19
|
-
test helpers to handle possible JavaScript exceptions.
|
|
20
|
-
|
|
21
|
-
There are three test helper functions to conveniently convert
|
|
22
|
-
`Napi::MaybeOrValue<>` values to raw values.
|
|
23
|
-
|
|
24
|
-
## MaybeUnwrap
|
|
25
|
-
|
|
26
|
-
```cpp
|
|
27
|
-
template <typename T>
|
|
28
|
-
T MaybeUnwrap(MaybeOrValue<T> maybe);
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Converts `MaybeOrValue<T>` to `T` by checking that `MaybeOrValue` is NOT an
|
|
32
|
-
empty `Maybe`.
|
|
33
|
-
|
|
34
|
-
Returns the original value if `NODE_ADDON_API_ENABLE_MAYBE` is not defined.
|
|
35
|
-
|
|
36
|
-
Example:
|
|
37
|
-
|
|
38
|
-
```cpp
|
|
39
|
-
Object obj = info[0].As<Object>();
|
|
40
|
-
// we are sure the parameters should not throw
|
|
41
|
-
Value value = MaybeUnwrap(obj->Get("foobar"));
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## MaybeUnwrapOr
|
|
45
|
-
|
|
46
|
-
```cpp
|
|
47
|
-
template <typename T>
|
|
48
|
-
T MaybeUnwrapOr(MaybeOrValue<T> maybe, const T& default_value = T());
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Converts `MaybeOrValue<T>` to `T` by getting the value that wrapped by the
|
|
52
|
-
`Maybe` or return the `default_value` if the `Maybe` is empty.
|
|
53
|
-
|
|
54
|
-
Returns the original value if `NODE_ADDON_API_ENABLE_MAYBE` is not defined.
|
|
55
|
-
|
|
56
|
-
Example:
|
|
57
|
-
|
|
58
|
-
```cpp
|
|
59
|
-
Value CallWithArgs(const CallbackInfo& info) {
|
|
60
|
-
Function func = info[0].As<Function>();
|
|
61
|
-
// We don't care if the operation is throwing or not, just return it back to node-addon-api
|
|
62
|
-
return MaybeUnwrapOr(
|
|
63
|
-
func.Call(std::initializer_list<napi_value>{info[1], info[2], info[3]}));
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## MaybeUnwrapTo
|
|
68
|
-
|
|
69
|
-
```cpp
|
|
70
|
-
template <typename T>
|
|
71
|
-
bool MaybeUnwrapTo(MaybeOrValue<T> maybe, T* out);
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Converts `MaybeOrValue<T>` to `T` by getting the value that wrapped by the
|
|
75
|
-
e`Maybe` or return `false` if the Maybe is empty
|
|
76
|
-
|
|
77
|
-
Copies the `value` to `out` when `NODE_ADDON_API_ENABLE_MAYBE` is not defined
|
|
78
|
-
|
|
79
|
-
Example:
|
|
80
|
-
|
|
81
|
-
```cpp
|
|
82
|
-
Object opts = info[0].As<Object>();
|
|
83
|
-
bool hasProperty = false;
|
|
84
|
-
// The check may throw, but we are going to suppress that.
|
|
85
|
-
if (MaybeUnwrapTo(opts.Has("blocking"), &hasProperty)) {
|
|
86
|
-
isBlocking = hasProperty &&
|
|
87
|
-
MaybeUnwrap(MaybeUnwrap(opts.Get("blocking")).ToBoolean());
|
|
88
|
-
} else {
|
|
89
|
-
env.GetAndClearPendingException();
|
|
90
|
-
}
|
|
91
|
-
```
|
|
1
|
+
# Writing Tests
|
|
2
|
+
|
|
3
|
+
There are multiple flavors of node-addon-api test builds that cover different
|
|
4
|
+
build flags defined in `napi.h`:
|
|
5
|
+
|
|
6
|
+
1. c++ exceptions enabled,
|
|
7
|
+
2. c++ exceptions disabled,
|
|
8
|
+
3. c++ exceptions disabled, and `NODE_ADDON_API_ENABLE_MAYBE` defined.
|
|
9
|
+
|
|
10
|
+
Functions in node-addon-api that call into JavaScript can have different
|
|
11
|
+
declared return types to reflect build flavor settings. For example,
|
|
12
|
+
`Napi::Object::Set` returns `bool` when `NODE_ADDON_API_ENABLE_MAYBE`
|
|
13
|
+
is not defined, and `Napi::Maybe<bool>` when `NODE_ADDON_API_ENABLE_MAYBE`
|
|
14
|
+
is defined. In source code, return type variants are defined as
|
|
15
|
+
`Napi::MaybeOrValue<>` to prevent the duplication of most of the code base.
|
|
16
|
+
|
|
17
|
+
To properly test these build flavors, all values returned by a function defined
|
|
18
|
+
to return `Napi::MaybeOrValue<>` should be tested by using one of the following
|
|
19
|
+
test helpers to handle possible JavaScript exceptions.
|
|
20
|
+
|
|
21
|
+
There are three test helper functions to conveniently convert
|
|
22
|
+
`Napi::MaybeOrValue<>` values to raw values.
|
|
23
|
+
|
|
24
|
+
## MaybeUnwrap
|
|
25
|
+
|
|
26
|
+
```cpp
|
|
27
|
+
template <typename T>
|
|
28
|
+
T MaybeUnwrap(MaybeOrValue<T> maybe);
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Converts `MaybeOrValue<T>` to `T` by checking that `MaybeOrValue` is NOT an
|
|
32
|
+
empty `Maybe`.
|
|
33
|
+
|
|
34
|
+
Returns the original value if `NODE_ADDON_API_ENABLE_MAYBE` is not defined.
|
|
35
|
+
|
|
36
|
+
Example:
|
|
37
|
+
|
|
38
|
+
```cpp
|
|
39
|
+
Object obj = info[0].As<Object>();
|
|
40
|
+
// we are sure the parameters should not throw
|
|
41
|
+
Value value = MaybeUnwrap(obj->Get("foobar"));
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## MaybeUnwrapOr
|
|
45
|
+
|
|
46
|
+
```cpp
|
|
47
|
+
template <typename T>
|
|
48
|
+
T MaybeUnwrapOr(MaybeOrValue<T> maybe, const T& default_value = T());
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Converts `MaybeOrValue<T>` to `T` by getting the value that wrapped by the
|
|
52
|
+
`Maybe` or return the `default_value` if the `Maybe` is empty.
|
|
53
|
+
|
|
54
|
+
Returns the original value if `NODE_ADDON_API_ENABLE_MAYBE` is not defined.
|
|
55
|
+
|
|
56
|
+
Example:
|
|
57
|
+
|
|
58
|
+
```cpp
|
|
59
|
+
Value CallWithArgs(const CallbackInfo& info) {
|
|
60
|
+
Function func = info[0].As<Function>();
|
|
61
|
+
// We don't care if the operation is throwing or not, just return it back to node-addon-api
|
|
62
|
+
return MaybeUnwrapOr(
|
|
63
|
+
func.Call(std::initializer_list<napi_value>{info[1], info[2], info[3]}));
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## MaybeUnwrapTo
|
|
68
|
+
|
|
69
|
+
```cpp
|
|
70
|
+
template <typename T>
|
|
71
|
+
bool MaybeUnwrapTo(MaybeOrValue<T> maybe, T* out);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Converts `MaybeOrValue<T>` to `T` by getting the value that wrapped by the
|
|
75
|
+
e`Maybe` or return `false` if the Maybe is empty
|
|
76
|
+
|
|
77
|
+
Copies the `value` to `out` when `NODE_ADDON_API_ENABLE_MAYBE` is not defined
|
|
78
|
+
|
|
79
|
+
Example:
|
|
80
|
+
|
|
81
|
+
```cpp
|
|
82
|
+
Object opts = info[0].As<Object>();
|
|
83
|
+
bool hasProperty = false;
|
|
84
|
+
// The check may throw, but we are going to suppress that.
|
|
85
|
+
if (MaybeUnwrapTo(opts.Has("blocking"), &hasProperty)) {
|
|
86
|
+
isBlocking = hasProperty &&
|
|
87
|
+
MaybeUnwrap(MaybeUnwrap(opts.Get("blocking")).ToBoolean());
|
|
88
|
+
} else {
|
|
89
|
+
env.GetAndClearPendingException();
|
|
90
|
+
}
|
|
91
|
+
```
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
#if (NAPI_VERSION > 5)
|
|
2
|
-
#include <stdio.h>
|
|
3
|
-
#include "napi.h"
|
|
4
|
-
|
|
5
|
-
namespace {
|
|
6
|
-
|
|
7
|
-
class TestAddon : public Napi::Addon<TestAddon> {
|
|
8
|
-
public:
|
|
9
|
-
inline TestAddon(Napi::Env env, Napi::Object exports) {
|
|
10
|
-
DefineAddon(exports, {
|
|
11
|
-
InstanceMethod("increment", &TestAddon::Increment),
|
|
12
|
-
InstanceValue("subObject", DefineProperties(Napi::Object::New(env), {
|
|
13
|
-
InstanceMethod("decrement", &TestAddon::Decrement)
|
|
14
|
-
}))
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
private:
|
|
19
|
-
Napi::Value Increment(const Napi::CallbackInfo& info) {
|
|
20
|
-
return Napi::Number::New(info.Env(), ++value);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
Napi::Value Decrement(const Napi::CallbackInfo& info) {
|
|
24
|
-
return Napi::Number::New(info.Env(), --value);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
uint32_t value = 42;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
} // end of anonymous namespace
|
|
31
|
-
|
|
32
|
-
Napi::Object InitAddon(Napi::Env env) {
|
|
33
|
-
return TestAddon::Init(env, Napi::Object::New(env));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
#endif // (NAPI_VERSION > 5)
|
|
1
|
+
#if (NAPI_VERSION > 5)
|
|
2
|
+
#include <stdio.h>
|
|
3
|
+
#include "napi.h"
|
|
4
|
+
|
|
5
|
+
namespace {
|
|
6
|
+
|
|
7
|
+
class TestAddon : public Napi::Addon<TestAddon> {
|
|
8
|
+
public:
|
|
9
|
+
inline TestAddon(Napi::Env env, Napi::Object exports) {
|
|
10
|
+
DefineAddon(exports, {
|
|
11
|
+
InstanceMethod("increment", &TestAddon::Increment),
|
|
12
|
+
InstanceValue("subObject", DefineProperties(Napi::Object::New(env), {
|
|
13
|
+
InstanceMethod("decrement", &TestAddon::Decrement)
|
|
14
|
+
}))
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
private:
|
|
19
|
+
Napi::Value Increment(const Napi::CallbackInfo& info) {
|
|
20
|
+
return Napi::Number::New(info.Env(), ++value);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
Napi::Value Decrement(const Napi::CallbackInfo& info) {
|
|
24
|
+
return Napi::Number::New(info.Env(), --value);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
uint32_t value = 42;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
} // end of anonymous namespace
|
|
31
|
+
|
|
32
|
+
Napi::Object InitAddon(Napi::Env env) {
|
|
33
|
+
return TestAddon::Init(env, Napi::Object::New(env));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#endif // (NAPI_VERSION > 5)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const assert = require('assert');
|
|
4
|
-
|
|
5
|
-
module.exports = require('./common').runTest(test);
|
|
6
|
-
|
|
7
|
-
function test (binding) {
|
|
8
|
-
assert.strictEqual(binding.addon.increment(), 43);
|
|
9
|
-
assert.strictEqual(binding.addon.increment(), 44);
|
|
10
|
-
assert.strictEqual(binding.addon.subObject.decrement(), 43);
|
|
11
|
-
}
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const assert = require('assert');
|
|
4
|
+
|
|
5
|
+
module.exports = require('./common').runTest(test);
|
|
6
|
+
|
|
7
|
+
function test (binding) {
|
|
8
|
+
assert.strictEqual(binding.addon.increment(), 43);
|
|
9
|
+
assert.strictEqual(binding.addon.increment(), 44);
|
|
10
|
+
assert.strictEqual(binding.addon.subObject.decrement(), 43);
|
|
11
|
+
}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { promisify } = require('util');
|
|
4
|
-
const exec = promisify(require('child_process').exec);
|
|
5
|
-
const { copy, remove } = require('fs-extra');
|
|
6
|
-
const path = require('path');
|
|
7
|
-
const assert = require('assert')
|
|
8
|
-
|
|
9
|
-
const ADDONS_FOLDER = path.join(__dirname, 'addons');
|
|
10
|
-
|
|
11
|
-
const addons = [
|
|
12
|
-
'echo addon',
|
|
13
|
-
'echo-addon'
|
|
14
|
-
]
|
|
15
|
-
|
|
16
|
-
async function beforeAll(addons) {
|
|
17
|
-
console.log(' >Preparing native addons to build')
|
|
18
|
-
for (const addon of addons) {
|
|
19
|
-
await remove(path.join(ADDONS_FOLDER, addon));
|
|
20
|
-
await copy(path.join(__dirname, 'tpl'), path.join(ADDONS_FOLDER, addon));
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
async function test(addon) {
|
|
25
|
-
console.log(` >Building addon: '${addon}'`);
|
|
26
|
-
const { stderr, stdout } = await exec('npm install', {
|
|
27
|
-
cwd: path.join(ADDONS_FOLDER, addon)
|
|
28
|
-
})
|
|
29
|
-
console.log(` >Running test for: '${addon}'`);
|
|
30
|
-
// Disabled the checks on stderr and stdout because of this issue on npm:
|
|
31
|
-
// Stop using process.umask(): https://github.com/npm/cli/issues/1103
|
|
32
|
-
// We should enable the following checks again after the resolution of
|
|
33
|
-
// the reported issue.
|
|
34
|
-
// assert.strictEqual(stderr, '');
|
|
35
|
-
// assert.ok(stderr.length === 0);
|
|
36
|
-
// assert.ok(stdout.length > 0);
|
|
37
|
-
const binding = require(`${ADDONS_FOLDER}/${addon}`);
|
|
38
|
-
assert.strictEqual(binding.except.echo('except'), 'except');
|
|
39
|
-
assert.strictEqual(binding.except.echo(101), 101);
|
|
40
|
-
assert.strictEqual(binding.noexcept.echo('noexcept'), 'noexcept');
|
|
41
|
-
assert.strictEqual(binding.noexcept.echo(103), 103);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
module.exports = (async function() {
|
|
45
|
-
await beforeAll(addons);
|
|
46
|
-
for (const addon of addons) {
|
|
47
|
-
await test(addon);
|
|
48
|
-
}
|
|
49
|
-
})()
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { promisify } = require('util');
|
|
4
|
+
const exec = promisify(require('child_process').exec);
|
|
5
|
+
const { copy, remove } = require('fs-extra');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
const assert = require('assert')
|
|
8
|
+
|
|
9
|
+
const ADDONS_FOLDER = path.join(__dirname, 'addons');
|
|
10
|
+
|
|
11
|
+
const addons = [
|
|
12
|
+
'echo addon',
|
|
13
|
+
'echo-addon'
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
async function beforeAll(addons) {
|
|
17
|
+
console.log(' >Preparing native addons to build')
|
|
18
|
+
for (const addon of addons) {
|
|
19
|
+
await remove(path.join(ADDONS_FOLDER, addon));
|
|
20
|
+
await copy(path.join(__dirname, 'tpl'), path.join(ADDONS_FOLDER, addon));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async function test(addon) {
|
|
25
|
+
console.log(` >Building addon: '${addon}'`);
|
|
26
|
+
const { stderr, stdout } = await exec('npm install', {
|
|
27
|
+
cwd: path.join(ADDONS_FOLDER, addon)
|
|
28
|
+
})
|
|
29
|
+
console.log(` >Running test for: '${addon}'`);
|
|
30
|
+
// Disabled the checks on stderr and stdout because of this issue on npm:
|
|
31
|
+
// Stop using process.umask(): https://github.com/npm/cli/issues/1103
|
|
32
|
+
// We should enable the following checks again after the resolution of
|
|
33
|
+
// the reported issue.
|
|
34
|
+
// assert.strictEqual(stderr, '');
|
|
35
|
+
// assert.ok(stderr.length === 0);
|
|
36
|
+
// assert.ok(stdout.length > 0);
|
|
37
|
+
const binding = require(`${ADDONS_FOLDER}/${addon}`);
|
|
38
|
+
assert.strictEqual(binding.except.echo('except'), 'except');
|
|
39
|
+
assert.strictEqual(binding.except.echo(101), 101);
|
|
40
|
+
assert.strictEqual(binding.noexcept.echo('noexcept'), 'noexcept');
|
|
41
|
+
assert.strictEqual(binding.noexcept.echo(103), 103);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
module.exports = (async function() {
|
|
45
|
+
await beforeAll(addons);
|
|
46
|
+
for (const addon of addons) {
|
|
47
|
+
await test(addon);
|
|
48
|
+
}
|
|
49
|
+
})()
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
#include <napi.h>
|
|
2
|
-
|
|
3
|
-
Napi::Value Echo(const Napi::CallbackInfo& info) {
|
|
4
|
-
Napi::Env env = info.Env();
|
|
5
|
-
if (info.Length() != 1) {
|
|
6
|
-
Napi::TypeError::New(env, "Wrong number of arguments. One argument expected.")
|
|
7
|
-
.ThrowAsJavaScriptException();
|
|
8
|
-
}
|
|
9
|
-
return info[0].As<Napi::Value>();
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
Napi::Object Init(Napi::Env env, Napi::Object exports) {
|
|
13
|
-
exports.Set(Napi::String::New(env, "echo"), Napi::Function::New(env, Echo));
|
|
14
|
-
return exports;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init)
|
|
1
|
+
#include <napi.h>
|
|
2
|
+
|
|
3
|
+
Napi::Value Echo(const Napi::CallbackInfo& info) {
|
|
4
|
+
Napi::Env env = info.Env();
|
|
5
|
+
if (info.Length() != 1) {
|
|
6
|
+
Napi::TypeError::New(env, "Wrong number of arguments. One argument expected.")
|
|
7
|
+
.ThrowAsJavaScriptException();
|
|
8
|
+
}
|
|
9
|
+
return info[0].As<Napi::Value>();
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
Napi::Object Init(Napi::Env env, Napi::Object exports) {
|
|
13
|
+
exports.Set(Napi::String::New(env, "echo"), Napi::Function::New(env, Echo));
|
|
14
|
+
return exports;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init)
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
{
|
|
2
|
-
'target_defaults': {
|
|
3
|
-
'include_dirs': [
|
|
4
|
-
"<!(node -p \"require('node-addon-api').include_dir\")"
|
|
5
|
-
],
|
|
6
|
-
'variables': {
|
|
7
|
-
'NAPI_VERSION%': "<!(node -p \"process.versions.napi\")",
|
|
8
|
-
'disable_deprecated': "<!(node -p \"process.env['npm_config_disable_deprecated']\")"
|
|
9
|
-
},
|
|
10
|
-
'conditions': [
|
|
11
|
-
['NAPI_VERSION!=""', { 'defines': ['NAPI_VERSION=<@(NAPI_VERSION)'] } ],
|
|
12
|
-
['disable_deprecated=="true"', {
|
|
13
|
-
'defines': ['NODE_ADDON_API_DISABLE_DEPRECATED']
|
|
14
|
-
}],
|
|
15
|
-
['OS=="mac"', {
|
|
16
|
-
'cflags+': ['-fvisibility=hidden'],
|
|
17
|
-
'xcode_settings': {
|
|
18
|
-
'OTHER_CFLAGS': ['-fvisibility=hidden']
|
|
19
|
-
}
|
|
20
|
-
}]
|
|
21
|
-
],
|
|
22
|
-
'sources': [
|
|
23
|
-
'addon.cc',
|
|
24
|
-
],
|
|
25
|
-
},
|
|
26
|
-
'targets': [
|
|
27
|
-
{
|
|
28
|
-
'target_name': 'addon',
|
|
29
|
-
'defines': [ 'NAPI_CPP_EXCEPTIONS' ],
|
|
30
|
-
'cflags!': [ '-fno-exceptions' ],
|
|
31
|
-
'cflags_cc!': [ '-fno-exceptions' ],
|
|
32
|
-
'msvs_settings': {
|
|
33
|
-
'VCCLCompilerTool': {
|
|
34
|
-
'ExceptionHandling': 1,
|
|
35
|
-
'EnablePREfast': 'true',
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
'xcode_settings': {
|
|
39
|
-
'CLANG_CXX_LIBRARY': 'libc++',
|
|
40
|
-
'MACOSX_DEPLOYMENT_TARGET': '10.7',
|
|
41
|
-
'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
'target_name': 'addon_noexcept',
|
|
46
|
-
'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ],
|
|
47
|
-
'cflags': [ '-fno-exceptions' ],
|
|
48
|
-
'cflags_cc': [ '-fno-exceptions' ],
|
|
49
|
-
'msvs_settings': {
|
|
50
|
-
'VCCLCompilerTool': {
|
|
51
|
-
'ExceptionHandling': 0,
|
|
52
|
-
'EnablePREfast': 'true',
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
'xcode_settings': {
|
|
56
|
-
'CLANG_CXX_LIBRARY': 'libc++',
|
|
57
|
-
'MACOSX_DEPLOYMENT_TARGET': '10.7',
|
|
58
|
-
'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
}
|
|
1
|
+
{
|
|
2
|
+
'target_defaults': {
|
|
3
|
+
'include_dirs': [
|
|
4
|
+
"<!(node -p \"require('node-addon-api').include_dir\")"
|
|
5
|
+
],
|
|
6
|
+
'variables': {
|
|
7
|
+
'NAPI_VERSION%': "<!(node -p \"process.versions.napi\")",
|
|
8
|
+
'disable_deprecated': "<!(node -p \"process.env['npm_config_disable_deprecated']\")"
|
|
9
|
+
},
|
|
10
|
+
'conditions': [
|
|
11
|
+
['NAPI_VERSION!=""', { 'defines': ['NAPI_VERSION=<@(NAPI_VERSION)'] } ],
|
|
12
|
+
['disable_deprecated=="true"', {
|
|
13
|
+
'defines': ['NODE_ADDON_API_DISABLE_DEPRECATED']
|
|
14
|
+
}],
|
|
15
|
+
['OS=="mac"', {
|
|
16
|
+
'cflags+': ['-fvisibility=hidden'],
|
|
17
|
+
'xcode_settings': {
|
|
18
|
+
'OTHER_CFLAGS': ['-fvisibility=hidden']
|
|
19
|
+
}
|
|
20
|
+
}]
|
|
21
|
+
],
|
|
22
|
+
'sources': [
|
|
23
|
+
'addon.cc',
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
'targets': [
|
|
27
|
+
{
|
|
28
|
+
'target_name': 'addon',
|
|
29
|
+
'defines': [ 'NAPI_CPP_EXCEPTIONS' ],
|
|
30
|
+
'cflags!': [ '-fno-exceptions' ],
|
|
31
|
+
'cflags_cc!': [ '-fno-exceptions' ],
|
|
32
|
+
'msvs_settings': {
|
|
33
|
+
'VCCLCompilerTool': {
|
|
34
|
+
'ExceptionHandling': 1,
|
|
35
|
+
'EnablePREfast': 'true',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
'xcode_settings': {
|
|
39
|
+
'CLANG_CXX_LIBRARY': 'libc++',
|
|
40
|
+
'MACOSX_DEPLOYMENT_TARGET': '10.7',
|
|
41
|
+
'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
'target_name': 'addon_noexcept',
|
|
46
|
+
'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ],
|
|
47
|
+
'cflags': [ '-fno-exceptions' ],
|
|
48
|
+
'cflags_cc': [ '-fno-exceptions' ],
|
|
49
|
+
'msvs_settings': {
|
|
50
|
+
'VCCLCompilerTool': {
|
|
51
|
+
'ExceptionHandling': 0,
|
|
52
|
+
'EnablePREfast': 'true',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
'xcode_settings': {
|
|
56
|
+
'CLANG_CXX_LIBRARY': 'libc++',
|
|
57
|
+
'MACOSX_DEPLOYMENT_TARGET': '10.7',
|
|
58
|
+
'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const except = require('bindings')('addon')
|
|
4
|
-
const noexcept = require('bindings')('addon_noexcept')
|
|
5
|
-
|
|
6
|
-
module.exports = {
|
|
7
|
-
except,
|
|
8
|
-
noexcept
|
|
9
|
-
}
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const except = require('bindings')('addon')
|
|
4
|
+
const noexcept = require('bindings')('addon_noexcept')
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
except,
|
|
8
|
+
noexcept
|
|
9
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "addon",
|
|
3
|
-
"version": "0.0.0",
|
|
4
|
-
"description": "Node.js addon",
|
|
5
|
-
"private": true,
|
|
6
|
-
"scripts": {},
|
|
7
|
-
"dependencies": {
|
|
8
|
-
"node-addon-api": "file:../../../../"
|
|
9
|
-
},
|
|
10
|
-
"gypfile": true
|
|
11
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "addon",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Node.js addon",
|
|
5
|
+
"private": true,
|
|
6
|
+
"scripts": {},
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"node-addon-api": "file:../../../../"
|
|
9
|
+
},
|
|
10
|
+
"gypfile": true
|
|
11
|
+
}
|