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
package/CMakeLists.txt
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
# This program is free software: you can redistribute it and/or modify
|
|
2
|
-
# it under the terms of the GNU Affero General Public License as published by
|
|
3
|
-
# the Free Software Foundation, either version 3 of the License, or
|
|
4
|
-
# (at your option) any later version.
|
|
5
|
-
#
|
|
6
|
-
# This program is distributed in the hope that it will be useful,
|
|
7
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
8
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
9
|
-
# GNU Affero General Public License for more details.
|
|
10
|
-
#
|
|
11
|
-
# You should have received a copy of the GNU Affero General Public License
|
|
12
|
-
# along with this program. If not, see https://www.gnu.org/licenses/.
|
|
13
|
-
|
|
14
|
-
cmake_minimum_required(VERSION 3.11)
|
|
15
|
-
project(koffi C CXX ASM)
|
|
16
|
-
|
|
17
|
-
set(CMAKE_CXX_STANDARD 17)
|
|
18
|
-
if(MSVC)
|
|
19
|
-
enable_language(ASM_MASM)
|
|
20
|
-
endif()
|
|
21
|
-
|
|
22
|
-
set(KOFFI_SRC
|
|
23
|
-
src/call_arm64.cc
|
|
24
|
-
src/call_x64_sysv.cc
|
|
25
|
-
src/call_x64_win.cc
|
|
26
|
-
src/call_x86.cc
|
|
27
|
-
src/ffi.cc
|
|
28
|
-
src/util.cc
|
|
29
|
-
vendor/libcc/libcc.cc
|
|
30
|
-
)
|
|
31
|
-
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
32
|
-
if(WIN32)
|
|
33
|
-
list(APPEND KOFFI_SRC src/call_x64_win_fwd.asm)
|
|
34
|
-
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64)
|
|
35
|
-
list(APPEND KOFFI_SRC src/call_arm64_fwd.S)
|
|
36
|
-
else()
|
|
37
|
-
list(APPEND KOFFI_SRC src/call_x64_sysv_fwd.S)
|
|
38
|
-
endif()
|
|
39
|
-
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
40
|
-
if(WIN32)
|
|
41
|
-
list(APPEND KOFFI_SRC src/call_x86_fwd.asm)
|
|
42
|
-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i[3456]86|x86|AMD64")
|
|
43
|
-
list(APPEND KOFFI_SRC src/call_x86_fwd.S)
|
|
44
|
-
endif()
|
|
45
|
-
endif()
|
|
46
|
-
|
|
47
|
-
add_library(koffi SHARED ${KOFFI_SRC} ${CMAKE_JS_SRC})
|
|
48
|
-
set_target_properties(koffi PROPERTIES PREFIX "" SUFFIX ".node")
|
|
49
|
-
target_include_directories(koffi PRIVATE . ${CMAKE_JS_INC} vendor/node-addon-api)
|
|
50
|
-
target_link_libraries(koffi PRIVATE ${CMAKE_JS_LIB})
|
|
51
|
-
|
|
52
|
-
if(WIN32)
|
|
53
|
-
target_compile_definitions(koffi PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)
|
|
54
|
-
target_link_libraries(koffi PRIVATE ws2_32)
|
|
55
|
-
endif()
|
|
56
|
-
if(MSVC)
|
|
57
|
-
target_compile_options(koffi PRIVATE /wd4200)
|
|
58
|
-
else()
|
|
59
|
-
target_compile_options(koffi PRIVATE -Wno-missing-field-initializers)
|
|
60
|
-
endif()
|
|
1
|
+
# This program is free software: you can redistribute it and/or modify
|
|
2
|
+
# it under the terms of the GNU Affero General Public License as published by
|
|
3
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
4
|
+
# (at your option) any later version.
|
|
5
|
+
#
|
|
6
|
+
# This program is distributed in the hope that it will be useful,
|
|
7
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
8
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
9
|
+
# GNU Affero General Public License for more details.
|
|
10
|
+
#
|
|
11
|
+
# You should have received a copy of the GNU Affero General Public License
|
|
12
|
+
# along with this program. If not, see https://www.gnu.org/licenses/.
|
|
13
|
+
|
|
14
|
+
cmake_minimum_required(VERSION 3.11)
|
|
15
|
+
project(koffi C CXX ASM)
|
|
16
|
+
|
|
17
|
+
set(CMAKE_CXX_STANDARD 17)
|
|
18
|
+
if(MSVC)
|
|
19
|
+
enable_language(ASM_MASM)
|
|
20
|
+
endif()
|
|
21
|
+
|
|
22
|
+
set(KOFFI_SRC
|
|
23
|
+
src/call_arm64.cc
|
|
24
|
+
src/call_x64_sysv.cc
|
|
25
|
+
src/call_x64_win.cc
|
|
26
|
+
src/call_x86.cc
|
|
27
|
+
src/ffi.cc
|
|
28
|
+
src/util.cc
|
|
29
|
+
vendor/libcc/libcc.cc
|
|
30
|
+
)
|
|
31
|
+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
32
|
+
if(WIN32)
|
|
33
|
+
list(APPEND KOFFI_SRC src/call_x64_win_fwd.asm)
|
|
34
|
+
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64)
|
|
35
|
+
list(APPEND KOFFI_SRC src/call_arm64_fwd.S)
|
|
36
|
+
else()
|
|
37
|
+
list(APPEND KOFFI_SRC src/call_x64_sysv_fwd.S)
|
|
38
|
+
endif()
|
|
39
|
+
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
40
|
+
if(WIN32)
|
|
41
|
+
list(APPEND KOFFI_SRC src/call_x86_fwd.asm)
|
|
42
|
+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i[3456]86|x86|AMD64")
|
|
43
|
+
list(APPEND KOFFI_SRC src/call_x86_fwd.S)
|
|
44
|
+
endif()
|
|
45
|
+
endif()
|
|
46
|
+
|
|
47
|
+
add_library(koffi SHARED ${KOFFI_SRC} ${CMAKE_JS_SRC})
|
|
48
|
+
set_target_properties(koffi PROPERTIES PREFIX "" SUFFIX ".node")
|
|
49
|
+
target_include_directories(koffi PRIVATE . ${CMAKE_JS_INC} vendor/node-addon-api)
|
|
50
|
+
target_link_libraries(koffi PRIVATE ${CMAKE_JS_LIB})
|
|
51
|
+
|
|
52
|
+
if(WIN32)
|
|
53
|
+
target_compile_definitions(koffi PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)
|
|
54
|
+
target_link_libraries(koffi PRIVATE ws2_32)
|
|
55
|
+
endif()
|
|
56
|
+
if(MSVC)
|
|
57
|
+
target_compile_options(koffi PRIVATE /wd4200)
|
|
58
|
+
else()
|
|
59
|
+
target_compile_options(koffi PRIVATE -Wno-missing-field-initializers)
|
|
60
|
+
endif()
|
package/README.md
CHANGED
|
@@ -1,153 +1,163 @@
|
|
|
1
|
-
# Introduction
|
|
2
|
-
|
|
3
|
-
koffi is a fast and easy-to-use FFI module for Node.js, with support for complex data types such as structs.
|
|
4
|
-
|
|
5
|
-
The following platforms
|
|
6
|
-
|
|
7
|
-
* Windows
|
|
8
|
-
*
|
|
9
|
-
* Linux
|
|
10
|
-
* Linux
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
1
|
+
# Introduction
|
|
2
|
+
|
|
3
|
+
koffi is a fast and easy-to-use FFI module for Node.js, with support for complex data types such as structs.
|
|
4
|
+
|
|
5
|
+
The following platforms __are supported__ at the moment:
|
|
6
|
+
|
|
7
|
+
* Windows x86 *(cdecl, stdcall)*
|
|
8
|
+
* Windows x86_64
|
|
9
|
+
* Linux x86
|
|
10
|
+
* Linux x86_64
|
|
11
|
+
* Linux ARM64 *(Raspberry Pi OS 64-bit)*
|
|
12
|
+
|
|
13
|
+
The following platforms are __not yet supported__ but will be soon:
|
|
14
|
+
|
|
15
|
+
* macOS x86_64
|
|
16
|
+
* macOS ARM64
|
|
17
|
+
* FreeBSD/NetBSD/OpenBSD x86_64
|
|
18
|
+
* FreeBSD/NetBSD/OpenBSD ARM64
|
|
19
|
+
|
|
20
|
+
Support for ARM32 is not planned, though I don't mind working on it if there is enough demand.
|
|
21
|
+
|
|
22
|
+
This is still in development, more tests will come in the near future.
|
|
23
|
+
|
|
24
|
+
# Installation
|
|
25
|
+
|
|
26
|
+
## Windows
|
|
27
|
+
|
|
28
|
+
First, make sure the following dependencies are met:
|
|
29
|
+
|
|
30
|
+
* The "Desktop development with C++" workload from [Visual Studio 2022 or 2019](https://visualstudio.microsoft.com/downloads/) or the "C++ build tools" workload from the [Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022), with the default optional components.
|
|
31
|
+
* [CMake meta build system](https://cmake.org/)
|
|
32
|
+
* [Node 16 LTS](https://nodejs.org/), but a newer version should work too
|
|
33
|
+
|
|
34
|
+
Once this is done, run this command from the project root:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
npm install koffi
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Other platforms (Linux, macOS, etc.)
|
|
41
|
+
|
|
42
|
+
Make sure the following dependencies are met:
|
|
43
|
+
|
|
44
|
+
* `gcc` and `g++` >= 8.3 or newer
|
|
45
|
+
* GNU Make 3.81 or newer
|
|
46
|
+
* [CMake meta build system](https://cmake.org/)
|
|
47
|
+
|
|
48
|
+
Once these dependencies are met, simply run the follow command:
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
npm install koffi
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
# How to use
|
|
55
|
+
|
|
56
|
+
This section assumes you know how to build C shared libraries.
|
|
57
|
+
|
|
58
|
+
This examples illustrates how to use koffi with a Raylib shared library:
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
const koffi = require('koffi/build/Release/koffi.node');
|
|
62
|
+
|
|
63
|
+
const Color = koffi.struct('Color', {
|
|
64
|
+
r: 'uchar',
|
|
65
|
+
g: 'uchar',
|
|
66
|
+
b: 'uchar',
|
|
67
|
+
a: 'uchar'
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const Image = koffi.struct('Image', {
|
|
71
|
+
data: koffi.pointer('void'),
|
|
72
|
+
width: 'int',
|
|
73
|
+
height: 'int',
|
|
74
|
+
mipmaps: 'int',
|
|
75
|
+
format: 'int'
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
const GlyphInfo = koffi.struct('GlyphInfo', {
|
|
79
|
+
value: 'int',
|
|
80
|
+
offsetX: 'int',
|
|
81
|
+
offsetY: 'int',
|
|
82
|
+
advanceX: 'int',
|
|
83
|
+
image: Image
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
const Vector2 = koffi.struct('Vector2', {
|
|
87
|
+
x: 'float',
|
|
88
|
+
y: 'float'
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
const Rectangle = koffi.struct('Rectangle', {
|
|
92
|
+
x: 'float',
|
|
93
|
+
y: 'float',
|
|
94
|
+
width: 'float',
|
|
95
|
+
height: 'float'
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const Texture = koffi.struct('Texture', {
|
|
99
|
+
id: 'uint',
|
|
100
|
+
width: 'int',
|
|
101
|
+
height: 'int',
|
|
102
|
+
mipmaps: 'int',
|
|
103
|
+
format: 'int'
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
const Font = koffi.struct('Font', {
|
|
107
|
+
baseSize: 'int',
|
|
108
|
+
glyphCount: 'int',
|
|
109
|
+
glyphPadding: 'int',
|
|
110
|
+
texture: Texture,
|
|
111
|
+
recs: koffi.pointer(Rectangle),
|
|
112
|
+
glyphs: koffi.pointer(GlyphInfo)
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Fix the path to Raylib DLL
|
|
116
|
+
let raylib = koffi.load('Raylib.dll', {
|
|
117
|
+
InitWindow: ['void', ['int', 'int', 'string']],
|
|
118
|
+
SetTargetFPS: ['void', ['int']],
|
|
119
|
+
GetScreenWidth: ['int', []],
|
|
120
|
+
GetScreenHeight: ['int', []],
|
|
121
|
+
ClearBackground: ['void', [Color]],
|
|
122
|
+
BeginDrawing: ['void', []],
|
|
123
|
+
EndDrawing: ['void', []],
|
|
124
|
+
WindowShouldClose: ['bool', []],
|
|
125
|
+
GetFontDefault: [Font, []],
|
|
126
|
+
MeasureTextEx: [Vector2, [Font, 'string', 'float', 'float']],
|
|
127
|
+
DrawTextEx: ['void', [Font, 'string', Vector2, 'float', 'float', Color]]
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
raylib.InitWindow(800, 600, 'Test Raylib');
|
|
131
|
+
raylib.SetTargetFPS(60);
|
|
132
|
+
|
|
133
|
+
let angle = 0;
|
|
134
|
+
|
|
135
|
+
while (!raylib.WindowShouldClose()) {
|
|
136
|
+
raylib.BeginDrawing();
|
|
137
|
+
raylib.ClearBackground({ r: 0, g: 0, b: 0, a: 255 }); // black
|
|
138
|
+
|
|
139
|
+
let win_width = raylib.GetScreenWidth();
|
|
140
|
+
let win_height = raylib.GetScreenHeight();
|
|
141
|
+
|
|
142
|
+
let text = 'Hello World!';
|
|
143
|
+
let text_width = raylib.MeasureTextEx(raylib.GetFontDefault(), text, 32, 1).x;
|
|
144
|
+
|
|
145
|
+
let color = {
|
|
146
|
+
r: 127.5 + 127.5 * Math.sin(angle),
|
|
147
|
+
g: 127.5 + 127.5 * Math.sin(angle + Math.PI / 2),
|
|
148
|
+
b: 127.5 + 127.5 * Math.sin(angle + Math.PI),
|
|
149
|
+
a: 255
|
|
150
|
+
};
|
|
151
|
+
let pos = {
|
|
152
|
+
x: (win_width / 2 - text_width / 2) + 120 * Math.cos(angle - Math.PI / 2),
|
|
153
|
+
y: (win_height / 2 - 16) + 120 * Math.sin(angle - Math.PI / 2)
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
raylib.DrawTextEx(raylib.GetFontDefault(), text, pos, 32, 1, color);
|
|
157
|
+
|
|
158
|
+
raylib.EndDrawing();
|
|
159
|
+
|
|
160
|
+
angle += Math.PI / 180;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
```
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "koffi",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "Fast and simple FFI (foreign function interface) for Node.js",
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "koffi",
|
|
3
|
+
"version": "0.9.5",
|
|
4
|
+
"description": "Fast and simple FFI (foreign function interface) for Node.js",
|
|
5
|
+
"keywords": ["foreign", "function", "interface", "ffi", "binding", "c", "napi"],
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/Koromix/luigi.git"
|
|
9
|
+
},
|
|
10
|
+
"author": "Niels Martignène <niels.martignene@protonmail.com>",
|
|
11
|
+
"main": "build/Release/koffi.node",
|
|
12
|
+
"scripts": {
|
|
13
|
+
"install": "cmake-js"
|
|
14
|
+
},
|
|
15
|
+
"license": "AGPL-3.0",
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"cmake-js": "^6.3.0"
|
|
18
|
+
}
|
|
19
|
+
}
|
package/src/call.hh
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
// This program is free software: you can redistribute it and/or modify
|
|
2
|
-
// it under the terms of the GNU Affero General Public License as published by
|
|
3
|
-
// the Free Software Foundation, either version 3 of the License, or
|
|
4
|
-
// (at your option) any later version.
|
|
5
|
-
//
|
|
6
|
-
// This program is distributed in the hope that it will be useful,
|
|
7
|
-
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
8
|
-
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
9
|
-
// GNU Affero General Public License for more details.
|
|
10
|
-
//
|
|
11
|
-
// You should have received a copy of the GNU Affero General Public License
|
|
12
|
-
// along with this program. If not, see https://www.gnu.org/licenses/.
|
|
13
|
-
|
|
14
|
-
#pragma once
|
|
15
|
-
|
|
16
|
-
#include "vendor/libcc/libcc.hh"
|
|
17
|
-
|
|
18
|
-
#include <napi.h>
|
|
19
|
-
|
|
20
|
-
namespace RG {
|
|
21
|
-
|
|
22
|
-
struct FunctionInfo;
|
|
23
|
-
|
|
24
|
-
bool AnalyseFunction(FunctionInfo *func);
|
|
25
|
-
Napi::Value TranslateCall(const Napi::CallbackInfo &info);
|
|
26
|
-
|
|
27
|
-
}
|
|
1
|
+
// This program is free software: you can redistribute it and/or modify
|
|
2
|
+
// it under the terms of the GNU Affero General Public License as published by
|
|
3
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
4
|
+
// (at your option) any later version.
|
|
5
|
+
//
|
|
6
|
+
// This program is distributed in the hope that it will be useful,
|
|
7
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
8
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
9
|
+
// GNU Affero General Public License for more details.
|
|
10
|
+
//
|
|
11
|
+
// You should have received a copy of the GNU Affero General Public License
|
|
12
|
+
// along with this program. If not, see https://www.gnu.org/licenses/.
|
|
13
|
+
|
|
14
|
+
#pragma once
|
|
15
|
+
|
|
16
|
+
#include "vendor/libcc/libcc.hh"
|
|
17
|
+
|
|
18
|
+
#include <napi.h>
|
|
19
|
+
|
|
20
|
+
namespace RG {
|
|
21
|
+
|
|
22
|
+
struct FunctionInfo;
|
|
23
|
+
|
|
24
|
+
bool AnalyseFunction(FunctionInfo *func);
|
|
25
|
+
Napi::Value TranslateCall(const Napi::CallbackInfo &info);
|
|
26
|
+
|
|
27
|
+
}
|