koffi 0.9.33 → 0.9.34

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 (360) hide show
  1. package/README.md +65 -95
  2. package/package.json +1 -1
  3. package/src/call_arm32.cc +18 -8
  4. package/src/ffi.cc +1 -2
  5. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +0 -4
  6. package/vendor/node-addon-api/CONTRIBUTING.md +0 -93
  7. package/vendor/node-addon-api/appveyor.yml +0 -37
  8. package/vendor/node-addon-api/benchmark/README.md +0 -47
  9. package/vendor/node-addon-api/benchmark/binding.gyp +0 -25
  10. package/vendor/node-addon-api/benchmark/function_args.cc +0 -217
  11. package/vendor/node-addon-api/benchmark/function_args.js +0 -60
  12. package/vendor/node-addon-api/benchmark/index.js +0 -34
  13. package/vendor/node-addon-api/benchmark/property_descriptor.cc +0 -91
  14. package/vendor/node-addon-api/benchmark/property_descriptor.js +0 -37
  15. package/vendor/node-addon-api/doc/addon.md +0 -163
  16. package/vendor/node-addon-api/doc/array.md +0 -81
  17. package/vendor/node-addon-api/doc/array_buffer.md +0 -155
  18. package/vendor/node-addon-api/doc/async_context.md +0 -86
  19. package/vendor/node-addon-api/doc/async_operations.md +0 -31
  20. package/vendor/node-addon-api/doc/async_worker.md +0 -427
  21. package/vendor/node-addon-api/doc/async_worker_variants.md +0 -557
  22. package/vendor/node-addon-api/doc/bigint.md +0 -97
  23. package/vendor/node-addon-api/doc/boolean.md +0 -68
  24. package/vendor/node-addon-api/doc/buffer.md +0 -150
  25. package/vendor/node-addon-api/doc/callback_scope.md +0 -54
  26. package/vendor/node-addon-api/doc/callbackinfo.md +0 -97
  27. package/vendor/node-addon-api/doc/checker-tool.md +0 -32
  28. package/vendor/node-addon-api/doc/class_property_descriptor.md +0 -123
  29. package/vendor/node-addon-api/doc/cmake-js.md +0 -68
  30. package/vendor/node-addon-api/doc/conversion-tool.md +0 -28
  31. package/vendor/node-addon-api/doc/creating_a_release.md +0 -62
  32. package/vendor/node-addon-api/doc/dataview.md +0 -248
  33. package/vendor/node-addon-api/doc/date.md +0 -68
  34. package/vendor/node-addon-api/doc/env.md +0 -196
  35. package/vendor/node-addon-api/doc/error.md +0 -120
  36. package/vendor/node-addon-api/doc/error_handling.md +0 -254
  37. package/vendor/node-addon-api/doc/escapable_handle_scope.md +0 -80
  38. package/vendor/node-addon-api/doc/external.md +0 -63
  39. package/vendor/node-addon-api/doc/function.md +0 -402
  40. package/vendor/node-addon-api/doc/function_reference.md +0 -238
  41. package/vendor/node-addon-api/doc/generator.md +0 -13
  42. package/vendor/node-addon-api/doc/handle_scope.md +0 -63
  43. package/vendor/node-addon-api/doc/hierarchy.md +0 -91
  44. package/vendor/node-addon-api/doc/instance_wrap.md +0 -408
  45. package/vendor/node-addon-api/doc/maybe.md +0 -76
  46. package/vendor/node-addon-api/doc/memory_management.md +0 -27
  47. package/vendor/node-addon-api/doc/name.md +0 -29
  48. package/vendor/node-addon-api/doc/node-gyp.md +0 -82
  49. package/vendor/node-addon-api/doc/number.md +0 -163
  50. package/vendor/node-addon-api/doc/object.md +0 -411
  51. package/vendor/node-addon-api/doc/object_lifetime_management.md +0 -83
  52. package/vendor/node-addon-api/doc/object_reference.md +0 -117
  53. package/vendor/node-addon-api/doc/object_wrap.md +0 -588
  54. package/vendor/node-addon-api/doc/prebuild_tools.md +0 -16
  55. package/vendor/node-addon-api/doc/promises.md +0 -79
  56. package/vendor/node-addon-api/doc/property_descriptor.md +0 -286
  57. package/vendor/node-addon-api/doc/propertylvalue.md +0 -50
  58. package/vendor/node-addon-api/doc/range_error.md +0 -59
  59. package/vendor/node-addon-api/doc/reference.md +0 -113
  60. package/vendor/node-addon-api/doc/setup.md +0 -110
  61. package/vendor/node-addon-api/doc/string.md +0 -93
  62. package/vendor/node-addon-api/doc/symbol.md +0 -61
  63. package/vendor/node-addon-api/doc/threadsafe.md +0 -121
  64. package/vendor/node-addon-api/doc/threadsafe_function.md +0 -290
  65. package/vendor/node-addon-api/doc/type_error.md +0 -59
  66. package/vendor/node-addon-api/doc/typed_array.md +0 -78
  67. package/vendor/node-addon-api/doc/typed_array_of.md +0 -137
  68. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +0 -306
  69. package/vendor/node-addon-api/doc/value.md +0 -340
  70. package/vendor/node-addon-api/doc/version_management.md +0 -43
  71. package/vendor/node-addon-api/package.json +0 -415
  72. package/vendor/node-addon-api/test/README.md +0 -91
  73. package/vendor/node-addon-api/test/addon.cc +0 -36
  74. package/vendor/node-addon-api/test/addon.js +0 -11
  75. package/vendor/node-addon-api/test/addon_build/index.js +0 -49
  76. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +0 -17
  77. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +0 -62
  78. package/vendor/node-addon-api/test/addon_build/tpl/index.js +0 -9
  79. package/vendor/node-addon-api/test/addon_build/tpl/package.json +0 -11
  80. package/vendor/node-addon-api/test/addon_data.cc +0 -99
  81. package/vendor/node-addon-api/test/addon_data.js +0 -46
  82. package/vendor/node-addon-api/test/array_buffer.cc +0 -243
  83. package/vendor/node-addon-api/test/array_buffer.js +0 -69
  84. package/vendor/node-addon-api/test/async_context.cc +0 -36
  85. package/vendor/node-addon-api/test/async_context.js +0 -122
  86. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +0 -83
  87. package/vendor/node-addon-api/test/async_progress_queue_worker.js +0 -46
  88. package/vendor/node-addon-api/test/async_progress_worker.cc +0 -134
  89. package/vendor/node-addon-api/test/async_progress_worker.js +0 -61
  90. package/vendor/node-addon-api/test/async_worker.cc +0 -106
  91. package/vendor/node-addon-api/test/async_worker.js +0 -179
  92. package/vendor/node-addon-api/test/async_worker_nocallback.js +0 -13
  93. package/vendor/node-addon-api/test/async_worker_persistent.cc +0 -63
  94. package/vendor/node-addon-api/test/async_worker_persistent.js +0 -24
  95. package/vendor/node-addon-api/test/basic_types/array.cc +0 -40
  96. package/vendor/node-addon-api/test/basic_types/array.js +0 -35
  97. package/vendor/node-addon-api/test/basic_types/boolean.cc +0 -38
  98. package/vendor/node-addon-api/test/basic_types/boolean.js +0 -35
  99. package/vendor/node-addon-api/test/basic_types/number.cc +0 -99
  100. package/vendor/node-addon-api/test/basic_types/number.js +0 -114
  101. package/vendor/node-addon-api/test/basic_types/value.cc +0 -120
  102. package/vendor/node-addon-api/test/basic_types/value.js +0 -133
  103. package/vendor/node-addon-api/test/bigint.cc +0 -91
  104. package/vendor/node-addon-api/test/bigint.js +0 -53
  105. package/vendor/node-addon-api/test/binding-swallowexcept.cc +0 -12
  106. package/vendor/node-addon-api/test/binding.cc +0 -173
  107. package/vendor/node-addon-api/test/binding.gyp +0 -124
  108. package/vendor/node-addon-api/test/buffer.cc +0 -183
  109. package/vendor/node-addon-api/test/buffer.js +0 -69
  110. package/vendor/node-addon-api/test/callbackscope.cc +0 -22
  111. package/vendor/node-addon-api/test/callbackscope.js +0 -49
  112. package/vendor/node-addon-api/test/common/index.js +0 -114
  113. package/vendor/node-addon-api/test/common/test_helper.h +0 -71
  114. package/vendor/node-addon-api/test/dataview/dataview.cc +0 -48
  115. package/vendor/node-addon-api/test/dataview/dataview.js +0 -35
  116. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +0 -115
  117. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +0 -90
  118. package/vendor/node-addon-api/test/date.cc +0 -44
  119. package/vendor/node-addon-api/test/date.js +0 -18
  120. package/vendor/node-addon-api/test/env_cleanup.cc +0 -88
  121. package/vendor/node-addon-api/test/env_cleanup.js +0 -56
  122. package/vendor/node-addon-api/test/error.cc +0 -287
  123. package/vendor/node-addon-api/test/error.js +0 -81
  124. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +0 -13
  125. package/vendor/node-addon-api/test/error_handling_for_primitives.js +0 -29
  126. package/vendor/node-addon-api/test/error_terminating_environment.js +0 -95
  127. package/vendor/node-addon-api/test/external.cc +0 -81
  128. package/vendor/node-addon-api/test/external.js +0 -88
  129. package/vendor/node-addon-api/test/function.cc +0 -324
  130. package/vendor/node-addon-api/test/function.js +0 -133
  131. package/vendor/node-addon-api/test/function_reference.cc +0 -202
  132. package/vendor/node-addon-api/test/function_reference.js +0 -157
  133. package/vendor/node-addon-api/test/globalObject/global_object.cc +0 -61
  134. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +0 -31
  135. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +0 -61
  136. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +0 -40
  137. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +0 -57
  138. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +0 -28
  139. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +0 -48
  140. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +0 -31
  141. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +0 -58
  142. package/vendor/node-addon-api/test/handlescope.cc +0 -60
  143. package/vendor/node-addon-api/test/handlescope.js +0 -14
  144. package/vendor/node-addon-api/test/index.js +0 -159
  145. package/vendor/node-addon-api/test/maybe/check.cc +0 -23
  146. package/vendor/node-addon-api/test/maybe/index.js +0 -38
  147. package/vendor/node-addon-api/test/memory_management.cc +0 -17
  148. package/vendor/node-addon-api/test/memory_management.js +0 -9
  149. package/vendor/node-addon-api/test/movable_callbacks.cc +0 -23
  150. package/vendor/node-addon-api/test/movable_callbacks.js +0 -21
  151. package/vendor/node-addon-api/test/name.cc +0 -108
  152. package/vendor/node-addon-api/test/name.js +0 -59
  153. package/vendor/node-addon-api/test/napi_child.js +0 -14
  154. package/vendor/node-addon-api/test/object/delete_property.cc +0 -38
  155. package/vendor/node-addon-api/test/object/delete_property.js +0 -41
  156. package/vendor/node-addon-api/test/object/finalizer.cc +0 -29
  157. package/vendor/node-addon-api/test/object/finalizer.js +0 -28
  158. package/vendor/node-addon-api/test/object/get_property.cc +0 -34
  159. package/vendor/node-addon-api/test/object/get_property.js +0 -40
  160. package/vendor/node-addon-api/test/object/has_own_property.cc +0 -34
  161. package/vendor/node-addon-api/test/object/has_own_property.js +0 -34
  162. package/vendor/node-addon-api/test/object/has_property.cc +0 -38
  163. package/vendor/node-addon-api/test/object/has_property.js +0 -37
  164. package/vendor/node-addon-api/test/object/object.cc +0 -350
  165. package/vendor/node-addon-api/test/object/object.js +0 -217
  166. package/vendor/node-addon-api/test/object/object_deprecated.cc +0 -66
  167. package/vendor/node-addon-api/test/object/object_deprecated.js +0 -47
  168. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +0 -25
  169. package/vendor/node-addon-api/test/object/object_freeze_seal.js +0 -61
  170. package/vendor/node-addon-api/test/object/set_property.cc +0 -45
  171. package/vendor/node-addon-api/test/object/set_property.js +0 -30
  172. package/vendor/node-addon-api/test/object/subscript_operator.cc +0 -58
  173. package/vendor/node-addon-api/test/object/subscript_operator.js +0 -17
  174. package/vendor/node-addon-api/test/object_reference.cc +0 -219
  175. package/vendor/node-addon-api/test/object_reference.js +0 -259
  176. package/vendor/node-addon-api/test/objectwrap.cc +0 -268
  177. package/vendor/node-addon-api/test/objectwrap.js +0 -284
  178. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +0 -26
  179. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +0 -18
  180. package/vendor/node-addon-api/test/objectwrap_function.cc +0 -45
  181. package/vendor/node-addon-api/test/objectwrap_function.js +0 -22
  182. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +0 -30
  183. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +0 -13
  184. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +0 -45
  185. package/vendor/node-addon-api/test/objectwrap_removewrap.js +0 -40
  186. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +0 -19
  187. package/vendor/node-addon-api/test/promise.cc +0 -29
  188. package/vendor/node-addon-api/test/promise.js +0 -18
  189. package/vendor/node-addon-api/test/reference.cc +0 -24
  190. package/vendor/node-addon-api/test/reference.js +0 -14
  191. package/vendor/node-addon-api/test/run_script.cc +0 -56
  192. package/vendor/node-addon-api/test/run_script.js +0 -45
  193. package/vendor/node-addon-api/test/symbol.cc +0 -79
  194. package/vendor/node-addon-api/test/symbol.js +0 -73
  195. package/vendor/node-addon-api/test/testUtil.js +0 -54
  196. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +0 -195
  197. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +0 -188
  198. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +0 -63
  199. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +0 -12
  200. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +0 -115
  201. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +0 -14
  202. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +0 -26
  203. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +0 -7
  204. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +0 -225
  205. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +0 -59
  206. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +0 -42
  207. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +0 -53
  208. package/vendor/node-addon-api/test/thunking_manual.cc +0 -140
  209. package/vendor/node-addon-api/test/thunking_manual.js +0 -17
  210. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +0 -215
  211. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +0 -188
  212. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +0 -68
  213. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +0 -12
  214. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +0 -127
  215. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +0 -14
  216. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +0 -28
  217. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +0 -7
  218. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +0 -237
  219. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +0 -59
  220. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +0 -53
  221. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +0 -53
  222. package/vendor/node-addon-api/test/typedarray-bigint.js +0 -58
  223. package/vendor/node-addon-api/test/typedarray.cc +0 -216
  224. package/vendor/node-addon-api/test/typedarray.js +0 -69
  225. package/vendor/node-addon-api/test/version_management.cc +0 -27
  226. package/vendor/node-addon-api/test/version_management.js +0 -31
  227. package/vendor/node-addon-api/unit-test/README.md +0 -28
  228. package/vendor/node-addon-api/unit-test/binding-file-template.js +0 -39
  229. package/vendor/node-addon-api/unit-test/binding.gyp +0 -72
  230. package/vendor/node-addon-api/unit-test/exceptions.js +0 -32
  231. package/vendor/node-addon-api/unit-test/generate-binding-cc.js +0 -61
  232. package/vendor/node-addon-api/unit-test/injectTestParams.js +0 -101
  233. package/vendor/node-addon-api/unit-test/listOfTestModules.js +0 -88
  234. package/vendor/node-addon-api/unit-test/matchModules.js +0 -65
  235. package/vendor/node-addon-api/unit-test/setup.js +0 -13
  236. package/vendor/node-addon-api/unit-test/spawnTask.js +0 -26
  237. package/vendor/node-addon-api/unit-test/test.js +0 -30
  238. package/vendor/raylib/projects/VS2019/examples/audio_module_playing.vcxproj +0 -387
  239. package/vendor/raylib/projects/VS2019/examples/audio_multichannel_sound.vcxproj +0 -387
  240. package/vendor/raylib/projects/VS2019/examples/audio_music_stream.vcxproj +0 -387
  241. package/vendor/raylib/projects/VS2019/examples/audio_raw_stream.vcxproj +0 -387
  242. package/vendor/raylib/projects/VS2019/examples/audio_sound_loading.vcxproj +0 -387
  243. package/vendor/raylib/projects/VS2019/examples/core_2d_camera.vcxproj +0 -387
  244. package/vendor/raylib/projects/VS2019/examples/core_2d_camera_platformer.vcxproj +0 -387
  245. package/vendor/raylib/projects/VS2019/examples/core_3d_camera_first_person.vcxproj +0 -387
  246. package/vendor/raylib/projects/VS2019/examples/core_3d_camera_free.vcxproj +0 -387
  247. package/vendor/raylib/projects/VS2019/examples/core_3d_camera_mode.vcxproj +0 -387
  248. package/vendor/raylib/projects/VS2019/examples/core_3d_picking.vcxproj +0 -387
  249. package/vendor/raylib/projects/VS2019/examples/core_basic_window.vcxproj +0 -387
  250. package/vendor/raylib/projects/VS2019/examples/core_custom_logging.vcxproj +0 -387
  251. package/vendor/raylib/projects/VS2019/examples/core_drop_files.vcxproj +0 -387
  252. package/vendor/raylib/projects/VS2019/examples/core_input_gamepad.vcxproj +0 -387
  253. package/vendor/raylib/projects/VS2019/examples/core_input_gestures.vcxproj +0 -387
  254. package/vendor/raylib/projects/VS2019/examples/core_input_keys.vcxproj +0 -387
  255. package/vendor/raylib/projects/VS2019/examples/core_input_mouse.vcxproj +0 -387
  256. package/vendor/raylib/projects/VS2019/examples/core_input_mouse_wheel.vcxproj +0 -387
  257. package/vendor/raylib/projects/VS2019/examples/core_input_multitouch.vcxproj +0 -387
  258. package/vendor/raylib/projects/VS2019/examples/core_loading_thread.vcxproj +0 -387
  259. package/vendor/raylib/projects/VS2019/examples/core_quat_conversion.vcxproj +0 -387
  260. package/vendor/raylib/projects/VS2019/examples/core_random_values.vcxproj +0 -387
  261. package/vendor/raylib/projects/VS2019/examples/core_scissor_test.vcxproj +0 -387
  262. package/vendor/raylib/projects/VS2019/examples/core_split_screen.vcxproj +0 -387
  263. package/vendor/raylib/projects/VS2019/examples/core_storage_values.vcxproj +0 -387
  264. package/vendor/raylib/projects/VS2019/examples/core_vr_simulator.vcxproj +0 -387
  265. package/vendor/raylib/projects/VS2019/examples/core_window_flags.vcxproj +0 -387
  266. package/vendor/raylib/projects/VS2019/examples/core_window_letterbox.vcxproj +0 -387
  267. package/vendor/raylib/projects/VS2019/examples/core_world_screen.vcxproj +0 -387
  268. package/vendor/raylib/projects/VS2019/examples/easings_testbed.vcxproj +0 -387
  269. package/vendor/raylib/projects/VS2019/examples/embedded_files_loading.vcxproj +0 -387
  270. package/vendor/raylib/projects/VS2019/examples/models_animation.vcxproj +0 -387
  271. package/vendor/raylib/projects/VS2019/examples/models_billboard.vcxproj +0 -387
  272. package/vendor/raylib/projects/VS2019/examples/models_box_collisions.vcxproj +0 -387
  273. package/vendor/raylib/projects/VS2019/examples/models_cubicmap.vcxproj +0 -387
  274. package/vendor/raylib/projects/VS2019/examples/models_first_person_maze.vcxproj +0 -387
  275. package/vendor/raylib/projects/VS2019/examples/models_geometric_shapes.vcxproj +0 -387
  276. package/vendor/raylib/projects/VS2019/examples/models_heightmap.vcxproj +0 -387
  277. package/vendor/raylib/projects/VS2019/examples/models_loading.vcxproj +0 -387
  278. package/vendor/raylib/projects/VS2019/examples/models_loading_gltf.vcxproj +0 -387
  279. package/vendor/raylib/projects/VS2019/examples/models_loading_vox.vcxproj +0 -387
  280. package/vendor/raylib/projects/VS2019/examples/models_mesh_generation.vcxproj +0 -387
  281. package/vendor/raylib/projects/VS2019/examples/models_mesh_picking.vcxproj +0 -387
  282. package/vendor/raylib/projects/VS2019/examples/models_orthographic_projection.vcxproj +0 -387
  283. package/vendor/raylib/projects/VS2019/examples/models_rlgl_solar_system.vcxproj +0 -387
  284. package/vendor/raylib/projects/VS2019/examples/models_skybox.vcxproj +0 -387
  285. package/vendor/raylib/projects/VS2019/examples/models_waving_cubes.vcxproj +0 -387
  286. package/vendor/raylib/projects/VS2019/examples/models_yaw_pitch_roll.vcxproj +0 -387
  287. package/vendor/raylib/projects/VS2019/examples/physics_demo.vcxproj +0 -387
  288. package/vendor/raylib/projects/VS2019/examples/physics_friction.vcxproj +0 -387
  289. package/vendor/raylib/projects/VS2019/examples/physics_movement.vcxproj +0 -387
  290. package/vendor/raylib/projects/VS2019/examples/physics_restitution.vcxproj +0 -387
  291. package/vendor/raylib/projects/VS2019/examples/physics_shatter.vcxproj +0 -387
  292. package/vendor/raylib/projects/VS2019/examples/raudio_standalone.vcxproj +0 -387
  293. package/vendor/raylib/projects/VS2019/examples/rlgl_standalone.vcxproj +0 -391
  294. package/vendor/raylib/projects/VS2019/examples/shaders_basic_lighting.vcxproj +0 -387
  295. package/vendor/raylib/projects/VS2019/examples/shaders_custom_uniform.vcxproj +0 -387
  296. package/vendor/raylib/projects/VS2019/examples/shaders_eratosthenes.vcxproj +0 -387
  297. package/vendor/raylib/projects/VS2019/examples/shaders_fog.vcxproj +0 -387
  298. package/vendor/raylib/projects/VS2019/examples/shaders_hot_reloading.vcxproj +0 -387
  299. package/vendor/raylib/projects/VS2019/examples/shaders_julia_set.vcxproj +0 -387
  300. package/vendor/raylib/projects/VS2019/examples/shaders_mesh_instancing.vcxproj +0 -387
  301. package/vendor/raylib/projects/VS2019/examples/shaders_model_shader.vcxproj +0 -387
  302. package/vendor/raylib/projects/VS2019/examples/shaders_multi_sample2d.vcxproj +0 -387
  303. package/vendor/raylib/projects/VS2019/examples/shaders_palette_switch.vcxproj +0 -387
  304. package/vendor/raylib/projects/VS2019/examples/shaders_postprocessing.vcxproj +0 -387
  305. package/vendor/raylib/projects/VS2019/examples/shaders_raymarching.vcxproj +0 -387
  306. package/vendor/raylib/projects/VS2019/examples/shaders_shapes_textures.vcxproj +0 -387
  307. package/vendor/raylib/projects/VS2019/examples/shaders_simple_mask.vcxproj +0 -387
  308. package/vendor/raylib/projects/VS2019/examples/shaders_spotlight.vcxproj +0 -387
  309. package/vendor/raylib/projects/VS2019/examples/shaders_texture_drawing.vcxproj +0 -387
  310. package/vendor/raylib/projects/VS2019/examples/shaders_texture_waves.vcxproj +0 -387
  311. package/vendor/raylib/projects/VS2019/examples/shapes_basic_shapes.vcxproj +0 -387
  312. package/vendor/raylib/projects/VS2019/examples/shapes_bouncing_ball.vcxproj +0 -387
  313. package/vendor/raylib/projects/VS2019/examples/shapes_collision_area.vcxproj +0 -387
  314. package/vendor/raylib/projects/VS2019/examples/shapes_colors_palette.vcxproj +0 -387
  315. package/vendor/raylib/projects/VS2019/examples/shapes_draw_circle_sector.vcxproj +0 -387
  316. package/vendor/raylib/projects/VS2019/examples/shapes_draw_rectangle_rounded.vcxproj +0 -387
  317. package/vendor/raylib/projects/VS2019/examples/shapes_draw_ring.vcxproj +0 -387
  318. package/vendor/raylib/projects/VS2019/examples/shapes_easings_ball_anim.vcxproj +0 -387
  319. package/vendor/raylib/projects/VS2019/examples/shapes_easings_box_anim.vcxproj +0 -387
  320. package/vendor/raylib/projects/VS2019/examples/shapes_easings_rectangle_array.vcxproj +0 -387
  321. package/vendor/raylib/projects/VS2019/examples/shapes_following_eyes.vcxproj +0 -387
  322. package/vendor/raylib/projects/VS2019/examples/shapes_lines_bezier.vcxproj +0 -387
  323. package/vendor/raylib/projects/VS2019/examples/shapes_logo_raylib.vcxproj +0 -387
  324. package/vendor/raylib/projects/VS2019/examples/shapes_logo_raylib_anim.vcxproj +0 -387
  325. package/vendor/raylib/projects/VS2019/examples/shapes_rectangle_scaling.vcxproj +0 -387
  326. package/vendor/raylib/projects/VS2019/examples/text_font_filters.vcxproj +0 -387
  327. package/vendor/raylib/projects/VS2019/examples/text_font_loading.vcxproj +0 -387
  328. package/vendor/raylib/projects/VS2019/examples/text_font_sdf.vcxproj +0 -387
  329. package/vendor/raylib/projects/VS2019/examples/text_font_spritefont.vcxproj +0 -387
  330. package/vendor/raylib/projects/VS2019/examples/text_format_text.vcxproj +0 -387
  331. package/vendor/raylib/projects/VS2019/examples/text_input_box.vcxproj +0 -387
  332. package/vendor/raylib/projects/VS2019/examples/text_raylib_fonts.vcxproj +0 -387
  333. package/vendor/raylib/projects/VS2019/examples/text_rectangle_bounds.vcxproj +0 -387
  334. package/vendor/raylib/projects/VS2019/examples/text_unicode.vcxproj +0 -387
  335. package/vendor/raylib/projects/VS2019/examples/text_writing_anim.vcxproj +0 -387
  336. package/vendor/raylib/projects/VS2019/examples/textures_background_scrolling.vcxproj +0 -387
  337. package/vendor/raylib/projects/VS2019/examples/textures_blend_modes.vcxproj +0 -387
  338. package/vendor/raylib/projects/VS2019/examples/textures_bunnymark.vcxproj +0 -387
  339. package/vendor/raylib/projects/VS2019/examples/textures_draw_tiled.vcxproj +0 -387
  340. package/vendor/raylib/projects/VS2019/examples/textures_image_drawing.vcxproj +0 -387
  341. package/vendor/raylib/projects/VS2019/examples/textures_image_generation.vcxproj +0 -387
  342. package/vendor/raylib/projects/VS2019/examples/textures_image_loading.vcxproj +0 -387
  343. package/vendor/raylib/projects/VS2019/examples/textures_image_processing.vcxproj +0 -387
  344. package/vendor/raylib/projects/VS2019/examples/textures_image_text.vcxproj +0 -387
  345. package/vendor/raylib/projects/VS2019/examples/textures_logo_raylib.vcxproj +0 -387
  346. package/vendor/raylib/projects/VS2019/examples/textures_mouse_painting.vcxproj +0 -387
  347. package/vendor/raylib/projects/VS2019/examples/textures_npatch_drawing.vcxproj +0 -387
  348. package/vendor/raylib/projects/VS2019/examples/textures_particles_blending.vcxproj +0 -387
  349. package/vendor/raylib/projects/VS2019/examples/textures_raw_data.vcxproj +0 -387
  350. package/vendor/raylib/projects/VS2019/examples/textures_rectangle.vcxproj +0 -387
  351. package/vendor/raylib/projects/VS2019/examples/textures_sprite_button.vcxproj +0 -387
  352. package/vendor/raylib/projects/VS2019/examples/textures_sprite_explosion.vcxproj +0 -387
  353. package/vendor/raylib/projects/VS2019/examples/textures_srcrec_dstrec.vcxproj +0 -387
  354. package/vendor/raylib/projects/VS2019/examples/textures_to_image.vcxproj +0 -387
  355. package/vendor/raylib/projects/VS2019/raylib/raylib.vcxproj +0 -341
  356. package/vendor/raylib/projects/VS2019/raylib.sln +0 -2274
  357. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj +0 -226
  358. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.filters +0 -10
  359. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.user +0 -4
  360. package/vendor/raylib/projects/VS2019-Android/raylib_android.sln +0 -75
@@ -1,217 +0,0 @@
1
- #include "napi.h"
2
-
3
- static napi_value NoArgFunction_Core(napi_env env, napi_callback_info info) {
4
- (void) env;
5
- (void) info;
6
- return nullptr;
7
- }
8
-
9
- static napi_value OneArgFunction_Core(napi_env env, napi_callback_info info) {
10
- size_t argc = 1;
11
- napi_value argv;
12
- if (napi_get_cb_info(env, info, &argc, &argv, nullptr, nullptr) != napi_ok) {
13
- return nullptr;
14
- }
15
- (void) argv;
16
- return nullptr;
17
- }
18
-
19
- static napi_value TwoArgFunction_Core(napi_env env, napi_callback_info info) {
20
- size_t argc = 2;
21
- napi_value argv[2];
22
- if (napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr) != napi_ok) {
23
- return nullptr;
24
- }
25
- (void) argv[0];
26
- (void) argv[1];
27
- return nullptr;
28
- }
29
-
30
- static napi_value ThreeArgFunction_Core(napi_env env, napi_callback_info info) {
31
- size_t argc = 3;
32
- napi_value argv[3];
33
- if (napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr) != napi_ok) {
34
- return nullptr;
35
- }
36
- (void) argv[0];
37
- (void) argv[1];
38
- (void) argv[2];
39
- return nullptr;
40
- }
41
-
42
- static napi_value FourArgFunction_Core(napi_env env, napi_callback_info info) {
43
- size_t argc = 4;
44
- napi_value argv[4];
45
- if (napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr) != napi_ok) {
46
- return nullptr;
47
- }
48
- (void) argv[0];
49
- (void) argv[1];
50
- (void) argv[2];
51
- (void) argv[3];
52
- return nullptr;
53
- }
54
-
55
- static void NoArgFunction(const Napi::CallbackInfo& info) {
56
- (void) info;
57
- }
58
-
59
- static void OneArgFunction(const Napi::CallbackInfo& info) {
60
- Napi::Value argv0 = info[0]; (void) argv0;
61
- }
62
-
63
- static void TwoArgFunction(const Napi::CallbackInfo& info) {
64
- Napi::Value argv0 = info[0]; (void) argv0;
65
- Napi::Value argv1 = info[1]; (void) argv1;
66
- }
67
-
68
- static void ThreeArgFunction(const Napi::CallbackInfo& info) {
69
- Napi::Value argv0 = info[0]; (void) argv0;
70
- Napi::Value argv1 = info[1]; (void) argv1;
71
- Napi::Value argv2 = info[2]; (void) argv2;
72
- }
73
-
74
- static void FourArgFunction(const Napi::CallbackInfo& info) {
75
- Napi::Value argv0 = info[0]; (void) argv0;
76
- Napi::Value argv1 = info[1]; (void) argv1;
77
- Napi::Value argv2 = info[2]; (void) argv2;
78
- Napi::Value argv3 = info[3]; (void) argv3;
79
- }
80
-
81
- #if NAPI_VERSION > 5
82
- class FunctionArgsBenchmark : public Napi::Addon<FunctionArgsBenchmark> {
83
- public:
84
- FunctionArgsBenchmark(Napi::Env env, Napi::Object exports) {
85
- DefineAddon(exports, {
86
- InstanceValue("addon", DefineProperties(Napi::Object::New(env), {
87
- InstanceMethod("noArgFunction", &FunctionArgsBenchmark::NoArgFunction),
88
- InstanceMethod("oneArgFunction",
89
- &FunctionArgsBenchmark::OneArgFunction),
90
- InstanceMethod("twoArgFunction",
91
- &FunctionArgsBenchmark::TwoArgFunction),
92
- InstanceMethod("threeArgFunction",
93
- &FunctionArgsBenchmark::ThreeArgFunction),
94
- InstanceMethod("fourArgFunction",
95
- &FunctionArgsBenchmark::FourArgFunction),
96
- }), napi_enumerable),
97
- InstanceValue("addon_templated",
98
- DefineProperties(Napi::Object::New(env), {
99
- InstanceMethod<&FunctionArgsBenchmark::NoArgFunction>(
100
- "noArgFunction"),
101
- InstanceMethod<&FunctionArgsBenchmark::OneArgFunction>(
102
- "oneArgFunction"),
103
- InstanceMethod<&FunctionArgsBenchmark::TwoArgFunction>(
104
- "twoArgFunction"),
105
- InstanceMethod<&FunctionArgsBenchmark::ThreeArgFunction>(
106
- "threeArgFunction"),
107
- InstanceMethod<&FunctionArgsBenchmark::FourArgFunction>(
108
- "fourArgFunction"),
109
- }), napi_enumerable),
110
- });
111
- }
112
- private:
113
- void NoArgFunction(const Napi::CallbackInfo& info) {
114
- (void) info;
115
- }
116
-
117
- void OneArgFunction(const Napi::CallbackInfo& info) {
118
- Napi::Value argv0 = info[0]; (void) argv0;
119
- }
120
-
121
- void TwoArgFunction(const Napi::CallbackInfo& info) {
122
- Napi::Value argv0 = info[0]; (void) argv0;
123
- Napi::Value argv1 = info[1]; (void) argv1;
124
- }
125
-
126
- void ThreeArgFunction(const Napi::CallbackInfo& info) {
127
- Napi::Value argv0 = info[0]; (void) argv0;
128
- Napi::Value argv1 = info[1]; (void) argv1;
129
- Napi::Value argv2 = info[2]; (void) argv2;
130
- }
131
-
132
- void FourArgFunction(const Napi::CallbackInfo& info) {
133
- Napi::Value argv0 = info[0]; (void) argv0;
134
- Napi::Value argv1 = info[1]; (void) argv1;
135
- Napi::Value argv2 = info[2]; (void) argv2;
136
- Napi::Value argv3 = info[3]; (void) argv3;
137
- }
138
- };
139
- #endif // NAPI_VERSION > 5
140
-
141
- static Napi::Object Init(Napi::Env env, Napi::Object exports) {
142
- napi_value no_arg_function, one_arg_function, two_arg_function,
143
- three_arg_function, four_arg_function;
144
- napi_status status;
145
-
146
- status = napi_create_function(env,
147
- "noArgFunction",
148
- NAPI_AUTO_LENGTH,
149
- NoArgFunction_Core,
150
- nullptr,
151
- &no_arg_function);
152
- NAPI_THROW_IF_FAILED(env, status, Napi::Object());
153
-
154
- status = napi_create_function(env,
155
- "oneArgFunction",
156
- NAPI_AUTO_LENGTH,
157
- OneArgFunction_Core,
158
- nullptr,
159
- &one_arg_function);
160
- NAPI_THROW_IF_FAILED(env, status, Napi::Object());
161
-
162
- status = napi_create_function(env,
163
- "twoArgFunction",
164
- NAPI_AUTO_LENGTH,
165
- TwoArgFunction_Core,
166
- nullptr,
167
- &two_arg_function);
168
- NAPI_THROW_IF_FAILED(env, status, Napi::Object());
169
-
170
- status = napi_create_function(env,
171
- "threeArgFunction",
172
- NAPI_AUTO_LENGTH,
173
- ThreeArgFunction_Core,
174
- nullptr,
175
- &three_arg_function);
176
- NAPI_THROW_IF_FAILED(env, status, Napi::Object());
177
-
178
- status = napi_create_function(env,
179
- "fourArgFunction",
180
- NAPI_AUTO_LENGTH,
181
- FourArgFunction_Core,
182
- nullptr,
183
- &four_arg_function);
184
- NAPI_THROW_IF_FAILED(env, status, Napi::Object());
185
-
186
- Napi::Object core = Napi::Object::New(env);
187
- core["noArgFunction"] = Napi::Value(env, no_arg_function);
188
- core["oneArgFunction"] = Napi::Value(env, one_arg_function);
189
- core["twoArgFunction"] = Napi::Value(env, two_arg_function);
190
- core["threeArgFunction"] = Napi::Value(env, three_arg_function);
191
- core["fourArgFunction"] = Napi::Value(env, four_arg_function);
192
- exports["core"] = core;
193
-
194
- Napi::Object cplusplus = Napi::Object::New(env);
195
- cplusplus["noArgFunction"] = Napi::Function::New(env, NoArgFunction);
196
- cplusplus["oneArgFunction"] = Napi::Function::New(env, OneArgFunction);
197
- cplusplus["twoArgFunction"] = Napi::Function::New(env, TwoArgFunction);
198
- cplusplus["threeArgFunction"] = Napi::Function::New(env, ThreeArgFunction);
199
- cplusplus["fourArgFunction"] = Napi::Function::New(env, FourArgFunction);
200
- exports["cplusplus"] = cplusplus;
201
-
202
- Napi::Object templated = Napi::Object::New(env);
203
- templated["noArgFunction"] = Napi::Function::New<NoArgFunction>(env);
204
- templated["oneArgFunction"] = Napi::Function::New<OneArgFunction>(env);
205
- templated["twoArgFunction"] = Napi::Function::New<TwoArgFunction>(env);
206
- templated["threeArgFunction"] = Napi::Function::New<ThreeArgFunction>(env);
207
- templated["fourArgFunction"] = Napi::Function::New<FourArgFunction>(env);
208
- exports["templated"] = templated;
209
-
210
- #if NAPI_VERSION > 5
211
- FunctionArgsBenchmark::Init(env, exports);
212
- #endif // NAPI_VERSION > 5
213
-
214
- return exports;
215
- }
216
-
217
- NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init)
@@ -1,60 +0,0 @@
1
- const path = require('path');
2
- const Benchmark = require('benchmark');
3
- const addonName = path.basename(__filename, '.js');
4
-
5
- [ addonName, addonName + '_noexcept' ]
6
- .forEach((addonName) => {
7
- const rootAddon = require('bindings')({
8
- bindings: addonName,
9
- module_root: __dirname
10
- });
11
- delete rootAddon.path;
12
- const implems = Object.keys(rootAddon);
13
- const maxNameLength =
14
- implems.reduce((soFar, value) => Math.max(soFar, value.length), 0);
15
- const anObject = {};
16
-
17
- console.log(`\n${addonName}: `);
18
-
19
- console.log('no arguments:');
20
- implems.reduce((suite, implem) => {
21
- const fn = rootAddon[implem].noArgFunction;
22
- return suite.add(implem.padStart(maxNameLength, ' '), () => fn());
23
- }, new Benchmark.Suite)
24
- .on('cycle', (event) => console.log(String(event.target)))
25
- .run();
26
-
27
- console.log('one argument:');
28
- implems.reduce((suite, implem) => {
29
- const fn = rootAddon[implem].oneArgFunction;
30
- return suite.add(implem.padStart(maxNameLength, ' '), () => fn('x'));
31
- }, new Benchmark.Suite)
32
- .on('cycle', (event) => console.log(String(event.target)))
33
- .run();
34
-
35
- console.log('two arguments:');
36
- implems.reduce((suite, implem) => {
37
- const fn = rootAddon[implem].twoArgFunction;
38
- return suite.add(implem.padStart(maxNameLength, ' '), () => fn('x', 12));
39
- }, new Benchmark.Suite)
40
- .on('cycle', (event) => console.log(String(event.target)))
41
- .run();
42
-
43
- console.log('three arguments:');
44
- implems.reduce((suite, implem) => {
45
- const fn = rootAddon[implem].threeArgFunction;
46
- return suite.add(implem.padStart(maxNameLength, ' '),
47
- () => fn('x', 12, true));
48
- }, new Benchmark.Suite)
49
- .on('cycle', (event) => console.log(String(event.target)))
50
- .run();
51
-
52
- console.log('four arguments:');
53
- implems.reduce((suite, implem) => {
54
- const fn = rootAddon[implem].fourArgFunction;
55
- return suite.add(implem.padStart(maxNameLength, ' '),
56
- () => fn('x', 12, true, anObject));
57
- }, new Benchmark.Suite)
58
- .on('cycle', (event) => console.log(String(event.target)))
59
- .run();
60
- });
@@ -1,34 +0,0 @@
1
- 'use strict';
2
-
3
- const { readdirSync } = require('fs');
4
- const { spawnSync } = require('child_process');
5
- const path = require('path');
6
-
7
- let benchmarks = [];
8
-
9
- if (!!process.env.npm_config_benchmarks) {
10
- benchmarks = process.env.npm_config_benchmarks
11
- .split(';')
12
- .map((item) => (item + '.js'));
13
- }
14
-
15
- // Run each file in this directory or the list given on the command line except
16
- // index.js as a Node.js process.
17
- (benchmarks.length > 0 ? benchmarks : readdirSync(__dirname))
18
- .filter((item) => (item !== 'index.js' && item.match(/\.js$/)))
19
- .map((item) => path.join(__dirname, item))
20
- .forEach((item) => {
21
- const child = spawnSync(process.execPath, [
22
- '--expose-gc',
23
- item
24
- ], { stdio: 'inherit' });
25
- if (child.signal) {
26
- console.error(`Tests aborted with ${child.signal}`);
27
- process.exitCode = 1;
28
- } else {
29
- process.exitCode = child.status;
30
- }
31
- if (child.status !== 0) {
32
- process.exit(process.exitCode);
33
- }
34
- });
@@ -1,91 +0,0 @@
1
- #include "napi.h"
2
-
3
- static napi_value Getter_Core(napi_env env, napi_callback_info info) {
4
- (void) info;
5
- napi_value result;
6
- napi_status status = napi_create_uint32(env, 42, &result);
7
- NAPI_THROW_IF_FAILED(env, status, nullptr);
8
- return result;
9
- }
10
-
11
- static napi_value Setter_Core(napi_env env, napi_callback_info info) {
12
- size_t argc = 1;
13
- napi_value argv;
14
- napi_status status =
15
- napi_get_cb_info(env, info, &argc, &argv, nullptr, nullptr);
16
- NAPI_THROW_IF_FAILED(env, status, nullptr);
17
- (void) argv;
18
- return nullptr;
19
- }
20
-
21
- static Napi::Value Getter(const Napi::CallbackInfo& info) {
22
- return Napi::Number::New(info.Env(), 42);
23
- }
24
-
25
- static void Setter(const Napi::CallbackInfo& info) {
26
- (void) info[0];
27
- }
28
-
29
- #if NAPI_VERSION > 5
30
- class PropDescBenchmark : public Napi::Addon<PropDescBenchmark> {
31
- public:
32
- PropDescBenchmark(Napi::Env, Napi::Object exports) {
33
- DefineAddon(exports, {
34
- InstanceAccessor("addon",
35
- &PropDescBenchmark::Getter,
36
- &PropDescBenchmark::Setter,
37
- napi_enumerable),
38
- InstanceAccessor<&PropDescBenchmark::Getter,
39
- &PropDescBenchmark::Setter>("addon_templated",
40
- napi_enumerable),
41
- });
42
- }
43
-
44
- private:
45
- Napi::Value Getter(const Napi::CallbackInfo& info) {
46
- return Napi::Number::New(info.Env(), 42);
47
- }
48
-
49
- void Setter(const Napi::CallbackInfo& info, const Napi::Value& val) {
50
- (void) info[0];
51
- (void) val;
52
- }
53
- };
54
- #endif // NAPI_VERSION > 5
55
-
56
- static Napi::Object Init(Napi::Env env, Napi::Object exports) {
57
- napi_status status;
58
- napi_property_descriptor core_prop = {
59
- "core",
60
- nullptr,
61
- nullptr,
62
- Getter_Core,
63
- Setter_Core,
64
- nullptr,
65
- napi_enumerable,
66
- nullptr
67
- };
68
-
69
- status = napi_define_properties(env, exports, 1, &core_prop);
70
- NAPI_THROW_IF_FAILED(env, status, Napi::Object());
71
-
72
- exports.DefineProperty(
73
- Napi::PropertyDescriptor::Accessor(env,
74
- exports,
75
- "cplusplus",
76
- Getter,
77
- Setter,
78
- napi_enumerable));
79
-
80
- exports.DefineProperty(
81
- Napi::PropertyDescriptor::Accessor<Getter, Setter>("templated",
82
- napi_enumerable));
83
-
84
- #if NAPI_VERSION > 5
85
- PropDescBenchmark::Init(env, exports);
86
- #endif // NAPI_VERSION > 5
87
-
88
- return exports;
89
- }
90
-
91
- NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init)
@@ -1,37 +0,0 @@
1
- const path = require('path');
2
- const Benchmark = require('benchmark');
3
- const addonName = path.basename(__filename, '.js');
4
-
5
- [ addonName, addonName + '_noexcept' ]
6
- .forEach((addonName) => {
7
- const rootAddon = require('bindings')({
8
- bindings: addonName,
9
- module_root: __dirname
10
- });
11
- delete rootAddon.path;
12
- const getters = new Benchmark.Suite;
13
- const setters = new Benchmark.Suite;
14
- const maxNameLength = Object.keys(rootAddon)
15
- .reduce((soFar, value) => Math.max(soFar, value.length), 0);
16
-
17
- console.log(`\n${addonName}: `);
18
-
19
- Object.keys(rootAddon).forEach((key) => {
20
- getters.add(`${key} getter`.padStart(maxNameLength + 7), () => {
21
- const x = rootAddon[key];
22
- });
23
- setters.add(`${key} setter`.padStart(maxNameLength + 7), () => {
24
- rootAddon[key] = 5;
25
- })
26
- });
27
-
28
- getters
29
- .on('cycle', (event) => console.log(String(event.target)))
30
- .run();
31
-
32
- console.log('');
33
-
34
- setters
35
- .on('cycle', (event) => console.log(String(event.target)))
36
- .run();
37
- });
@@ -1,163 +0,0 @@
1
- # Add-on Structure
2
-
3
- Class `Napi::Addon<T>` inherits from class [`Napi::InstanceWrap<T>`][].
4
-
5
- Creating add-ons that work correctly when loaded multiple times from the same
6
- source package into multiple Node.js threads and/or multiple times into the same
7
- Node.js thread requires that all global data they hold be associated with the
8
- environment in which they run. It is not safe to store global data in static
9
- variables because doing so does not take into account the fact that an add-on
10
- may be loaded into multiple threads nor that an add-on may be loaded multiple
11
- times into a single thread.
12
-
13
- The `Napi::Addon<T>` class can be used to define an entire add-on. Instances of
14
- `Napi::Addon<T>` subclasses become instances of the add-on, stored safely by
15
- Node.js on its various threads and into its various contexts. Thus, any data
16
- stored in the instance variables of a `Napi::Addon<T>` subclass instance are
17
- stored safely by Node.js. Functions exposed to JavaScript using
18
- `Napi::Addon<T>::InstanceMethod` and/or `Napi::Addon<T>::DefineAddon` are
19
- instance methods of the `Napi::Addon` subclass and thus have access to data
20
- stored inside the instance.
21
-
22
- `Napi::Addon<T>::DefineProperties` may be used to attach `Napi::Addon<T>`
23
- subclass instance methods to objects other than the one that will be returned to
24
- Node.js as the add-on instance.
25
-
26
- The `Napi::Addon<T>` class can be used together with the `NODE_API_ADDON()` and
27
- `NODE_API_NAMED_ADDON()` macros to define add-ons.
28
-
29
- ## Example
30
-
31
- ```cpp
32
- #include <napi.h>
33
-
34
- class ExampleAddon : public Napi::Addon<ExampleAddon> {
35
- public:
36
- ExampleAddon(Napi::Env env, Napi::Object exports) {
37
- // In the constructor we declare the functions the add-on makes available
38
- // to JavaScript.
39
- DefineAddon(exports, {
40
- InstanceMethod("increment", &ExampleAddon::Increment),
41
-
42
- // We can also attach plain objects to `exports`, and instance methods as
43
- // properties of those sub-objects.
44
- InstanceValue("subObject", DefineProperties(Napi::Object::New(env), {
45
- InstanceMethod("decrement", &ExampleAddon::Decrement)
46
- }), napi_enumerable)
47
- });
48
- }
49
- private:
50
-
51
- // This method has access to the data stored in the environment because it is
52
- // an instance method of `ExampleAddon` and because it was listed among the
53
- // property descriptors passed to `DefineAddon()` in the constructor.
54
- Napi::Value Increment(const Napi::CallbackInfo& info) {
55
- return Napi::Number::New(info.Env(), ++value);
56
- }
57
-
58
- // This method has access to the data stored in the environment because it is
59
- // an instance method of `ExampleAddon` and because it was exposed to
60
- // JavaScript by calling `DefineProperties()` with the object onto which it is
61
- // attached.
62
- Napi::Value Decrement(const Napi::CallbackInfo& info) {
63
- return Napi::Number::New(info.Env(), --value);
64
- }
65
-
66
- // Data stored in these variables is unique to each instance of the add-on.
67
- uint32_t value = 42;
68
- };
69
-
70
- // The macro announces that instances of the class `ExampleAddon` will be
71
- // created for each instance of the add-on that must be loaded into Node.js.
72
- NODE_API_ADDON(ExampleAddon)
73
- ```
74
-
75
- The above code can be used from JavaScript as follows:
76
-
77
- ```js
78
- 'use strict'
79
-
80
- const exampleAddon = require('bindings')('example_addon');
81
- console.log(exampleAddon.increment()); // prints 43
82
- console.log(exampleAddon.increment()); // prints 44
83
- console.log(exampleAddon.subObject.decrement()); // prints 43
84
- ```
85
-
86
- When Node.js loads an instance of the add-on, a new instance of the class is
87
- created. Its constructor receives the environment `Napi::Env env` and the
88
- exports object `Napi::Object exports`. It can then use the method `DefineAddon`
89
- to either attach methods, accessors, and/or values to the `exports` object or to
90
- create its own `exports` object and attach methods, accessors, and/or values to
91
- it.
92
-
93
- **Note:** `Napi::Addon<T>` uses `Napi::Env::SetInstanceData()` internally. This
94
- means that the add-on should only use `Napi::Env::GetInstanceData` explicitly to
95
- retrieve the instance of the `Napi::Addon<T>` class. Variables whose scope would
96
- otherwise be global should be stored as instance variables in the
97
- `Napi::Addon<T>` class.
98
-
99
- Functions created with `Napi::Function::New()`, accessors created with
100
- `PropertyDescriptor::Accessor()`, and values can also be attached. If their
101
- implementation requires the `ExampleAddon` instance, it can be retrieved from
102
- the `Napi::Env env` with `GetInstanceData()`:
103
-
104
- ```cpp
105
- void ExampleBinding(const Napi::CallbackInfo& info) {
106
- ExampleAddon* addon = info.Env().GetInstanceData<ExampleAddon>();
107
- }
108
- ```
109
-
110
- ## Methods
111
-
112
- ### Constructor
113
-
114
- Creates a new instance of the add-on.
115
-
116
- ```cpp
117
- Napi::Addon(Napi::Env env, Napi::Object exports);
118
- ```
119
-
120
- - `[in] env`: The environment into which the add-on is being loaded.
121
- - `[in] exports`: The exports object received from JavaScript.
122
-
123
- Typically, the constructor calls `DefineAddon()` to attach methods, accessors,
124
- and/or values to `exports`. The constructor may also create a new object and
125
- pass it to `DefineAddon()` as its first parameter if it wishes to replace the
126
- `exports` object as provided by Node.js.
127
-
128
- ### DefineAddon
129
-
130
- Defines an add-on instance with functions, accessors, and/or values.
131
-
132
- ```cpp
133
- template <typename T>
134
- void Napi::Addon<T>::DefineAddon(Napi::Object exports,
135
- const std::initializer_list<PropertyDescriptor>& properties);
136
- ```
137
-
138
- * `[in] exports`: The object to return to Node.js as an instance of the add-on.
139
- * `[in] properties`: Initializer list of add-on property descriptors of the
140
- methods, property accessors, and values that define the add-on. They will be
141
- set on `exports`.
142
- See: [`Class property and descriptor`](class_property_descriptor.md).
143
-
144
- ### DefineProperties
145
-
146
- Defines function, accessor, and/or value properties on an object using add-on
147
- instance methods.
148
-
149
- ```cpp
150
- template <typename T>
151
- Napi::Object
152
- Napi::Addon<T>::DefineProperties(Napi::Object object,
153
- const std::initializer_list<PropertyDescriptor>& properties);
154
- ```
155
-
156
- * `[in] object`: The object that will receive the new properties.
157
- * `[in] properties`: Initializer list of property descriptors of the methods,
158
- property accessors, and values to attach to `object`.
159
- See: [`Class property and descriptor`](class_property_descriptor.md).
160
-
161
- Returns `object`.
162
-
163
- [`Napi::InstanceWrap<T>`]: ./instance_wrap.md
@@ -1,81 +0,0 @@
1
- # Array
2
-
3
- Class [`Napi::Array`][] inherits from class [`Napi::Object`][].
4
-
5
- Arrays are native representations of JavaScript Arrays. `Napi::Array` is a wrapper
6
- around `napi_value` representing a JavaScript Array.
7
-
8
- [`Napi::TypedArray`][] and [`Napi::ArrayBuffer`][] correspond to JavaScript data
9
- types such as [`Napi::Int32Array`][] and [`Napi::ArrayBuffer`][], respectively,
10
- that can be used for transferring large amounts of data from JavaScript to the
11
- native side. An example illustrating the use of a JavaScript-provided
12
- `ArrayBuffer` in native code is available [here](https://github.com/nodejs/node-addon-examples/tree/HEAD/array_buffer_to_native/node-addon-api).
13
-
14
- ## Constructor
15
- ```cpp
16
- Napi::Array::Array();
17
- ```
18
-
19
- Returns an empty array.
20
-
21
- If an error occurs, a `Napi::Error` will be thrown. If C++ exceptions are not
22
- being used, callers should check the result of `Env::IsExceptionPending` before
23
- attempting to use the returned value.
24
-
25
- ```cpp
26
- Napi::Array::Array(napi_env env, napi_value value);
27
- ```
28
- - `[in] env` - The environment in which to create the array.
29
- - `[in] value` - The primitive to wrap.
30
-
31
- Returns a `Napi::Array` wrapping a `napi_value`.
32
-
33
- If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
34
- being used, callers should check the result of `Env::IsExceptionPending` before
35
- attempting to use the returned value.
36
-
37
- ## Methods
38
-
39
- ### New
40
- ```cpp
41
- static Napi::Array Napi::Array::New(napi_env env);
42
- ```
43
- - `[in] env` - The environment in which to create the array.
44
-
45
- Returns a new `Napi::Array`.
46
-
47
- If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
48
- being used, callers should check the result of `Env::IsExceptionPending` before
49
- attempting to use the returned value.
50
-
51
- ### New
52
-
53
- ```cpp
54
- static Napi::Array Napi::Array::New(napi_env env, size_t length);
55
- ```
56
- - `[in] env` - The environment in which to create the array.
57
- - `[in] length` - The length of the array.
58
-
59
- Returns a new `Napi::Array` with the given length.
60
-
61
- If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
62
- being used, callers should check the result of `Env::IsExceptionPending` before
63
- attempting to use the returned value.
64
-
65
- ### Length
66
- ```cpp
67
- uint32_t Napi::Array::Length() const;
68
- ```
69
-
70
- Returns the length of the array.
71
-
72
- Note:
73
- This can execute JavaScript code implicitly according to JavaScript semantics.
74
- If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
75
- being used, callers should check the result of `Env::IsExceptionPending` before
76
- attempting to use the returned value.
77
-
78
- [`Napi::ArrayBuffer`]: ./array_buffer.md
79
- [`Napi::Int32Array`]: ./typed_array_of.md
80
- [`Napi::Object`]: ./object.md
81
- [`Napi::TypedArray`]: ./typed_array.md