@encharm/cws 4.1.0 → 4.2.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 (370) hide show
  1. package/dist/bindings/cws_linux_108.node +0 -0
  2. package/dist/bindings/cws_linux_64.node +0 -0
  3. package/dist/bindings/cws_linux_72.node +0 -0
  4. package/dist/bindings/cws_linux_79.node +0 -0
  5. package/dist/bindings/cws_linux_83.node +0 -0
  6. package/dist/bindings/cws_linux_93.node +0 -0
  7. package/dist/bindings/cws_win32_64.node +0 -0
  8. package/dist/bindings/cws_win32_72.node +0 -0
  9. package/dist/bindings/cws_win32_79.node +0 -0
  10. package/dist/bindings/cws_win32_83.node +0 -0
  11. package/dist/bindings/cws_win32_93.node +0 -0
  12. package/package.json +1 -1
  13. package/src/Addon.h +24 -2
  14. package/src/HTTPSocket.cpp +1 -1
  15. package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
  16. package/src/headers/18/aliased_struct-inl.h +54 -0
  17. package/src/headers/18/aliased_struct.h +63 -0
  18. package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
  19. package/src/headers/{12 → 18}/async_wrap.h +26 -2
  20. package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
  21. package/src/headers/18/base64.h +69 -0
  22. package/src/headers/{12 → 18}/base_object-inl.h +46 -25
  23. package/src/headers/{12 → 18}/base_object.h +82 -17
  24. package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
  25. package/src/headers/{12 → 18}/callback_queue.h +13 -5
  26. package/src/headers/18/cares_wrap.h +523 -0
  27. package/src/headers/{12 → 18}/connect_wrap.h +0 -0
  28. package/src/headers/{12 → 18}/connection_wrap.h +0 -0
  29. package/src/headers/18/crypto/crypto_aes.h +89 -0
  30. package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
  31. package/src/headers/18/crypto/crypto_cipher.h +291 -0
  32. package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
  33. package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
  34. package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
  35. package/src/headers/18/crypto/crypto_context.h +147 -0
  36. package/src/headers/18/crypto/crypto_dh.h +156 -0
  37. package/src/headers/18/crypto/crypto_dsa.h +77 -0
  38. package/src/headers/18/crypto/crypto_ec.h +170 -0
  39. package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
  40. package/src/headers/18/crypto/crypto_hash.h +89 -0
  41. package/src/headers/18/crypto/crypto_hkdf.h +65 -0
  42. package/src/headers/18/crypto/crypto_hmac.h +94 -0
  43. package/src/headers/18/crypto/crypto_keygen.h +305 -0
  44. package/src/headers/18/crypto/crypto_keys.h +420 -0
  45. package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
  46. package/src/headers/18/crypto/crypto_random.h +130 -0
  47. package/src/headers/18/crypto/crypto_rsa.h +141 -0
  48. package/src/headers/18/crypto/crypto_scrypt.h +87 -0
  49. package/src/headers/18/crypto/crypto_sig.h +168 -0
  50. package/src/headers/18/crypto/crypto_spkac.h +21 -0
  51. package/src/headers/18/crypto/crypto_timing.h +20 -0
  52. package/src/headers/{13/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
  53. package/src/headers/18/crypto/crypto_util.h +791 -0
  54. package/src/headers/18/crypto/crypto_x509.h +143 -0
  55. package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
  56. package/src/headers/{13 → 18}/debug_utils.h +7 -4
  57. package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
  58. package/src/headers/{12 → 18}/env-inl.h +397 -304
  59. package/src/headers/{12 → 18}/env.h +397 -172
  60. package/src/headers/{12 → 18}/handle_wrap.h +7 -3
  61. package/src/headers/18/histogram-inl.h +107 -0
  62. package/src/headers/18/histogram.h +239 -0
  63. package/src/headers/{13 → 18}/inspector_agent.h +4 -7
  64. package/src/headers/{12 → 18}/inspector_io.h +0 -0
  65. package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
  66. package/src/headers/{12 → 18}/inspector_socket.h +0 -0
  67. package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
  68. package/src/headers/18/js_native_api.h +571 -0
  69. package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
  70. package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
  71. package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
  72. package/src/headers/{12 → 18}/js_stream.h +0 -0
  73. package/src/headers/{12 → 18}/json_utils.h +0 -0
  74. package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
  75. package/src/headers/{13 → 18}/memory_tracker.h +0 -7
  76. package/src/headers/{13 → 18}/module_wrap.h +24 -7
  77. package/src/headers/{13 → 18}/node.h +329 -68
  78. package/src/headers/18/node_api.h +288 -0
  79. package/src/headers/18/node_api_internals.h +38 -0
  80. package/src/headers/{12 → 18}/node_api_types.h +12 -9
  81. package/src/headers/{12 → 18}/node_binding.h +0 -0
  82. package/src/headers/18/node_blob.h +191 -0
  83. package/src/headers/18/node_bob-inl.h +37 -0
  84. package/src/headers/18/node_bob.h +111 -0
  85. package/src/headers/{13 → 18}/node_buffer.h +0 -0
  86. package/src/headers/{13 → 18}/node_constants.h +5 -1
  87. package/src/headers/{12 → 18}/node_context_data.h +5 -0
  88. package/src/headers/{12 → 18}/node_contextify.h +37 -2
  89. package/src/headers/{10/node_win32_perfctr_provider.h → 18/node_crypto.h} +30 -31
  90. package/src/headers/{12 → 18}/node_dir.h +0 -0
  91. package/src/headers/{12 → 18}/node_dtrace.h +0 -0
  92. package/src/headers/{12 → 18}/node_errors.h +90 -24
  93. package/src/headers/18/node_external_reference.h +145 -0
  94. package/src/headers/{13 → 18}/node_file-inl.h +38 -21
  95. package/src/headers/{12 → 18}/node_file.h +74 -13
  96. package/src/headers/{13 → 18}/node_http2.h +365 -269
  97. package/src/headers/{12 → 18}/node_http2_state.h +40 -50
  98. package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
  99. package/src/headers/{13 → 18}/node_http_common.h +24 -20
  100. package/src/headers/{13 → 18}/node_i18n.h +2 -1
  101. package/src/headers/{12 → 18}/node_internals.h +39 -41
  102. package/src/headers/{13 → 18}/node_main_instance.h +15 -18
  103. package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
  104. package/src/headers/{12 → 18}/node_mem.h +1 -1
  105. package/src/headers/{13 → 18}/node_messaging.h +170 -23
  106. package/src/headers/{12 → 18}/node_metadata.h +17 -4
  107. package/src/headers/{12 → 18}/node_mutex.h +77 -1
  108. package/src/headers/{12 → 18}/node_native_module.h +11 -1
  109. package/src/headers/{13 → 18}/node_native_module_env.h +14 -8
  110. package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
  111. package/src/headers/{13 → 18}/node_options-inl.h +51 -21
  112. package/src/headers/{13 → 18}/node_options.h +46 -14
  113. package/src/headers/18/node_perf.h +168 -0
  114. package/src/headers/{12 → 18}/node_perf_common.h +16 -22
  115. package/src/headers/{12 → 18}/node_platform.h +21 -16
  116. package/src/headers/18/node_process-inl.h +26 -0
  117. package/src/headers/18/node_process.h +97 -0
  118. package/src/headers/{13 → 18}/node_report.h +2 -2
  119. package/src/headers/{13 → 18}/node_revert.h +10 -0
  120. package/src/headers/{12 → 18}/node_root_certs.h +439 -651
  121. package/src/headers/18/node_snapshot_builder.h +43 -0
  122. package/src/headers/18/node_snapshotable.h +130 -0
  123. package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
  124. package/src/headers/18/node_sockaddr.h +405 -0
  125. package/src/headers/{12 → 18}/node_stat_watcher.h +7 -1
  126. package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
  127. package/src/headers/{13 → 18}/node_url.h +18 -1
  128. package/src/headers/18/node_v8.h +41 -0
  129. package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
  130. package/src/headers/{13 → 18}/node_version.h +7 -7
  131. package/src/headers/{12 → 18}/node_wasi.h +0 -0
  132. package/src/headers/18/node_wasm_web_api.h +55 -0
  133. package/src/headers/{13 → 18}/node_watchdog.h +0 -0
  134. package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
  135. package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
  136. package/src/headers/{13 → 18}/node_worker.h +24 -17
  137. package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
  138. package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
  139. package/src/headers/{12 → 18}/req_wrap.h +1 -1
  140. package/src/headers/{12 → 18}/spawn_sync.h +0 -0
  141. package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
  142. package/src/headers/{13 → 18}/stream_base.h +29 -3
  143. package/src/headers/{13 → 18}/stream_pipe.h +8 -3
  144. package/src/headers/{12 → 18}/stream_wrap.h +4 -1
  145. package/src/headers/{13 → 18}/string_bytes.h +0 -7
  146. package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
  147. package/src/headers/{10 → 18}/string_decoder.h +0 -0
  148. package/src/headers/{13 → 18}/string_search.h +2 -2
  149. package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
  150. package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
  151. package/src/headers/18/timer_wrap-inl.h +32 -0
  152. package/src/headers/18/timer_wrap.h +85 -0
  153. package/src/headers/{13 → 18}/tracing/agent.h +1 -1
  154. package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
  155. package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
  156. package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
  157. package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
  158. package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
  159. package/src/headers/{13 → 18}/tty_wrap.h +2 -1
  160. package/src/headers/{13 → 18}/udp_wrap.h +5 -0
  161. package/src/headers/{13 → 18}/util-inl.h +69 -15
  162. package/src/headers/{13 → 18}/util.h +93 -31
  163. package/src/headers/18/v8-fast-api-calls.h +939 -0
  164. package/src/headers/{12 → 18}/v8abbr.h +2 -2
  165. package/src/headers/10/aliased_buffer.h +0 -241
  166. package/src/headers/10/async_wrap-inl.h +0 -106
  167. package/src/headers/10/async_wrap.h +0 -218
  168. package/src/headers/10/base64.h +0 -197
  169. package/src/headers/10/base_object-inl.h +0 -132
  170. package/src/headers/10/base_object.h +0 -115
  171. package/src/headers/10/connect_wrap.h +0 -28
  172. package/src/headers/10/connection_wrap.h +0 -30
  173. package/src/headers/10/debug_utils.h +0 -128
  174. package/src/headers/10/env-inl.h +0 -906
  175. package/src/headers/10/env.h +0 -1046
  176. package/src/headers/10/handle_wrap.h +0 -114
  177. package/src/headers/10/inspector_agent.h +0 -137
  178. package/src/headers/10/inspector_io.h +0 -97
  179. package/src/headers/10/inspector_socket.h +0 -59
  180. package/src/headers/10/inspector_socket_server.h +0 -104
  181. package/src/headers/10/js_stream.h +0 -57
  182. package/src/headers/10/memory_tracker-inl.h +0 -318
  183. package/src/headers/10/memory_tracker.h +0 -246
  184. package/src/headers/10/module_wrap.h +0 -100
  185. package/src/headers/10/node.h +0 -863
  186. package/src/headers/10/node_api.h +0 -752
  187. package/src/headers/10/node_api_types.h +0 -171
  188. package/src/headers/10/node_buffer.h +0 -90
  189. package/src/headers/10/node_code_cache.h +0 -17
  190. package/src/headers/10/node_constants.h +0 -74
  191. package/src/headers/10/node_context_data.h +0 -39
  192. package/src/headers/10/node_contextify.h +0 -141
  193. package/src/headers/10/node_counters.h +0 -59
  194. package/src/headers/10/node_crypto.h +0 -699
  195. package/src/headers/10/node_crypto_bio.h +0 -177
  196. package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
  197. package/src/headers/10/node_crypto_clienthello.h +0 -131
  198. package/src/headers/10/node_crypto_groups.h +0 -416
  199. package/src/headers/10/node_dtrace.h +0 -84
  200. package/src/headers/10/node_errors.h +0 -118
  201. package/src/headers/10/node_file.h +0 -373
  202. package/src/headers/10/node_http2.h +0 -1304
  203. package/src/headers/10/node_http2_state.h +0 -158
  204. package/src/headers/10/node_i18n.h +0 -69
  205. package/src/headers/10/node_internals.h +0 -952
  206. package/src/headers/10/node_javascript.h +0 -41
  207. package/src/headers/10/node_messaging.h +0 -219
  208. package/src/headers/10/node_mutex.h +0 -191
  209. package/src/headers/10/node_object_wrap.h +0 -130
  210. package/src/headers/10/node_options-inl.h +0 -444
  211. package/src/headers/10/node_options.h +0 -397
  212. package/src/headers/10/node_perf.h +0 -134
  213. package/src/headers/10/node_perf_common.h +0 -96
  214. package/src/headers/10/node_persistent.h +0 -30
  215. package/src/headers/10/node_platform.h +0 -170
  216. package/src/headers/10/node_revert.h +0 -75
  217. package/src/headers/10/node_root_certs.h +0 -3393
  218. package/src/headers/10/node_stat_watcher.h +0 -65
  219. package/src/headers/10/node_url.h +0 -193
  220. package/src/headers/10/node_version.h +0 -120
  221. package/src/headers/10/node_watchdog.h +0 -114
  222. package/src/headers/10/node_worker.h +0 -94
  223. package/src/headers/10/pipe_wrap.h +0 -76
  224. package/src/headers/10/req_wrap-inl.h +0 -166
  225. package/src/headers/10/req_wrap.h +0 -61
  226. package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
  227. package/src/headers/10/spawn_sync.h +0 -240
  228. package/src/headers/10/stream_base-inl.h +0 -458
  229. package/src/headers/10/stream_base.h +0 -378
  230. package/src/headers/10/stream_pipe.h +0 -72
  231. package/src/headers/10/stream_wrap.h +0 -130
  232. package/src/headers/10/string_bytes.h +0 -126
  233. package/src/headers/10/string_decoder-inl.h +0 -38
  234. package/src/headers/10/string_search.h +0 -620
  235. package/src/headers/10/tcp_wrap.h +0 -99
  236. package/src/headers/10/tls_wrap.h +0 -195
  237. package/src/headers/10/tracing/agent.h +0 -178
  238. package/src/headers/10/tracing/node_trace_buffer.h +0 -83
  239. package/src/headers/10/tracing/node_trace_writer.h +0 -75
  240. package/src/headers/10/tracing/trace_event.h +0 -706
  241. package/src/headers/10/tracing/trace_event_common.h +0 -1102
  242. package/src/headers/10/tracing/traced_value.h +0 -68
  243. package/src/headers/10/tty_wrap.h +0 -63
  244. package/src/headers/10/udp_wrap.h +0 -102
  245. package/src/headers/10/util-inl.h +0 -459
  246. package/src/headers/10/util.h +0 -508
  247. package/src/headers/10/v8abbr.h +0 -121
  248. package/src/headers/12/aliased_buffer.h +0 -263
  249. package/src/headers/12/debug_utils.h +0 -181
  250. package/src/headers/12/histogram-inl.h +0 -83
  251. package/src/headers/12/histogram.h +0 -98
  252. package/src/headers/12/http_parser_adaptor.h +0 -24
  253. package/src/headers/12/inspector_agent.h +0 -147
  254. package/src/headers/12/inspector_profiler.h +0 -137
  255. package/src/headers/12/js_native_api.h +0 -541
  256. package/src/headers/12/js_native_api_types.h +0 -139
  257. package/src/headers/12/memory_tracker-inl.h +0 -339
  258. package/src/headers/12/memory_tracker.h +0 -283
  259. package/src/headers/12/module_wrap.h +0 -99
  260. package/src/headers/12/node.h +0 -887
  261. package/src/headers/12/node_api.h +0 -239
  262. package/src/headers/12/node_buffer.h +0 -92
  263. package/src/headers/12/node_constants.h +0 -80
  264. package/src/headers/12/node_crypto.h +0 -800
  265. package/src/headers/12/node_crypto_bio.h +0 -195
  266. package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
  267. package/src/headers/12/node_crypto_clienthello.h +0 -132
  268. package/src/headers/12/node_file-inl.h +0 -289
  269. package/src/headers/12/node_http2.h +0 -1311
  270. package/src/headers/12/node_http_parser_impl.h +0 -994
  271. package/src/headers/12/node_i18n.h +0 -144
  272. package/src/headers/12/node_main_instance.h +0 -97
  273. package/src/headers/12/node_messaging.h +0 -227
  274. package/src/headers/12/node_native_module_env.h +0 -65
  275. package/src/headers/12/node_options-inl.h +0 -447
  276. package/src/headers/12/node_options.h +0 -479
  277. package/src/headers/12/node_perf.h +0 -181
  278. package/src/headers/12/node_process.h +0 -41
  279. package/src/headers/12/node_report.h +0 -47
  280. package/src/headers/12/node_revert.h +0 -78
  281. package/src/headers/12/node_sockaddr.h +0 -123
  282. package/src/headers/12/node_url.h +0 -188
  283. package/src/headers/12/node_version.h +0 -98
  284. package/src/headers/12/node_watchdog.h +0 -152
  285. package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
  286. package/src/headers/12/node_win32_etw_provider.h +0 -99
  287. package/src/headers/12/node_worker.h +0 -142
  288. package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
  289. package/src/headers/12/stream_base-inl.h +0 -323
  290. package/src/headers/12/stream_base.h +0 -431
  291. package/src/headers/12/stream_pipe.h +0 -72
  292. package/src/headers/12/string_bytes.h +0 -142
  293. package/src/headers/12/string_decoder.h +0 -50
  294. package/src/headers/12/string_search.h +0 -638
  295. package/src/headers/12/tls_wrap.h +0 -221
  296. package/src/headers/12/tracing/agent.h +0 -195
  297. package/src/headers/12/tracing/trace_event.h +0 -710
  298. package/src/headers/12/tty_wrap.h +0 -64
  299. package/src/headers/12/udp_wrap.h +0 -222
  300. package/src/headers/12/util-inl.h +0 -529
  301. package/src/headers/12/util.h +0 -765
  302. package/src/headers/13/async_wrap-inl.h +0 -94
  303. package/src/headers/13/async_wrap.h +0 -224
  304. package/src/headers/13/base64.h +0 -197
  305. package/src/headers/13/base_object-inl.h +0 -353
  306. package/src/headers/13/base_object.h +0 -229
  307. package/src/headers/13/connect_wrap.h +0 -26
  308. package/src/headers/13/connection_wrap.h +0 -30
  309. package/src/headers/13/debug_utils-inl.h +0 -223
  310. package/src/headers/13/diagnosticfilename-inl.h +0 -33
  311. package/src/headers/13/env-inl.h +0 -1293
  312. package/src/headers/13/env.h +0 -1469
  313. package/src/headers/13/handle_wrap.h +0 -117
  314. package/src/headers/13/histogram-inl.h +0 -83
  315. package/src/headers/13/histogram.h +0 -98
  316. package/src/headers/13/inspector_io.h +0 -78
  317. package/src/headers/13/inspector_socket.h +0 -60
  318. package/src/headers/13/inspector_socket_server.h +0 -110
  319. package/src/headers/13/js_native_api.h +0 -541
  320. package/src/headers/13/js_native_api_v8.h +0 -303
  321. package/src/headers/13/js_native_api_v8_internals.h +0 -38
  322. package/src/headers/13/js_stream.h +0 -52
  323. package/src/headers/13/json_utils.h +0 -160
  324. package/src/headers/13/node_api.h +0 -239
  325. package/src/headers/13/node_api_types.h +0 -44
  326. package/src/headers/13/node_binding.h +0 -99
  327. package/src/headers/13/node_context_data.h +0 -39
  328. package/src/headers/13/node_contextify.h +0 -161
  329. package/src/headers/13/node_crypto.h +0 -800
  330. package/src/headers/13/node_crypto_common.h +0 -138
  331. package/src/headers/13/node_crypto_groups.h +0 -415
  332. package/src/headers/13/node_dir.h +0 -52
  333. package/src/headers/13/node_dtrace.h +0 -86
  334. package/src/headers/13/node_errors.h +0 -210
  335. package/src/headers/13/node_file.h +0 -364
  336. package/src/headers/13/node_http2_state.h +0 -144
  337. package/src/headers/13/node_internals.h +0 -405
  338. package/src/headers/13/node_mem-inl.h +0 -112
  339. package/src/headers/13/node_mem.h +0 -41
  340. package/src/headers/13/node_metadata.h +0 -109
  341. package/src/headers/13/node_mutex.h +0 -247
  342. package/src/headers/13/node_native_module.h +0 -99
  343. package/src/headers/13/node_object_wrap.h +0 -132
  344. package/src/headers/13/node_perf.h +0 -181
  345. package/src/headers/13/node_perf_common.h +0 -97
  346. package/src/headers/13/node_platform.h +0 -190
  347. package/src/headers/13/node_process.h +0 -41
  348. package/src/headers/13/node_root_certs.h +0 -3424
  349. package/src/headers/13/node_sockaddr-inl.h +0 -170
  350. package/src/headers/13/node_sockaddr.h +0 -123
  351. package/src/headers/13/node_stat_watcher.h +0 -66
  352. package/src/headers/13/node_union_bytes.h +0 -103
  353. package/src/headers/13/node_v8_platform-inl.h +0 -184
  354. package/src/headers/13/node_wasi.h +0 -108
  355. package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
  356. package/src/headers/13/node_win32_etw_provider.h +0 -99
  357. package/src/headers/13/pipe_wrap.h +0 -78
  358. package/src/headers/13/req_wrap-inl.h +0 -170
  359. package/src/headers/13/req_wrap.h +0 -77
  360. package/src/headers/13/spawn_sync.h +0 -242
  361. package/src/headers/13/stream_wrap.h +0 -130
  362. package/src/headers/13/string_decoder-inl.h +0 -37
  363. package/src/headers/13/string_decoder.h +0 -50
  364. package/src/headers/13/tcp_wrap.h +0 -101
  365. package/src/headers/13/threadpoolwork-inl.h +0 -57
  366. package/src/headers/13/tracing/node_trace_buffer.h +0 -83
  367. package/src/headers/13/tracing/node_trace_writer.h +0 -75
  368. package/src/headers/13/tracing/trace_event_common.h +0 -1109
  369. package/src/headers/13/tracing/traced_value.h +0 -70
  370. package/src/headers/13/v8abbr.h +0 -124
@@ -53,19 +53,11 @@ class RefTracker {
53
53
 
54
54
  struct napi_env__ {
55
55
  explicit napi_env__(v8::Local<v8::Context> context)
56
- : isolate(context->GetIsolate()),
57
- context_persistent(isolate, context) {
56
+ : isolate(context->GetIsolate()), context_persistent(isolate, context) {
58
57
  CHECK_EQ(isolate, context->GetIsolate());
58
+ napi_clear_last_error(this);
59
59
  }
60
- virtual ~napi_env__() {
61
- // First we must finalize those references that have `napi_finalizer`
62
- // callbacks. The reason is that addons might store other references which
63
- // they delete during their `napi_finalizer` callbacks. If we deleted such
64
- // references here first, they would be doubly deleted when the
65
- // `napi_finalizer` deleted them subsequently.
66
- v8impl::RefTracker::FinalizeAll(&finalizing_reflist);
67
- v8impl::RefTracker::FinalizeAll(&reflist);
68
- }
60
+ virtual ~napi_env__() { FinalizeAll(); }
69
61
  v8::Isolate* const isolate; // Shortcut for context()->GetIsolate()
70
62
  v8impl::Persistent<v8::Context> context_persistent;
71
63
 
@@ -74,7 +66,9 @@ struct napi_env__ {
74
66
  }
75
67
 
76
68
  inline void Ref() { refs++; }
77
- inline void Unref() { if ( --refs == 0) delete this; }
69
+ inline void Unref() {
70
+ if (--refs == 0) delete this;
71
+ }
78
72
 
79
73
  virtual bool can_call_into_js() const { return true; }
80
74
  virtual v8::Maybe<bool> mark_arraybuffer_as_untransferable(
@@ -82,8 +76,12 @@ struct napi_env__ {
82
76
  return v8::Just(true);
83
77
  }
84
78
 
85
- template <typename T, typename U>
86
- void CallIntoModule(T&& call, U&& handle_exception) {
79
+ static inline void HandleThrow(napi_env env, v8::Local<v8::Value> value) {
80
+ env->isolate->ThrowException(value);
81
+ }
82
+
83
+ template <typename T, typename U = decltype(HandleThrow)>
84
+ inline void CallIntoModule(T&& call, U&& handle_exception = HandleThrow) {
87
85
  int open_handle_scopes_before = open_handle_scopes;
88
86
  int open_callback_scopes_before = open_callback_scopes;
89
87
  napi_clear_last_error(this);
@@ -96,11 +94,21 @@ struct napi_env__ {
96
94
  }
97
95
  }
98
96
 
99
- template <typename T>
100
- void CallIntoModuleThrow(T&& call) {
101
- CallIntoModule(call, [&](napi_env env, v8::Local<v8::Value> value) {
102
- env->isolate->ThrowException(value);
103
- });
97
+ // This should be overridden to schedule the finalization to a properiate
98
+ // timing, like next tick of the event loop.
99
+ virtual void CallFinalizer(napi_finalize cb, void* data, void* hint) {
100
+ v8::HandleScope handle_scope(isolate);
101
+ CallIntoModule([&](napi_env env) { cb(env, data, hint); });
102
+ }
103
+
104
+ void FinalizeAll() {
105
+ // First we must finalize those references that have `napi_finalizer`
106
+ // callbacks. The reason is that addons might store other references which
107
+ // they delete during their `napi_finalizer` callbacks. If we deleted such
108
+ // references here first, they would be doubly deleted when the
109
+ // `napi_finalizer` deleted them subsequently.
110
+ v8impl::RefTracker::FinalizeAll(&finalizing_reflist);
111
+ v8impl::RefTracker::FinalizeAll(&reflist);
104
112
  }
105
113
 
106
114
  v8impl::Persistent<v8::Value> last_exception;
@@ -117,86 +125,143 @@ struct napi_env__ {
117
125
  void* instance_data = nullptr;
118
126
  };
119
127
 
128
+ // This class is used to keep a napi_env live in a way that
129
+ // is exception safe versus calling Ref/Unref directly
130
+ class EnvRefHolder {
131
+ public:
132
+ explicit EnvRefHolder(napi_env env) : _env(env) { _env->Ref(); }
133
+
134
+ explicit EnvRefHolder(const EnvRefHolder& other) : _env(other.env()) {
135
+ _env->Ref();
136
+ }
137
+
138
+ EnvRefHolder(EnvRefHolder&& other) {
139
+ _env = other._env;
140
+ other._env = nullptr;
141
+ }
142
+
143
+ ~EnvRefHolder() {
144
+ if (_env != nullptr) {
145
+ _env->Unref();
146
+ }
147
+ }
148
+
149
+ napi_env env(void) const { return _env; }
150
+
151
+ private:
152
+ napi_env _env;
153
+ };
154
+
120
155
  static inline napi_status napi_clear_last_error(napi_env env) {
121
156
  env->last_error.error_code = napi_ok;
122
157
 
123
158
  // TODO(boingoing): Should this be a callback?
124
159
  env->last_error.engine_error_code = 0;
125
160
  env->last_error.engine_reserved = nullptr;
161
+ env->last_error.error_message = nullptr;
126
162
  return napi_ok;
127
163
  }
128
164
 
129
- static inline
130
- napi_status napi_set_last_error(napi_env env, napi_status error_code,
131
- uint32_t engine_error_code = 0,
132
- void* engine_reserved = nullptr) {
165
+ static inline napi_status napi_set_last_error(napi_env env,
166
+ napi_status error_code,
167
+ uint32_t engine_error_code = 0,
168
+ void* engine_reserved = nullptr) {
133
169
  env->last_error.error_code = error_code;
134
170
  env->last_error.engine_error_code = engine_error_code;
135
171
  env->last_error.engine_reserved = engine_reserved;
136
172
  return error_code;
137
173
  }
138
174
 
139
- #define RETURN_STATUS_IF_FALSE(env, condition, status) \
140
- do { \
141
- if (!(condition)) { \
142
- return napi_set_last_error((env), (status)); \
143
- } \
175
+ #define RETURN_STATUS_IF_FALSE(env, condition, status) \
176
+ do { \
177
+ if (!(condition)) { \
178
+ return napi_set_last_error((env), (status)); \
179
+ } \
180
+ } while (0)
181
+
182
+ #define RETURN_STATUS_IF_FALSE_WITH_PREAMBLE(env, condition, status) \
183
+ do { \
184
+ if (!(condition)) { \
185
+ return napi_set_last_error( \
186
+ (env), try_catch.HasCaught() ? napi_pending_exception : (status)); \
187
+ } \
144
188
  } while (0)
145
189
 
146
- #define CHECK_ENV(env) \
147
- do { \
148
- if ((env) == nullptr) { \
149
- return napi_invalid_arg; \
150
- } \
190
+ #define CHECK_ENV(env) \
191
+ do { \
192
+ if ((env) == nullptr) { \
193
+ return napi_invalid_arg; \
194
+ } \
151
195
  } while (0)
152
196
 
153
- #define CHECK_ARG(env, arg) \
197
+ #define CHECK_ARG(env, arg) \
154
198
  RETURN_STATUS_IF_FALSE((env), ((arg) != nullptr), napi_invalid_arg)
155
199
 
156
- #define CHECK_MAYBE_EMPTY(env, maybe, status) \
200
+ #define CHECK_ARG_WITH_PREAMBLE(env, arg) \
201
+ RETURN_STATUS_IF_FALSE_WITH_PREAMBLE( \
202
+ (env), ((arg) != nullptr), napi_invalid_arg)
203
+
204
+ #define CHECK_MAYBE_EMPTY(env, maybe, status) \
157
205
  RETURN_STATUS_IF_FALSE((env), !((maybe).IsEmpty()), (status))
158
206
 
207
+ #define CHECK_MAYBE_EMPTY_WITH_PREAMBLE(env, maybe, status) \
208
+ RETURN_STATUS_IF_FALSE_WITH_PREAMBLE((env), !((maybe).IsEmpty()), (status))
209
+
159
210
  // NAPI_PREAMBLE is not wrapped in do..while: try_catch must have function scope
160
- #define NAPI_PREAMBLE(env) \
161
- CHECK_ENV((env)); \
162
- RETURN_STATUS_IF_FALSE((env), \
163
- (env)->last_exception.IsEmpty() && (env)->can_call_into_js(), \
164
- napi_pending_exception); \
165
- napi_clear_last_error((env)); \
211
+ #define NAPI_PREAMBLE(env) \
212
+ CHECK_ENV((env)); \
213
+ RETURN_STATUS_IF_FALSE( \
214
+ (env), \
215
+ (env)->last_exception.IsEmpty() && (env)->can_call_into_js(), \
216
+ napi_pending_exception); \
217
+ napi_clear_last_error((env)); \
166
218
  v8impl::TryCatch try_catch((env))
167
219
 
168
- #define CHECK_TO_TYPE(env, type, context, result, src, status) \
169
- do { \
170
- CHECK_ARG((env), (src)); \
171
- auto maybe = v8impl::V8LocalValueFromJsValue((src))->To##type((context)); \
172
- CHECK_MAYBE_EMPTY((env), maybe, (status)); \
173
- (result) = maybe.ToLocalChecked(); \
220
+ #define CHECK_TO_TYPE(env, type, context, result, src, status) \
221
+ do { \
222
+ CHECK_ARG((env), (src)); \
223
+ auto maybe = v8impl::V8LocalValueFromJsValue((src))->To##type((context)); \
224
+ CHECK_MAYBE_EMPTY((env), maybe, (status)); \
225
+ (result) = maybe.ToLocalChecked(); \
226
+ } while (0)
227
+
228
+ #define CHECK_TO_TYPE_WITH_PREAMBLE(env, type, context, result, src, status) \
229
+ do { \
230
+ CHECK_ARG_WITH_PREAMBLE((env), (src)); \
231
+ auto maybe = v8impl::V8LocalValueFromJsValue((src))->To##type((context)); \
232
+ CHECK_MAYBE_EMPTY_WITH_PREAMBLE((env), maybe, (status)); \
233
+ (result) = maybe.ToLocalChecked(); \
174
234
  } while (0)
175
235
 
176
- #define CHECK_TO_FUNCTION(env, result, src) \
177
- do { \
178
- CHECK_ARG((env), (src)); \
179
- v8::Local<v8::Value> v8value = v8impl::V8LocalValueFromJsValue((src)); \
180
- RETURN_STATUS_IF_FALSE((env), v8value->IsFunction(), napi_invalid_arg); \
181
- (result) = v8value.As<v8::Function>(); \
236
+ #define CHECK_TO_FUNCTION(env, result, src) \
237
+ do { \
238
+ CHECK_ARG((env), (src)); \
239
+ v8::Local<v8::Value> v8value = v8impl::V8LocalValueFromJsValue((src)); \
240
+ RETURN_STATUS_IF_FALSE((env), v8value->IsFunction(), napi_invalid_arg); \
241
+ (result) = v8value.As<v8::Function>(); \
182
242
  } while (0)
183
243
 
184
- #define CHECK_TO_OBJECT(env, context, result, src) \
244
+ #define CHECK_TO_OBJECT(env, context, result, src) \
185
245
  CHECK_TO_TYPE((env), Object, (context), (result), (src), napi_object_expected)
186
246
 
187
- #define CHECK_TO_STRING(env, context, result, src) \
247
+ #define CHECK_TO_OBJECT_WITH_PREAMBLE(env, context, result, src) \
248
+ CHECK_TO_TYPE_WITH_PREAMBLE( \
249
+ (env), Object, (context), (result), (src), napi_object_expected)
250
+
251
+ #define CHECK_TO_STRING(env, context, result, src) \
188
252
  CHECK_TO_TYPE((env), String, (context), (result), (src), napi_string_expected)
189
253
 
190
- #define GET_RETURN_STATUS(env) \
191
- (!try_catch.HasCaught() ? napi_ok \
192
- : napi_set_last_error((env), napi_pending_exception))
254
+ #define GET_RETURN_STATUS(env) \
255
+ (!try_catch.HasCaught() \
256
+ ? napi_ok \
257
+ : napi_set_last_error((env), napi_pending_exception))
193
258
 
194
- #define THROW_RANGE_ERROR_IF_FALSE(env, condition, error, message) \
195
- do { \
196
- if (!(condition)) { \
197
- napi_throw_range_error((env), (error), (message)); \
198
- return napi_set_last_error((env), napi_generic_failure); \
199
- } \
259
+ #define THROW_RANGE_ERROR_IF_FALSE(env, condition, error, message) \
260
+ do { \
261
+ if (!(condition)) { \
262
+ napi_throw_range_error((env), (error), (message)); \
263
+ return napi_set_last_error((env), napi_generic_failure); \
264
+ } \
200
265
  } while (0)
201
266
 
202
267
  #define RETURN_STATUS_IF_FALSE_WITH_PREAMBLE(env, condition, status) \
@@ -217,7 +282,7 @@ namespace v8impl {
217
282
  // This asserts v8::Local<> will always be implemented with a single
218
283
  // pointer field so that we can pass it around as a void*.
219
284
  static_assert(sizeof(v8::Local<v8::Value>) == sizeof(napi_value),
220
- "Cannot convert between v8::Local<v8::Value> and napi_value");
285
+ "Cannot convert between v8::Local<v8::Value> and napi_value");
221
286
 
222
287
  inline napi_value JsValueFromV8LocalValue(v8::Local<v8::Value> local) {
223
288
  return reinterpret_cast<napi_value>(*local);
@@ -235,10 +300,7 @@ class Finalizer {
235
300
  // Some Finalizers are run during shutdown when the napi_env is destroyed,
236
301
  // and some need to keep an explicit reference to the napi_env because they
237
302
  // are run independently.
238
- enum EnvReferenceMode {
239
- kNoEnvReference,
240
- kKeepEnvReference
241
- };
303
+ enum EnvReferenceMode { kNoEnvReference, kKeepEnvReference };
242
304
 
243
305
  protected:
244
306
  Finalizer(napi_env env,
@@ -246,18 +308,16 @@ class Finalizer {
246
308
  void* finalize_data,
247
309
  void* finalize_hint,
248
310
  EnvReferenceMode refmode = kNoEnvReference)
249
- : _env(env),
250
- _finalize_callback(finalize_callback),
251
- _finalize_data(finalize_data),
252
- _finalize_hint(finalize_hint),
253
- _has_env_reference(refmode == kKeepEnvReference) {
254
- if (_has_env_reference)
255
- _env->Ref();
311
+ : _env(env),
312
+ _finalize_callback(finalize_callback),
313
+ _finalize_data(finalize_data),
314
+ _finalize_hint(finalize_hint),
315
+ _has_env_reference(refmode == kKeepEnvReference) {
316
+ if (_has_env_reference) _env->Ref();
256
317
  }
257
318
 
258
319
  ~Finalizer() {
259
- if (_has_env_reference)
260
- _env->Unref();
320
+ if (_has_env_reference) _env->Unref();
261
321
  }
262
322
 
263
323
  public:
@@ -270,9 +330,7 @@ class Finalizer {
270
330
  env, finalize_callback, finalize_data, finalize_hint, refmode);
271
331
  }
272
332
 
273
- static void Delete(Finalizer* finalizer) {
274
- delete finalizer;
275
- }
333
+ static void Delete(Finalizer* finalizer) { delete finalizer; }
276
334
 
277
335
  protected:
278
336
  napi_env _env;
@@ -285,8 +343,7 @@ class Finalizer {
285
343
 
286
344
  class TryCatch : public v8::TryCatch {
287
345
  public:
288
- explicit TryCatch(napi_env env)
289
- : v8::TryCatch(env->isolate), _env(env) {}
346
+ explicit TryCatch(napi_env env) : v8::TryCatch(env->isolate), _env(env) {}
290
347
 
291
348
  ~TryCatch() {
292
349
  if (HasCaught()) {
@@ -298,6 +355,86 @@ class TryCatch : public v8::TryCatch {
298
355
  napi_env _env;
299
356
  };
300
357
 
358
+ // Wrapper around v8impl::Persistent that implements reference counting.
359
+ class RefBase : protected Finalizer, RefTracker {
360
+ protected:
361
+ RefBase(napi_env env,
362
+ uint32_t initial_refcount,
363
+ bool delete_self,
364
+ napi_finalize finalize_callback,
365
+ void* finalize_data,
366
+ void* finalize_hint);
367
+
368
+ public:
369
+ static RefBase* New(napi_env env,
370
+ uint32_t initial_refcount,
371
+ bool delete_self,
372
+ napi_finalize finalize_callback,
373
+ void* finalize_data,
374
+ void* finalize_hint);
375
+
376
+ static inline void Delete(RefBase* reference);
377
+
378
+ virtual ~RefBase();
379
+ void* Data();
380
+ uint32_t Ref();
381
+ uint32_t Unref();
382
+ uint32_t RefCount();
383
+
384
+ protected:
385
+ void Finalize(bool is_env_teardown = false) override;
386
+
387
+ private:
388
+ uint32_t _refcount;
389
+ bool _delete_self;
390
+ };
391
+
392
+ class Reference : public RefBase {
393
+ using SecondPassCallParameterRef = Reference*;
394
+
395
+ protected:
396
+ template <typename... Args>
397
+ Reference(napi_env env, v8::Local<v8::Value> value, Args&&... args);
398
+
399
+ public:
400
+ static Reference* New(napi_env env,
401
+ v8::Local<v8::Value> value,
402
+ uint32_t initial_refcount,
403
+ bool delete_self,
404
+ napi_finalize finalize_callback = nullptr,
405
+ void* finalize_data = nullptr,
406
+ void* finalize_hint = nullptr);
407
+
408
+ virtual ~Reference();
409
+ uint32_t Ref();
410
+ uint32_t Unref();
411
+ v8::Local<v8::Value> Get();
412
+
413
+ protected:
414
+ void Finalize(bool is_env_teardown = false) override;
415
+
416
+ private:
417
+ void ClearWeak();
418
+ void SetWeak();
419
+
420
+ static void FinalizeCallback(
421
+ const v8::WeakCallbackInfo<SecondPassCallParameterRef>& data);
422
+ static void SecondPassCallback(
423
+ const v8::WeakCallbackInfo<SecondPassCallParameterRef>& data);
424
+
425
+ v8impl::Persistent<v8::Value> _persistent;
426
+ SecondPassCallParameterRef* _secondPassParameter;
427
+ bool _secondPassScheduled;
428
+
429
+ FRIEND_TEST(JsNativeApiV8Test, Reference);
430
+ };
431
+
301
432
  } // end of namespace v8impl
302
433
 
434
+ #define STATUS_CALL(call) \
435
+ do { \
436
+ napi_status status = (call); \
437
+ if (status != napi_ok) return status; \
438
+ } while (0)
439
+
303
440
  #endif // SRC_JS_NATIVE_API_V8_H_
@@ -14,17 +14,18 @@
14
14
  // included below, defines `NAPI_VERSION`.
15
15
 
16
16
  #include "node_version.h"
17
+
17
18
  #include "env.h"
19
+ #include "gtest/gtest_prod.h"
18
20
  #include "node_internals.h"
19
21
 
20
- #define NAPI_ARRAYSIZE(array) \
21
- node::arraysize((array))
22
+ #define NAPI_ARRAYSIZE(array) node::arraysize((array))
22
23
 
23
- #define NAPI_FIXED_ONE_BYTE_STRING(isolate, string) \
24
+ #define NAPI_FIXED_ONE_BYTE_STRING(isolate, string) \
24
25
  node::FIXED_ONE_BYTE_STRING((isolate), (string))
25
26
 
26
- #define NAPI_PRIVATE_KEY(context, suffix) \
27
- (node::Environment::GetCurrent((context))->napi_ ## suffix())
27
+ #define NAPI_PRIVATE_KEY(context, suffix) \
28
+ (node::Environment::GetCurrent((context))->napi_##suffix())
28
29
 
29
30
  namespace v8impl {
30
31
 
File without changes
File without changes
@@ -22,7 +22,7 @@ inline const char* GetNodeName(const char* node_name, const char* edge_name) {
22
22
  class MemoryRetainerNode : public v8::EmbedderGraph::Node {
23
23
  public:
24
24
  inline MemoryRetainerNode(MemoryTracker* tracker,
25
- const MemoryRetainer* retainer)
25
+ const MemoryRetainer* retainer)
26
26
  : retainer_(retainer) {
27
27
  CHECK_NOT_NULL(retainer_);
28
28
  v8::HandleScope handle_scope(tracker->isolate());
@@ -34,9 +34,9 @@ class MemoryRetainerNode : public v8::EmbedderGraph::Node {
34
34
  }
35
35
 
36
36
  inline MemoryRetainerNode(MemoryTracker* tracker,
37
- const char* name,
38
- size_t size,
39
- bool is_root_node = false)
37
+ const char* name,
38
+ size_t size,
39
+ bool is_root_node = false)
40
40
  : retainer_(nullptr) {
41
41
  name_ = name;
42
42
  size_ = size;
@@ -131,7 +131,7 @@ template <typename T, bool kIsWeak>
131
131
  void MemoryTracker::TrackField(const char* edge_name,
132
132
  const BaseObjectPtrImpl<T, kIsWeak>& value,
133
133
  const char* node_name) {
134
- if (value.get() == nullptr) return;
134
+ if (value.get() == nullptr || kIsWeak) return;
135
135
  TrackField(edge_name, value.get(), node_name);
136
136
  }
137
137
 
@@ -214,6 +214,7 @@ template <typename T>
214
214
  void MemoryTracker::TrackField(const char* edge_name,
215
215
  const v8::PersistentBase<T>& value,
216
216
  const char* node_name) {
217
+ if (value.IsWeak()) return;
217
218
  TrackField(edge_name, value.Get(isolate_));
218
219
  }
219
220
 
@@ -216,13 +216,6 @@ class MemoryTracker {
216
216
  inline void TrackField(const char* edge_name,
217
217
  const v8::BackingStore* value,
218
218
  const char* node_name = nullptr);
219
- // We do not implement CleanupHookCallback as MemoryRetainer
220
- // but instead specialize the method here to avoid the cost of
221
- // virtual pointers.
222
- // TODO(joyeecheung): do this for BaseObject and remove WrappedObject()
223
- void TrackField(const char* edge_name,
224
- const CleanupHookCallback& value,
225
- const char* node_name = nullptr);
226
219
  inline void TrackField(const char* edge_name,
227
220
  const uv_buf_t& value,
228
221
  const char* node_name = nullptr);
@@ -12,6 +12,10 @@ namespace node {
12
12
 
13
13
  class Environment;
14
14
 
15
+ namespace contextify {
16
+ class ContextifyContext;
17
+ }
18
+
15
19
  namespace loader {
16
20
 
17
21
  enum ScriptType : int {
@@ -28,6 +32,14 @@ enum HostDefinedOptions : int {
28
32
 
29
33
  class ModuleWrap : public BaseObject {
30
34
  public:
35
+ enum InternalFields {
36
+ kModuleWrapBaseField = BaseObject::kInternalFieldCount,
37
+ kURLSlot,
38
+ kSyntheticEvaluationStepsSlot,
39
+ kContextObjectSlot, // Object whose creation context is the target Context
40
+ kInternalFieldCount
41
+ };
42
+
31
43
  static void Initialize(v8::Local<v8::Object> target,
32
44
  v8::Local<v8::Value> unused,
33
45
  v8::Local<v8::Context> context,
@@ -38,16 +50,22 @@ class ModuleWrap : public BaseObject {
38
50
  v8::Local<v8::Object> meta);
39
51
 
40
52
  void MemoryInfo(MemoryTracker* tracker) const override {
41
- tracker->TrackField("url", url_);
42
53
  tracker->TrackField("resolve_cache", resolve_cache_);
43
54
  }
44
55
 
45
56
  inline uint32_t id() { return id_; }
57
+ v8::Local<v8::Context> context() const;
46
58
  static ModuleWrap* GetFromID(node::Environment*, uint32_t id);
47
59
 
48
60
  SET_MEMORY_INFO_NAME(ModuleWrap)
49
61
  SET_SELF_SIZE(ModuleWrap)
50
62
 
63
+ bool IsNotIndicativeOfMemoryLeakAtExit() const override {
64
+ // XXX: The garbage collection rules for ModuleWrap are *super* unclear.
65
+ // Do these objects ever get GC'd? Are we just okay with leaking them?
66
+ return true;
67
+ }
68
+
51
69
  private:
52
70
  ModuleWrap(Environment* env,
53
71
  v8::Local<v8::Object> object,
@@ -75,19 +93,18 @@ class ModuleWrap : public BaseObject {
75
93
  const v8::FunctionCallbackInfo<v8::Value>& args);
76
94
  static void CreateCachedData(const v8::FunctionCallbackInfo<v8::Value>& args);
77
95
 
78
- static v8::MaybeLocal<v8::Module> ResolveCallback(
96
+ static v8::MaybeLocal<v8::Module> ResolveModuleCallback(
79
97
  v8::Local<v8::Context> context,
80
98
  v8::Local<v8::String> specifier,
99
+ v8::Local<v8::FixedArray> import_assertions,
81
100
  v8::Local<v8::Module> referrer);
82
101
  static ModuleWrap* GetFromModule(node::Environment*, v8::Local<v8::Module>);
83
102
 
84
- v8::Global<v8::Function> synthetic_evaluation_steps_;
85
- bool synthetic_ = false;
86
103
  v8::Global<v8::Module> module_;
87
- v8::Global<v8::String> url_;
88
- bool linked_ = false;
89
104
  std::unordered_map<std::string, v8::Global<v8::Promise>> resolve_cache_;
90
- v8::Global<v8::Context> context_;
105
+ contextify::ContextifyContext* contextify_context_ = nullptr;
106
+ bool synthetic_ = false;
107
+ bool linked_ = false;
91
108
  uint32_t id_;
92
109
  };
93
110