koffi 2.7.2 → 2.7.3

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/koffi/darwin_arm64/koffi.node +0 -0
  3. package/build/koffi/darwin_x64/koffi.node +0 -0
  4. package/build/koffi/freebsd_arm64/koffi.node +0 -0
  5. package/build/koffi/freebsd_ia32/koffi.node +0 -0
  6. package/build/koffi/freebsd_x64/koffi.node +0 -0
  7. package/build/koffi/linux_arm32hf/koffi.node +0 -0
  8. package/build/koffi/linux_arm64/koffi.node +0 -0
  9. package/build/koffi/linux_ia32/koffi.node +0 -0
  10. package/build/koffi/linux_riscv64hf64/koffi.node +0 -0
  11. package/build/koffi/linux_x64/koffi.node +0 -0
  12. package/build/koffi/openbsd_ia32/koffi.node +0 -0
  13. package/build/koffi/openbsd_x64/koffi.node +0 -0
  14. package/build/koffi/win32_arm64/koffi.node +0 -0
  15. package/build/koffi/win32_ia32/koffi.node +0 -0
  16. package/build/koffi/win32_x64/koffi.node +0 -0
  17. package/doc/misc.md +1 -1
  18. package/index.js +2 -2
  19. package/indirect.js +2 -2
  20. package/package.json +2 -2
  21. package/src/koffi/src/call.cc +1 -1
  22. package/src/koffi/src/util.cc +7 -13
  23. package/src/koffi/src/util.hh +9 -1
  24. package/vendor/node-addon-api/CHANGELOG.md +76 -0
  25. package/vendor/node-addon-api/LICENSE.md +2 -6
  26. package/vendor/node-addon-api/README.md +10 -9
  27. package/vendor/node-addon-api/benchmark/binding.gyp +4 -4
  28. package/vendor/node-addon-api/common.gypi +1 -2
  29. package/vendor/node-addon-api/doc/array.md +1 -1
  30. package/vendor/node-addon-api/doc/async_worker_variants.md +16 -16
  31. package/vendor/node-addon-api/doc/cmake-js.md +1 -1
  32. package/vendor/node-addon-api/doc/env.md +11 -0
  33. package/vendor/node-addon-api/doc/hierarchy.md +2 -0
  34. package/vendor/node-addon-api/doc/setup.md +53 -71
  35. package/vendor/node-addon-api/doc/syntax_error.md +66 -0
  36. package/vendor/node-addon-api/doc/value.md +2 -0
  37. package/vendor/node-addon-api/index.js +2 -1
  38. package/vendor/node-addon-api/napi-inl.h +68 -65
  39. package/vendor/node-addon-api/napi.h +15 -5
  40. package/vendor/node-addon-api/node_addon_api.gyp +32 -0
  41. package/vendor/node-addon-api/package.json +14 -3
  42. package/vendor/node-addon-api/test/addon.cc +7 -1
  43. package/vendor/node-addon-api/test/addon.js +5 -9
  44. package/vendor/node-addon-api/test/addon_data.cc +3 -3
  45. package/vendor/node-addon-api/test/addon_data.js +16 -38
  46. package/vendor/node-addon-api/test/bigint.cc +0 -1
  47. package/vendor/node-addon-api/test/binding.cc +12 -1
  48. package/vendor/node-addon-api/test/binding.gyp +10 -8
  49. package/vendor/node-addon-api/test/child_processes/addon.js +11 -0
  50. package/vendor/node-addon-api/test/child_processes/addon_data.js +24 -0
  51. package/vendor/node-addon-api/test/child_processes/objectwrap_function.js +22 -0
  52. package/vendor/node-addon-api/test/child_processes/threadsafe_function_exception.js +33 -0
  53. package/vendor/node-addon-api/test/child_processes/typed_threadsafe_function_exception.js +19 -0
  54. package/vendor/node-addon-api/test/common/index.js +57 -3
  55. package/vendor/node-addon-api/test/env_misc.cc +25 -0
  56. package/vendor/node-addon-api/test/env_misc.js +12 -0
  57. package/vendor/node-addon-api/test/error.cc +47 -0
  58. package/vendor/node-addon-api/test/error.js +16 -0
  59. package/vendor/node-addon-api/test/index.js +5 -0
  60. package/vendor/node-addon-api/test/objectwrap_function.cc +10 -12
  61. package/vendor/node-addon-api/test/objectwrap_function.js +4 -20
  62. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.cc +50 -0
  63. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.js +20 -0
  64. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.cc +39 -0
  65. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.js +13 -0
@@ -0,0 +1,50 @@
1
+ #include <cstdlib>
2
+ #include "napi.h"
3
+ #include "test_helper.h"
4
+
5
+ #if (NAPI_VERSION > 3)
6
+
7
+ using namespace Napi;
8
+
9
+ namespace {
10
+
11
+ void CallJS(napi_env env, napi_value /* callback */, void* /*data*/) {
12
+ Napi::Error error = Napi::Error::New(env, "test-from-native");
13
+ NAPI_THROW_VOID(error);
14
+ }
15
+
16
+ void TestCall(const CallbackInfo& info) {
17
+ Napi::Env env = info.Env();
18
+
19
+ ThreadSafeFunction wrapped =
20
+ ThreadSafeFunction::New(env,
21
+ info[0].As<Napi::Function>(),
22
+ Object::New(env),
23
+ String::New(env, "Test"),
24
+ 0,
25
+ 1);
26
+ wrapped.BlockingCall(static_cast<void*>(nullptr));
27
+ wrapped.Release();
28
+ }
29
+
30
+ void TestCallWithNativeCallback(const CallbackInfo& info) {
31
+ Napi::Env env = info.Env();
32
+
33
+ ThreadSafeFunction wrapped = ThreadSafeFunction::New(
34
+ env, Napi::Function(), Object::New(env), String::New(env, "Test"), 0, 1);
35
+ wrapped.BlockingCall(static_cast<void*>(nullptr), CallJS);
36
+ wrapped.Release();
37
+ }
38
+
39
+ } // namespace
40
+
41
+ Object InitThreadSafeFunctionException(Env env) {
42
+ Object exports = Object::New(env);
43
+ exports["testCall"] = Function::New(env, TestCall);
44
+ exports["testCallWithNativeCallback"] =
45
+ Function::New(env, TestCallWithNativeCallback);
46
+
47
+ return exports;
48
+ }
49
+
50
+ #endif
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ const common = require('../common');
4
+
5
+ module.exports = common.runTest(test);
6
+
7
+ const execArgv = ['--force-node-api-uncaught-exceptions-policy=true'];
8
+ async function test () {
9
+ await common.runTestInChildProcess({
10
+ suite: 'threadsafe_function_exception',
11
+ testName: 'testCall',
12
+ execArgv
13
+ });
14
+
15
+ await common.runTestInChildProcess({
16
+ suite: 'threadsafe_function_exception',
17
+ testName: 'testCallWithNativeCallback',
18
+ execArgv
19
+ });
20
+ }
@@ -0,0 +1,39 @@
1
+ #include <cstdlib>
2
+ #include "napi.h"
3
+ #include "test_helper.h"
4
+
5
+ #if (NAPI_VERSION > 3)
6
+
7
+ using namespace Napi;
8
+
9
+ namespace {
10
+
11
+ void CallJS(Napi::Env env,
12
+ Napi::Function /* callback */,
13
+ std::nullptr_t* /* context */,
14
+ void* /*data*/) {
15
+ Napi::Error error = Napi::Error::New(env, "test-from-native");
16
+ NAPI_THROW_VOID(error);
17
+ }
18
+
19
+ using TSFN = TypedThreadSafeFunction<std::nullptr_t, void, CallJS>;
20
+
21
+ void TestCall(const CallbackInfo& info) {
22
+ Napi::Env env = info.Env();
23
+
24
+ TSFN wrapped = TSFN::New(
25
+ env, Napi::Function(), Object::New(env), String::New(env, "Test"), 0, 1);
26
+ wrapped.BlockingCall(static_cast<void*>(nullptr));
27
+ wrapped.Release();
28
+ }
29
+
30
+ } // namespace
31
+
32
+ Object InitTypedThreadSafeFunctionException(Env env) {
33
+ Object exports = Object::New(env);
34
+ exports["testCall"] = Function::New(env, TestCall);
35
+
36
+ return exports;
37
+ }
38
+
39
+ #endif
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const common = require('../common');
4
+
5
+ module.exports = common.runTest(test);
6
+
7
+ async function test () {
8
+ await common.runTestInChildProcess({
9
+ suite: 'typed_threadsafe_function_exception',
10
+ testName: 'testCall',
11
+ execArgv: ['--force-node-api-uncaught-exceptions-policy=true']
12
+ });
13
+ }