koffi 1.0.3 → 1.1.0-beta.0

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 (271) hide show
  1. package/README.md +48 -22
  2. package/build/qemu/1.1.0-beta.0/koffi_darwin_x64.tar.gz +0 -0
  3. package/build/qemu/1.1.0-beta.0/koffi_freebsd_arm64.tar.gz +0 -0
  4. package/build/qemu/1.1.0-beta.0/koffi_freebsd_ia32.tar.gz +0 -0
  5. package/build/qemu/1.1.0-beta.0/koffi_freebsd_x64.tar.gz +0 -0
  6. package/build/qemu/1.1.0-beta.0/koffi_linux_arm.tar.gz +0 -0
  7. package/build/qemu/1.1.0-beta.0/koffi_linux_arm64.tar.gz +0 -0
  8. package/build/qemu/1.1.0-beta.0/koffi_linux_ia32.tar.gz +0 -0
  9. package/build/qemu/1.1.0-beta.0/koffi_linux_x64.tar.gz +0 -0
  10. package/build/qemu/1.1.0-beta.0/koffi_win32_ia32.tar.gz +0 -0
  11. package/build/qemu/1.1.0-beta.0/koffi_win32_x64.tar.gz +0 -0
  12. package/package.json +1 -1
  13. package/qemu/qemu.js +11 -5
  14. package/qemu/registry/machines.json +20 -10
  15. package/src/abi_arm32.cc +130 -215
  16. package/src/abi_arm64.cc +103 -117
  17. package/src/abi_x64_sysv.cc +117 -135
  18. package/src/abi_x64_win.cc +89 -98
  19. package/src/abi_x86.cc +91 -99
  20. package/src/call.cc +164 -40
  21. package/src/call.hh +53 -31
  22. package/src/ffi.cc +163 -19
  23. package/src/ffi.hh +30 -22
  24. package/src/util.cc +0 -127
  25. package/src/util.hh +0 -16
  26. package/test/misc.c +68 -2
  27. package/vendor/libcc/libcc.hh +1 -1
  28. package/build/qemu/1.0.3/koffi_darwin_x64.tar.gz +0 -0
  29. package/build/qemu/1.0.3/koffi_freebsd_arm64.tar.gz +0 -0
  30. package/build/qemu/1.0.3/koffi_freebsd_ia32.tar.gz +0 -0
  31. package/build/qemu/1.0.3/koffi_freebsd_x64.tar.gz +0 -0
  32. package/build/qemu/1.0.3/koffi_linux_arm.tar.gz +0 -0
  33. package/build/qemu/1.0.3/koffi_linux_arm64.tar.gz +0 -0
  34. package/build/qemu/1.0.3/koffi_linux_ia32.tar.gz +0 -0
  35. package/build/qemu/1.0.3/koffi_linux_x64.tar.gz +0 -0
  36. package/build/qemu/1.0.3/koffi_win32_ia32.tar.gz +0 -0
  37. package/build/qemu/1.0.3/koffi_win32_x64.tar.gz +0 -0
  38. package/test/misc.js +0 -180
  39. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +0 -4
  40. package/vendor/node-addon-api/CONTRIBUTING.md +0 -93
  41. package/vendor/node-addon-api/appveyor.yml +0 -37
  42. package/vendor/node-addon-api/benchmark/README.md +0 -47
  43. package/vendor/node-addon-api/benchmark/binding.gyp +0 -25
  44. package/vendor/node-addon-api/benchmark/function_args.cc +0 -217
  45. package/vendor/node-addon-api/benchmark/function_args.js +0 -60
  46. package/vendor/node-addon-api/benchmark/index.js +0 -34
  47. package/vendor/node-addon-api/benchmark/property_descriptor.cc +0 -91
  48. package/vendor/node-addon-api/benchmark/property_descriptor.js +0 -37
  49. package/vendor/node-addon-api/doc/addon.md +0 -163
  50. package/vendor/node-addon-api/doc/array.md +0 -81
  51. package/vendor/node-addon-api/doc/array_buffer.md +0 -155
  52. package/vendor/node-addon-api/doc/async_context.md +0 -86
  53. package/vendor/node-addon-api/doc/async_operations.md +0 -31
  54. package/vendor/node-addon-api/doc/async_worker.md +0 -427
  55. package/vendor/node-addon-api/doc/async_worker_variants.md +0 -557
  56. package/vendor/node-addon-api/doc/bigint.md +0 -97
  57. package/vendor/node-addon-api/doc/boolean.md +0 -68
  58. package/vendor/node-addon-api/doc/buffer.md +0 -150
  59. package/vendor/node-addon-api/doc/callback_scope.md +0 -54
  60. package/vendor/node-addon-api/doc/callbackinfo.md +0 -97
  61. package/vendor/node-addon-api/doc/checker-tool.md +0 -32
  62. package/vendor/node-addon-api/doc/class_property_descriptor.md +0 -123
  63. package/vendor/node-addon-api/doc/cmake-js.md +0 -68
  64. package/vendor/node-addon-api/doc/conversion-tool.md +0 -28
  65. package/vendor/node-addon-api/doc/creating_a_release.md +0 -62
  66. package/vendor/node-addon-api/doc/dataview.md +0 -248
  67. package/vendor/node-addon-api/doc/date.md +0 -68
  68. package/vendor/node-addon-api/doc/env.md +0 -196
  69. package/vendor/node-addon-api/doc/error.md +0 -120
  70. package/vendor/node-addon-api/doc/error_handling.md +0 -254
  71. package/vendor/node-addon-api/doc/escapable_handle_scope.md +0 -80
  72. package/vendor/node-addon-api/doc/external.md +0 -63
  73. package/vendor/node-addon-api/doc/function.md +0 -402
  74. package/vendor/node-addon-api/doc/function_reference.md +0 -238
  75. package/vendor/node-addon-api/doc/generator.md +0 -13
  76. package/vendor/node-addon-api/doc/handle_scope.md +0 -63
  77. package/vendor/node-addon-api/doc/hierarchy.md +0 -91
  78. package/vendor/node-addon-api/doc/instance_wrap.md +0 -408
  79. package/vendor/node-addon-api/doc/maybe.md +0 -76
  80. package/vendor/node-addon-api/doc/memory_management.md +0 -27
  81. package/vendor/node-addon-api/doc/name.md +0 -29
  82. package/vendor/node-addon-api/doc/node-gyp.md +0 -82
  83. package/vendor/node-addon-api/doc/number.md +0 -163
  84. package/vendor/node-addon-api/doc/object.md +0 -411
  85. package/vendor/node-addon-api/doc/object_lifetime_management.md +0 -83
  86. package/vendor/node-addon-api/doc/object_reference.md +0 -117
  87. package/vendor/node-addon-api/doc/object_wrap.md +0 -588
  88. package/vendor/node-addon-api/doc/prebuild_tools.md +0 -16
  89. package/vendor/node-addon-api/doc/promises.md +0 -79
  90. package/vendor/node-addon-api/doc/property_descriptor.md +0 -286
  91. package/vendor/node-addon-api/doc/propertylvalue.md +0 -50
  92. package/vendor/node-addon-api/doc/range_error.md +0 -59
  93. package/vendor/node-addon-api/doc/reference.md +0 -113
  94. package/vendor/node-addon-api/doc/setup.md +0 -110
  95. package/vendor/node-addon-api/doc/string.md +0 -93
  96. package/vendor/node-addon-api/doc/symbol.md +0 -61
  97. package/vendor/node-addon-api/doc/threadsafe.md +0 -121
  98. package/vendor/node-addon-api/doc/threadsafe_function.md +0 -290
  99. package/vendor/node-addon-api/doc/type_error.md +0 -59
  100. package/vendor/node-addon-api/doc/typed_array.md +0 -78
  101. package/vendor/node-addon-api/doc/typed_array_of.md +0 -137
  102. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +0 -306
  103. package/vendor/node-addon-api/doc/value.md +0 -340
  104. package/vendor/node-addon-api/doc/version_management.md +0 -43
  105. package/vendor/node-addon-api/package.json +0 -415
  106. package/vendor/node-addon-api/test/README.md +0 -91
  107. package/vendor/node-addon-api/test/addon.cc +0 -36
  108. package/vendor/node-addon-api/test/addon.js +0 -11
  109. package/vendor/node-addon-api/test/addon_build/index.js +0 -49
  110. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +0 -17
  111. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +0 -62
  112. package/vendor/node-addon-api/test/addon_build/tpl/index.js +0 -9
  113. package/vendor/node-addon-api/test/addon_build/tpl/package.json +0 -11
  114. package/vendor/node-addon-api/test/addon_data.cc +0 -99
  115. package/vendor/node-addon-api/test/addon_data.js +0 -46
  116. package/vendor/node-addon-api/test/array_buffer.cc +0 -243
  117. package/vendor/node-addon-api/test/array_buffer.js +0 -69
  118. package/vendor/node-addon-api/test/async_context.cc +0 -36
  119. package/vendor/node-addon-api/test/async_context.js +0 -122
  120. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +0 -83
  121. package/vendor/node-addon-api/test/async_progress_queue_worker.js +0 -46
  122. package/vendor/node-addon-api/test/async_progress_worker.cc +0 -134
  123. package/vendor/node-addon-api/test/async_progress_worker.js +0 -61
  124. package/vendor/node-addon-api/test/async_worker.cc +0 -106
  125. package/vendor/node-addon-api/test/async_worker.js +0 -179
  126. package/vendor/node-addon-api/test/async_worker_nocallback.js +0 -13
  127. package/vendor/node-addon-api/test/async_worker_persistent.cc +0 -63
  128. package/vendor/node-addon-api/test/async_worker_persistent.js +0 -24
  129. package/vendor/node-addon-api/test/basic_types/array.cc +0 -40
  130. package/vendor/node-addon-api/test/basic_types/array.js +0 -35
  131. package/vendor/node-addon-api/test/basic_types/boolean.cc +0 -38
  132. package/vendor/node-addon-api/test/basic_types/boolean.js +0 -35
  133. package/vendor/node-addon-api/test/basic_types/number.cc +0 -99
  134. package/vendor/node-addon-api/test/basic_types/number.js +0 -114
  135. package/vendor/node-addon-api/test/basic_types/value.cc +0 -120
  136. package/vendor/node-addon-api/test/basic_types/value.js +0 -133
  137. package/vendor/node-addon-api/test/bigint.cc +0 -91
  138. package/vendor/node-addon-api/test/bigint.js +0 -53
  139. package/vendor/node-addon-api/test/binding-swallowexcept.cc +0 -12
  140. package/vendor/node-addon-api/test/binding.cc +0 -173
  141. package/vendor/node-addon-api/test/binding.gyp +0 -124
  142. package/vendor/node-addon-api/test/buffer.cc +0 -183
  143. package/vendor/node-addon-api/test/buffer.js +0 -69
  144. package/vendor/node-addon-api/test/callbackscope.cc +0 -22
  145. package/vendor/node-addon-api/test/callbackscope.js +0 -49
  146. package/vendor/node-addon-api/test/common/index.js +0 -114
  147. package/vendor/node-addon-api/test/common/test_helper.h +0 -71
  148. package/vendor/node-addon-api/test/dataview/dataview.cc +0 -48
  149. package/vendor/node-addon-api/test/dataview/dataview.js +0 -35
  150. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +0 -115
  151. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +0 -90
  152. package/vendor/node-addon-api/test/date.cc +0 -44
  153. package/vendor/node-addon-api/test/date.js +0 -18
  154. package/vendor/node-addon-api/test/env_cleanup.cc +0 -88
  155. package/vendor/node-addon-api/test/env_cleanup.js +0 -56
  156. package/vendor/node-addon-api/test/error.cc +0 -287
  157. package/vendor/node-addon-api/test/error.js +0 -81
  158. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +0 -13
  159. package/vendor/node-addon-api/test/error_handling_for_primitives.js +0 -29
  160. package/vendor/node-addon-api/test/error_terminating_environment.js +0 -95
  161. package/vendor/node-addon-api/test/external.cc +0 -81
  162. package/vendor/node-addon-api/test/external.js +0 -88
  163. package/vendor/node-addon-api/test/function.cc +0 -324
  164. package/vendor/node-addon-api/test/function.js +0 -133
  165. package/vendor/node-addon-api/test/function_reference.cc +0 -202
  166. package/vendor/node-addon-api/test/function_reference.js +0 -157
  167. package/vendor/node-addon-api/test/globalObject/global_object.cc +0 -61
  168. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +0 -31
  169. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +0 -61
  170. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +0 -40
  171. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +0 -57
  172. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +0 -28
  173. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +0 -48
  174. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +0 -31
  175. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +0 -58
  176. package/vendor/node-addon-api/test/handlescope.cc +0 -60
  177. package/vendor/node-addon-api/test/handlescope.js +0 -14
  178. package/vendor/node-addon-api/test/index.js +0 -159
  179. package/vendor/node-addon-api/test/maybe/check.cc +0 -23
  180. package/vendor/node-addon-api/test/maybe/index.js +0 -38
  181. package/vendor/node-addon-api/test/memory_management.cc +0 -17
  182. package/vendor/node-addon-api/test/memory_management.js +0 -9
  183. package/vendor/node-addon-api/test/movable_callbacks.cc +0 -23
  184. package/vendor/node-addon-api/test/movable_callbacks.js +0 -21
  185. package/vendor/node-addon-api/test/name.cc +0 -108
  186. package/vendor/node-addon-api/test/name.js +0 -59
  187. package/vendor/node-addon-api/test/napi_child.js +0 -14
  188. package/vendor/node-addon-api/test/object/delete_property.cc +0 -38
  189. package/vendor/node-addon-api/test/object/delete_property.js +0 -41
  190. package/vendor/node-addon-api/test/object/finalizer.cc +0 -29
  191. package/vendor/node-addon-api/test/object/finalizer.js +0 -28
  192. package/vendor/node-addon-api/test/object/get_property.cc +0 -34
  193. package/vendor/node-addon-api/test/object/get_property.js +0 -40
  194. package/vendor/node-addon-api/test/object/has_own_property.cc +0 -34
  195. package/vendor/node-addon-api/test/object/has_own_property.js +0 -34
  196. package/vendor/node-addon-api/test/object/has_property.cc +0 -38
  197. package/vendor/node-addon-api/test/object/has_property.js +0 -37
  198. package/vendor/node-addon-api/test/object/object.cc +0 -350
  199. package/vendor/node-addon-api/test/object/object.js +0 -217
  200. package/vendor/node-addon-api/test/object/object_deprecated.cc +0 -66
  201. package/vendor/node-addon-api/test/object/object_deprecated.js +0 -47
  202. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +0 -25
  203. package/vendor/node-addon-api/test/object/object_freeze_seal.js +0 -61
  204. package/vendor/node-addon-api/test/object/set_property.cc +0 -45
  205. package/vendor/node-addon-api/test/object/set_property.js +0 -30
  206. package/vendor/node-addon-api/test/object/subscript_operator.cc +0 -58
  207. package/vendor/node-addon-api/test/object/subscript_operator.js +0 -17
  208. package/vendor/node-addon-api/test/object_reference.cc +0 -219
  209. package/vendor/node-addon-api/test/object_reference.js +0 -259
  210. package/vendor/node-addon-api/test/objectwrap.cc +0 -268
  211. package/vendor/node-addon-api/test/objectwrap.js +0 -284
  212. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +0 -26
  213. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +0 -18
  214. package/vendor/node-addon-api/test/objectwrap_function.cc +0 -45
  215. package/vendor/node-addon-api/test/objectwrap_function.js +0 -22
  216. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +0 -30
  217. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +0 -13
  218. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +0 -45
  219. package/vendor/node-addon-api/test/objectwrap_removewrap.js +0 -40
  220. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +0 -19
  221. package/vendor/node-addon-api/test/promise.cc +0 -29
  222. package/vendor/node-addon-api/test/promise.js +0 -18
  223. package/vendor/node-addon-api/test/reference.cc +0 -24
  224. package/vendor/node-addon-api/test/reference.js +0 -14
  225. package/vendor/node-addon-api/test/run_script.cc +0 -56
  226. package/vendor/node-addon-api/test/run_script.js +0 -45
  227. package/vendor/node-addon-api/test/symbol.cc +0 -79
  228. package/vendor/node-addon-api/test/symbol.js +0 -73
  229. package/vendor/node-addon-api/test/testUtil.js +0 -54
  230. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +0 -195
  231. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +0 -188
  232. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +0 -63
  233. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +0 -12
  234. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +0 -115
  235. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +0 -14
  236. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +0 -26
  237. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +0 -7
  238. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +0 -225
  239. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +0 -59
  240. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +0 -42
  241. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +0 -53
  242. package/vendor/node-addon-api/test/thunking_manual.cc +0 -140
  243. package/vendor/node-addon-api/test/thunking_manual.js +0 -17
  244. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +0 -215
  245. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +0 -188
  246. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +0 -68
  247. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +0 -12
  248. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +0 -127
  249. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +0 -14
  250. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +0 -28
  251. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +0 -7
  252. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +0 -237
  253. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +0 -59
  254. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +0 -53
  255. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +0 -53
  256. package/vendor/node-addon-api/test/typedarray-bigint.js +0 -58
  257. package/vendor/node-addon-api/test/typedarray.cc +0 -216
  258. package/vendor/node-addon-api/test/typedarray.js +0 -69
  259. package/vendor/node-addon-api/test/version_management.cc +0 -27
  260. package/vendor/node-addon-api/test/version_management.js +0 -31
  261. package/vendor/node-addon-api/unit-test/README.md +0 -28
  262. package/vendor/node-addon-api/unit-test/binding-file-template.js +0 -39
  263. package/vendor/node-addon-api/unit-test/binding.gyp +0 -72
  264. package/vendor/node-addon-api/unit-test/exceptions.js +0 -32
  265. package/vendor/node-addon-api/unit-test/generate-binding-cc.js +0 -61
  266. package/vendor/node-addon-api/unit-test/injectTestParams.js +0 -101
  267. package/vendor/node-addon-api/unit-test/listOfTestModules.js +0 -88
  268. package/vendor/node-addon-api/unit-test/matchModules.js +0 -65
  269. package/vendor/node-addon-api/unit-test/setup.js +0 -13
  270. package/vendor/node-addon-api/unit-test/spawnTask.js +0 -26
  271. package/vendor/node-addon-api/unit-test/test.js +0 -30
@@ -1,91 +0,0 @@
1
- #if (NAPI_VERSION > 5)
2
-
3
- #define NAPI_EXPERIMENTAL
4
- #include "napi.h"
5
-
6
- #include "test_helper.h"
7
-
8
- using namespace Napi;
9
-
10
- namespace {
11
-
12
- Value IsLossless(const CallbackInfo& info) {
13
- Env env = info.Env();
14
-
15
- BigInt big = info[0].As<BigInt>();
16
- bool is_signed = MaybeUnwrap(info[1].ToBoolean()).Value();
17
-
18
- bool lossless;
19
- if (is_signed) {
20
- big.Int64Value(&lossless);
21
- } else {
22
- big.Uint64Value(&lossless);
23
- }
24
-
25
- return Boolean::New(env, lossless);
26
- }
27
-
28
- Value IsBigInt(const CallbackInfo& info) {
29
- Env env = info.Env();
30
-
31
- BigInt big = info[0].As<BigInt>();
32
-
33
- return Boolean::New(env, big.IsBigInt());
34
- }
35
-
36
- Value TestInt64(const CallbackInfo& info) {
37
- bool lossless;
38
- int64_t input = info[0].As<BigInt>().Int64Value(&lossless);
39
-
40
- return BigInt::New(info.Env(), input);
41
- }
42
-
43
- Value TestUint64(const CallbackInfo& info) {
44
- bool lossless;
45
- uint64_t input = info[0].As<BigInt>().Uint64Value(&lossless);
46
-
47
- return BigInt::New(info.Env(), input);
48
- }
49
-
50
- Value TestWords(const CallbackInfo& info) {
51
- BigInt big = info[0].As<BigInt>();
52
-
53
- size_t expected_word_count = big.WordCount();
54
-
55
- int sign_bit;
56
- size_t word_count = 10;
57
- uint64_t words[10] = {0};
58
-
59
- big.ToWords(&sign_bit, &word_count, words);
60
-
61
- if (word_count != expected_word_count) {
62
- Error::New(info.Env(), "word count did not match").ThrowAsJavaScriptException();
63
- return BigInt();
64
- }
65
-
66
- return BigInt::New(info.Env(), sign_bit, word_count, words);
67
- }
68
-
69
- Value TestTooBigBigInt(const CallbackInfo& info) {
70
- int sign_bit = 0;
71
- size_t word_count = SIZE_MAX;
72
- uint64_t words[10] = {0};
73
-
74
- return BigInt::New(info.Env(), sign_bit, word_count, words);
75
- }
76
-
77
- } // anonymous namespace
78
-
79
- Object InitBigInt(Env env) {
80
- Object exports = Object::New(env);
81
- exports["IsLossless"] = Function::New(env, IsLossless);
82
- exports["IsBigInt"] = Function::New(env, IsBigInt);
83
- exports["TestInt64"] = Function::New(env, TestInt64);
84
- exports["TestUint64"] = Function::New(env, TestUint64);
85
- exports["TestWords"] = Function::New(env, TestWords);
86
- exports["TestTooBigBigInt"] = Function::New(env, TestTooBigBigInt);
87
-
88
- return exports;
89
- }
90
-
91
- #endif
@@ -1,53 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('assert');
4
-
5
- module.exports = require('./common').runTest(test);
6
-
7
- function test (binding) {
8
- const {
9
- TestInt64,
10
- TestUint64,
11
- TestWords,
12
- IsLossless,
13
- IsBigInt,
14
- TestTooBigBigInt
15
- } = binding.bigint;
16
-
17
- [
18
- 0n,
19
- -0n,
20
- 1n,
21
- -1n,
22
- 100n,
23
- 2121n,
24
- -1233n,
25
- 986583n,
26
- -976675n,
27
- 98765432213456789876546896323445679887645323232436587988766545658n,
28
- -4350987086545760976737453646576078997096876957864353245245769809n
29
- ].forEach((num) => {
30
- if (num > -(2n ** 63n) && num < 2n ** 63n) {
31
- assert.strictEqual(TestInt64(num), num);
32
- assert.strictEqual(IsLossless(num, true), true);
33
- } else {
34
- assert.strictEqual(IsLossless(num, true), false);
35
- }
36
-
37
- if (num >= 0 && num < 2n ** 64n) {
38
- assert.strictEqual(TestUint64(num), num);
39
- assert.strictEqual(IsLossless(num, false), true);
40
- } else {
41
- assert.strictEqual(IsLossless(num, false), false);
42
- }
43
-
44
- assert.strictEqual(IsBigInt(num), true);
45
-
46
- assert.strictEqual(num, TestWords(num));
47
- });
48
-
49
- assert.throws(TestTooBigBigInt, {
50
- name: /^(RangeError|Error)$/,
51
- message: /^(Maximum BigInt size exceeded|Invalid argument)$/
52
- });
53
- }
@@ -1,12 +0,0 @@
1
- #include "napi.h"
2
-
3
- using namespace Napi;
4
-
5
- Object InitError(Env env);
6
-
7
- Object Init(Env env, Object exports) {
8
- exports.Set("error", InitError(env));
9
- return exports;
10
- }
11
-
12
- NODE_API_MODULE(addon, Init)
@@ -1,173 +0,0 @@
1
- #include "napi.h"
2
-
3
- using namespace Napi;
4
-
5
- #if (NAPI_VERSION > 5)
6
- Object InitAddon(Env env);
7
- Object InitAddonData(Env env);
8
- #endif
9
- Object InitArrayBuffer(Env env);
10
- Object InitAsyncContext(Env env);
11
- #if (NAPI_VERSION > 3)
12
- Object InitAsyncProgressQueueWorker(Env env);
13
- Object InitAsyncProgressWorker(Env env);
14
- #endif
15
- Object InitAsyncWorker(Env env);
16
- Object InitPersistentAsyncWorker(Env env);
17
- Object InitBasicTypesArray(Env env);
18
- Object InitBasicTypesBoolean(Env env);
19
- Object InitBasicTypesNumber(Env env);
20
- Object InitBasicTypesValue(Env env);
21
- #if (NAPI_VERSION > 5)
22
- Object InitBigInt(Env env);
23
- #endif
24
- Object InitBuffer(Env env);
25
- #if (NAPI_VERSION > 2)
26
- Object InitCallbackScope(Env env);
27
- #endif
28
- #if (NAPI_VERSION > 4)
29
- Object InitDate(Env env);
30
- #endif
31
- Object InitDataView(Env env);
32
- Object InitDataViewReadWrite(Env env);
33
- Object InitEnvCleanup(Env env);
34
- Object InitErrorHandlingPrim(Env env);
35
- Object InitError(Env env);
36
- Object InitExternal(Env env);
37
- Object InitFunction(Env env);
38
- Object InitFunctionReference(Env env);
39
- Object InitHandleScope(Env env);
40
- Object InitMovableCallbacks(Env env);
41
- Object InitMemoryManagement(Env env);
42
- Object InitName(Env env);
43
- Object InitObject(Env env);
44
- #ifndef NODE_ADDON_API_DISABLE_DEPRECATED
45
- Object InitObjectDeprecated(Env env);
46
- #endif // !NODE_ADDON_API_DISABLE_DEPRECATED
47
- Object InitPromise(Env env);
48
- Object InitRunScript(Env env);
49
- #if (NAPI_VERSION > 3)
50
- Object InitThreadSafeFunctionCtx(Env env);
51
- Object InitThreadSafeFunctionExistingTsfn(Env env);
52
- Object InitThreadSafeFunctionPtr(Env env);
53
- Object InitThreadSafeFunctionSum(Env env);
54
- Object InitThreadSafeFunctionUnref(Env env);
55
- Object InitThreadSafeFunction(Env env);
56
- Object InitTypedThreadSafeFunctionCtx(Env env);
57
- Object InitTypedThreadSafeFunctionExistingTsfn(Env env);
58
- Object InitTypedThreadSafeFunctionPtr(Env env);
59
- Object InitTypedThreadSafeFunctionSum(Env env);
60
- Object InitTypedThreadSafeFunctionUnref(Env env);
61
- Object InitTypedThreadSafeFunction(Env env);
62
- #endif
63
- Object InitSymbol(Env env);
64
- Object InitTypedArray(Env env);
65
- Object InitGlobalObject(Env env);
66
- Object InitObjectWrap(Env env);
67
- Object InitObjectWrapConstructorException(Env env);
68
- Object InitObjectWrapFunction(Env env);
69
- Object InitObjectWrapRemoveWrap(Env env);
70
- Object InitObjectWrapMultipleInheritance(Env env);
71
- Object InitObjectReference(Env env);
72
- Object InitReference(Env env);
73
- Object InitVersionManagement(Env env);
74
- Object InitThunkingManual(Env env);
75
- #if (NAPI_VERSION > 7)
76
- Object InitObjectFreezeSeal(Env env);
77
- #endif
78
-
79
- #if defined(NODE_ADDON_API_ENABLE_MAYBE)
80
- Object InitMaybeCheck(Env env);
81
- #endif
82
-
83
- Object Init(Env env, Object exports) {
84
- #if (NAPI_VERSION > 5)
85
- exports.Set("addon", InitAddon(env));
86
- exports.Set("addon_data", InitAddonData(env));
87
- #endif
88
- exports.Set("arraybuffer", InitArrayBuffer(env));
89
- exports.Set("asynccontext", InitAsyncContext(env));
90
- #if (NAPI_VERSION > 3)
91
- exports.Set("asyncprogressqueueworker", InitAsyncProgressQueueWorker(env));
92
- exports.Set("asyncprogressworker", InitAsyncProgressWorker(env));
93
- #endif
94
- exports.Set("globalObject", InitGlobalObject(env));
95
- exports.Set("asyncworker", InitAsyncWorker(env));
96
- exports.Set("persistentasyncworker", InitPersistentAsyncWorker(env));
97
- exports.Set("basic_types_array", InitBasicTypesArray(env));
98
- exports.Set("basic_types_boolean", InitBasicTypesBoolean(env));
99
- exports.Set("basic_types_number", InitBasicTypesNumber(env));
100
- exports.Set("basic_types_value", InitBasicTypesValue(env));
101
- #if (NAPI_VERSION > 5)
102
- exports.Set("bigint", InitBigInt(env));
103
- #endif
104
- #if (NAPI_VERSION > 4)
105
- exports.Set("date", InitDate(env));
106
- #endif
107
- exports.Set("buffer", InitBuffer(env));
108
- #if (NAPI_VERSION > 2)
109
- exports.Set("callbackscope", InitCallbackScope(env));
110
- #endif
111
- exports.Set("dataview", InitDataView(env));
112
- exports.Set("dataview_read_write", InitDataView(env));
113
- exports.Set("dataview_read_write", InitDataViewReadWrite(env));
114
- #if (NAPI_VERSION > 2)
115
- exports.Set("env_cleanup", InitEnvCleanup(env));
116
- #endif
117
- exports.Set("error", InitError(env));
118
- exports.Set("errorHandlingPrim", InitErrorHandlingPrim(env));
119
- exports.Set("external", InitExternal(env));
120
- exports.Set("function", InitFunction(env));
121
- exports.Set("functionreference", InitFunctionReference(env));
122
- exports.Set("name", InitName(env));
123
- exports.Set("handlescope", InitHandleScope(env));
124
- exports.Set("movable_callbacks", InitMovableCallbacks(env));
125
- exports.Set("memory_management", InitMemoryManagement(env));
126
- exports.Set("object", InitObject(env));
127
- #ifndef NODE_ADDON_API_DISABLE_DEPRECATED
128
- exports.Set("object_deprecated", InitObjectDeprecated(env));
129
- #endif // !NODE_ADDON_API_DISABLE_DEPRECATED
130
- exports.Set("promise", InitPromise(env));
131
- exports.Set("run_script", InitRunScript(env));
132
- exports.Set("symbol", InitSymbol(env));
133
- #if (NAPI_VERSION > 3)
134
- exports.Set("threadsafe_function_ctx", InitThreadSafeFunctionCtx(env));
135
- exports.Set("threadsafe_function_existing_tsfn", InitThreadSafeFunctionExistingTsfn(env));
136
- exports.Set("threadsafe_function_ptr", InitThreadSafeFunctionPtr(env));
137
- exports.Set("threadsafe_function_sum", InitThreadSafeFunctionSum(env));
138
- exports.Set("threadsafe_function_unref", InitThreadSafeFunctionUnref(env));
139
- exports.Set("threadsafe_function", InitThreadSafeFunction(env));
140
- exports.Set("typed_threadsafe_function_ctx",
141
- InitTypedThreadSafeFunctionCtx(env));
142
- exports.Set("typed_threadsafe_function_existing_tsfn",
143
- InitTypedThreadSafeFunctionExistingTsfn(env));
144
- exports.Set("typed_threadsafe_function_ptr",
145
- InitTypedThreadSafeFunctionPtr(env));
146
- exports.Set("typed_threadsafe_function_sum",
147
- InitTypedThreadSafeFunctionSum(env));
148
- exports.Set("typed_threadsafe_function_unref",
149
- InitTypedThreadSafeFunctionUnref(env));
150
- exports.Set("typed_threadsafe_function", InitTypedThreadSafeFunction(env));
151
- #endif
152
- exports.Set("typedarray", InitTypedArray(env));
153
- exports.Set("objectwrap", InitObjectWrap(env));
154
- exports.Set("objectwrapConstructorException",
155
- InitObjectWrapConstructorException(env));
156
- exports.Set("objectwrap_function", InitObjectWrapFunction(env));
157
- exports.Set("objectwrap_removewrap", InitObjectWrapRemoveWrap(env));
158
- exports.Set("objectwrap_multiple_inheritance", InitObjectWrapMultipleInheritance(env));
159
- exports.Set("objectreference", InitObjectReference(env));
160
- exports.Set("reference", InitReference(env));
161
- exports.Set("version_management", InitVersionManagement(env));
162
- exports.Set("thunking_manual", InitThunkingManual(env));
163
- #if (NAPI_VERSION > 7)
164
- exports.Set("object_freeze_seal", InitObjectFreezeSeal(env));
165
- #endif
166
-
167
- #if defined(NODE_ADDON_API_ENABLE_MAYBE)
168
- exports.Set("maybe_check", InitMaybeCheck(env));
169
- #endif
170
- return exports;
171
- }
172
-
173
- NODE_API_MODULE(addon, Init)
@@ -1,124 +0,0 @@
1
- {
2
- 'target_defaults': {
3
- 'includes': ['../common.gypi'],
4
- 'include_dirs': ['./common'],
5
- 'variables': {
6
- 'build_sources': [
7
- 'addon.cc',
8
- 'addon_data.cc',
9
- 'array_buffer.cc',
10
- 'async_context.cc',
11
- 'async_progress_queue_worker.cc',
12
- 'async_progress_worker.cc',
13
- 'async_worker.cc',
14
- 'async_worker_persistent.cc',
15
- 'basic_types/array.cc',
16
- 'basic_types/boolean.cc',
17
- 'basic_types/number.cc',
18
- 'basic_types/value.cc',
19
- 'bigint.cc',
20
- 'date.cc',
21
- 'binding.cc',
22
- 'buffer.cc',
23
- 'callbackscope.cc',
24
- 'dataview/dataview.cc',
25
- 'dataview/dataview_read_write.cc',
26
- 'env_cleanup.cc',
27
- 'error.cc',
28
- 'error_handling_for_primitives.cc',
29
- 'external.cc',
30
- 'function.cc',
31
- 'function_reference.cc',
32
- 'handlescope.cc',
33
- 'maybe/check.cc',
34
- 'movable_callbacks.cc',
35
- 'memory_management.cc',
36
- 'name.cc',
37
- 'globalObject/global_object_delete_property.cc',
38
- 'globalObject/global_object_has_own_property.cc',
39
- 'globalObject/global_object_set_property.cc',
40
- 'globalObject/global_object_get_property.cc',
41
- 'globalObject/global_object.cc',
42
- 'object/delete_property.cc',
43
- 'object/finalizer.cc',
44
- 'object/get_property.cc',
45
- 'object/has_own_property.cc',
46
- 'object/has_property.cc',
47
- 'object/object.cc',
48
- 'object/object_freeze_seal.cc',
49
- 'object/set_property.cc',
50
- 'object/subscript_operator.cc',
51
- 'promise.cc',
52
- 'run_script.cc',
53
- "symbol.cc",
54
- 'threadsafe_function/threadsafe_function_ctx.cc',
55
- 'threadsafe_function/threadsafe_function_existing_tsfn.cc',
56
- 'threadsafe_function/threadsafe_function_ptr.cc',
57
- 'threadsafe_function/threadsafe_function_sum.cc',
58
- 'threadsafe_function/threadsafe_function_unref.cc',
59
- 'threadsafe_function/threadsafe_function.cc',
60
- 'typed_threadsafe_function/typed_threadsafe_function_ctx.cc',
61
- 'typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc',
62
- 'typed_threadsafe_function/typed_threadsafe_function_ptr.cc',
63
- 'typed_threadsafe_function/typed_threadsafe_function_sum.cc',
64
- 'typed_threadsafe_function/typed_threadsafe_function_unref.cc',
65
- 'typed_threadsafe_function/typed_threadsafe_function.cc',
66
- 'typedarray.cc',
67
- 'objectwrap.cc',
68
- 'objectwrap_constructor_exception.cc',
69
- 'objectwrap_function.cc',
70
- 'objectwrap_removewrap.cc',
71
- 'objectwrap_multiple_inheritance.cc',
72
- 'object_reference.cc',
73
- 'reference.cc',
74
- 'version_management.cc',
75
- 'thunking_manual.cc',
76
- ],
77
- 'build_sources_swallowexcept': [
78
- 'binding-swallowexcept.cc',
79
- 'error.cc',
80
- ],
81
- 'conditions': [
82
- ['disable_deprecated!="true"', {
83
- 'build_sources': ['object/object_deprecated.cc']
84
- }]
85
- ]
86
- },
87
- },
88
- 'targets': [
89
- {
90
- 'target_name': 'binding',
91
- 'includes': ['../except.gypi'],
92
- 'sources': ['>@(build_sources)']
93
- },
94
- {
95
- 'target_name': 'binding_noexcept',
96
- 'includes': ['../noexcept.gypi'],
97
- 'sources': ['>@(build_sources)']
98
- },
99
- {
100
- 'target_name': 'binding_noexcept_maybe',
101
- 'includes': ['../noexcept.gypi'],
102
- 'sources': ['>@(build_sources)'],
103
- 'defines': ['NODE_ADDON_API_ENABLE_MAYBE']
104
- },
105
- {
106
- 'target_name': 'binding_swallowexcept',
107
- 'includes': ['../except.gypi'],
108
- 'sources': [ '>@(build_sources_swallowexcept)'],
109
- 'defines': ['NODE_API_SWALLOW_UNTHROWABLE_EXCEPTIONS']
110
- },
111
- {
112
- 'target_name': 'binding_swallowexcept_noexcept',
113
- 'includes': ['../noexcept.gypi'],
114
- 'sources': ['>@(build_sources_swallowexcept)'],
115
- 'defines': ['NODE_API_SWALLOW_UNTHROWABLE_EXCEPTIONS']
116
- },
117
- {
118
- 'target_name': 'binding_custom_namespace',
119
- 'includes': ['../noexcept.gypi'],
120
- 'sources': ['>@(build_sources)'],
121
- 'defines': ['NAPI_CPP_CUSTOM_NAMESPACE=cstm']
122
- },
123
- ],
124
- }
@@ -1,183 +0,0 @@
1
- #include "napi.h"
2
-
3
- using namespace Napi;
4
-
5
- namespace {
6
-
7
- const size_t testLength = 4;
8
- uint16_t testData[testLength];
9
- int finalizeCount = 0;
10
-
11
- template <typename T>
12
- void InitData(T* data, size_t length) {
13
- for (size_t i = 0; i < length; i++) {
14
- data[i] = static_cast<T>(i);
15
- }
16
- }
17
-
18
- template <typename T>
19
- bool VerifyData(T* data, size_t length) {
20
- for (size_t i = 0; i < length; i++) {
21
- if (data[i] != static_cast<T>(i)) {
22
- return false;
23
- }
24
- }
25
- return true;
26
- }
27
-
28
- Value CreateBuffer(const CallbackInfo& info) {
29
- Buffer<uint16_t> buffer = Buffer<uint16_t>::New(info.Env(), testLength);
30
-
31
- if (buffer.Length() != testLength) {
32
- Error::New(info.Env(), "Incorrect buffer length.").ThrowAsJavaScriptException();
33
- return Value();
34
- }
35
-
36
- InitData(buffer.Data(), testLength);
37
- return buffer;
38
- }
39
-
40
- Value CreateExternalBuffer(const CallbackInfo& info) {
41
- finalizeCount = 0;
42
-
43
- Buffer<uint16_t> buffer = Buffer<uint16_t>::New(
44
- info.Env(),
45
- testData,
46
- testLength);
47
-
48
- if (buffer.Length() != testLength) {
49
- Error::New(info.Env(), "Incorrect buffer length.").ThrowAsJavaScriptException();
50
- return Value();
51
- }
52
-
53
- if (buffer.Data() != testData) {
54
- Error::New(info.Env(), "Incorrect buffer data.").ThrowAsJavaScriptException();
55
- return Value();
56
- }
57
-
58
- InitData(testData, testLength);
59
- return buffer;
60
- }
61
-
62
- Value CreateExternalBufferWithFinalize(const CallbackInfo& info) {
63
- finalizeCount = 0;
64
-
65
- uint16_t* data = new uint16_t[testLength];
66
-
67
- Buffer<uint16_t> buffer = Buffer<uint16_t>::New(
68
- info.Env(),
69
- data,
70
- testLength,
71
- [](Env /*env*/, uint16_t* finalizeData) {
72
- delete[] finalizeData;
73
- finalizeCount++;
74
- });
75
-
76
- if (buffer.Length() != testLength) {
77
- Error::New(info.Env(), "Incorrect buffer length.").ThrowAsJavaScriptException();
78
- return Value();
79
- }
80
-
81
- if (buffer.Data() != data) {
82
- Error::New(info.Env(), "Incorrect buffer data.").ThrowAsJavaScriptException();
83
- return Value();
84
- }
85
-
86
- InitData(data, testLength);
87
- return buffer;
88
- }
89
-
90
- Value CreateExternalBufferWithFinalizeHint(const CallbackInfo& info) {
91
- finalizeCount = 0;
92
-
93
- uint16_t* data = new uint16_t[testLength];
94
-
95
- char* hint = nullptr;
96
- Buffer<uint16_t> buffer = Buffer<uint16_t>::New(
97
- info.Env(),
98
- data,
99
- testLength,
100
- [](Env /*env*/, uint16_t* finalizeData, char* /*finalizeHint*/) {
101
- delete[] finalizeData;
102
- finalizeCount++;
103
- },
104
- hint);
105
-
106
- if (buffer.Length() != testLength) {
107
- Error::New(info.Env(), "Incorrect buffer length.").ThrowAsJavaScriptException();
108
- return Value();
109
- }
110
-
111
- if (buffer.Data() != data) {
112
- Error::New(info.Env(), "Incorrect buffer data.").ThrowAsJavaScriptException();
113
- return Value();
114
- }
115
-
116
- InitData(data, testLength);
117
- return buffer;
118
- }
119
-
120
- Value CreateBufferCopy(const CallbackInfo& info) {
121
- InitData(testData, testLength);
122
-
123
- Buffer<uint16_t> buffer = Buffer<uint16_t>::Copy(
124
- info.Env(), testData, testLength);
125
-
126
- if (buffer.Length() != testLength) {
127
- Error::New(info.Env(), "Incorrect buffer length.").ThrowAsJavaScriptException();
128
- return Value();
129
- }
130
-
131
- if (buffer.Data() == testData) {
132
- Error::New(info.Env(), "Copy should have different memory.").ThrowAsJavaScriptException();
133
- return Value();
134
- }
135
-
136
- if (!VerifyData(buffer.Data(), buffer.Length())) {
137
- Error::New(info.Env(), "Copy data is incorrect.").ThrowAsJavaScriptException();
138
- return Value();
139
- }
140
-
141
- return buffer;
142
- }
143
-
144
- void CheckBuffer(const CallbackInfo& info) {
145
- if (!info[0].IsBuffer()) {
146
- Error::New(info.Env(), "A buffer was expected.").ThrowAsJavaScriptException();
147
- return;
148
- }
149
-
150
- Buffer<uint16_t> buffer = info[0].As<Buffer<uint16_t>>();
151
-
152
- if (buffer.Length() != testLength) {
153
- Error::New(info.Env(), "Incorrect buffer length.").ThrowAsJavaScriptException();
154
- return;
155
- }
156
-
157
- if (!VerifyData(buffer.Data(), testLength)) {
158
- Error::New(info.Env(), "Incorrect buffer data.").ThrowAsJavaScriptException();
159
- return;
160
- }
161
- }
162
-
163
- Value GetFinalizeCount(const CallbackInfo& info) {
164
- return Number::New(info.Env(), finalizeCount);
165
- }
166
-
167
- } // end anonymous namespace
168
-
169
- Object InitBuffer(Env env) {
170
- Object exports = Object::New(env);
171
-
172
- exports["createBuffer"] = Function::New(env, CreateBuffer);
173
- exports["createExternalBuffer"] = Function::New(env, CreateExternalBuffer);
174
- exports["createExternalBufferWithFinalize"] =
175
- Function::New(env, CreateExternalBufferWithFinalize);
176
- exports["createExternalBufferWithFinalizeHint"] =
177
- Function::New(env, CreateExternalBufferWithFinalizeHint);
178
- exports["createBufferCopy"] = Function::New(env, CreateBufferCopy);
179
- exports["checkBuffer"] = Function::New(env, CheckBuffer);
180
- exports["getFinalizeCount"] = Function::New(env, GetFinalizeCount);
181
-
182
- return exports;
183
- }