@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
@@ -23,12 +23,14 @@ template <typename Options>
23
23
  void OptionsParser<Options>::AddOption(const char* name,
24
24
  const char* help_text,
25
25
  bool Options::* field,
26
- OptionEnvvarSettings env_setting) {
26
+ OptionEnvvarSettings env_setting,
27
+ bool default_is_true) {
27
28
  options_.emplace(name,
28
29
  OptionInfo{kBoolean,
29
30
  std::make_shared<SimpleOptionField<bool>>(field),
30
31
  env_setting,
31
- help_text});
32
+ help_text,
33
+ default_is_true});
32
34
  }
33
35
 
34
36
  template <typename Options>
@@ -138,10 +140,9 @@ void OptionsParser<Options>::Implies(const char* from,
138
140
  const char* to) {
139
141
  auto it = options_.find(to);
140
142
  CHECK_NE(it, options_.end());
141
- CHECK_EQ(it->second.type, kBoolean);
142
- implications_.emplace(from, Implication {
143
- it->second.field, true
144
- });
143
+ CHECK(it->second.type == kBoolean || it->second.type == kV8Option);
144
+ implications_.emplace(
145
+ from, Implication{it->second.type, to, it->second.field, true});
145
146
  }
146
147
 
147
148
  template <typename Options>
@@ -150,9 +151,8 @@ void OptionsParser<Options>::ImpliesNot(const char* from,
150
151
  auto it = options_.find(to);
151
152
  CHECK_NE(it, options_.end());
152
153
  CHECK_EQ(it->second.type, kBoolean);
153
- implications_.emplace(from, Implication {
154
- it->second.field, false
155
- });
154
+ implications_.emplace(
155
+ from, Implication{it->second.type, to, it->second.field, false});
156
156
  }
157
157
 
158
158
  template <typename Options>
@@ -188,7 +188,8 @@ auto OptionsParser<Options>::Convert(
188
188
  return OptionInfo{original.type,
189
189
  Convert(original.field, get_child),
190
190
  original.env_setting,
191
- original.help_text};
191
+ original.help_text,
192
+ original.default_is_true};
192
193
  }
193
194
 
194
195
  template <typename Options>
@@ -196,9 +197,11 @@ template <typename ChildOptions>
196
197
  auto OptionsParser<Options>::Convert(
197
198
  typename OptionsParser<ChildOptions>::Implication original,
198
199
  ChildOptions* (Options::* get_child)()) {
199
- return Implication {
200
- Convert(original.target_field, get_child),
201
- original.target_value
200
+ return Implication{
201
+ original.type,
202
+ original.name,
203
+ Convert(original.target_field, get_child),
204
+ original.target_value,
202
205
  };
203
206
  }
204
207
 
@@ -225,6 +228,10 @@ inline std::string RequiresArgumentErr(const std::string& arg) {
225
228
  return arg + " requires an argument";
226
229
  }
227
230
 
231
+ inline std::string NegationImpliesBooleanError(const std::string& arg) {
232
+ return arg + " is an invalid negation because it is not a boolean option";
233
+ }
234
+
228
235
  // We store some of the basic information around a single Parse call inside
229
236
  // this struct, to separate storage of command line arguments and their
230
237
  // handling. In particular, this makes it easier to introduce 'synthetic'
@@ -325,6 +332,13 @@ void OptionsParser<Options>::Parse(
325
332
  name[i] = '-';
326
333
  }
327
334
 
335
+ // Convert --no-foo to --foo and keep in mind that we're negating.
336
+ bool is_negation = false;
337
+ if (name.find("--no-") == 0) {
338
+ name.erase(2, 3); // remove no-
339
+ is_negation = true;
340
+ }
341
+
328
342
  {
329
343
  auto it = aliases_.end();
330
344
  // Expand aliases:
@@ -366,20 +380,36 @@ void OptionsParser<Options>::Parse(
366
380
  break;
367
381
  }
368
382
 
383
+ {
384
+ std::string implied_name = name;
385
+ if (is_negation) {
386
+ // Implications for negated options are defined with "--no-".
387
+ implied_name.insert(2, "no-");
388
+ }
389
+ auto implications = implications_.equal_range(implied_name);
390
+ for (auto it = implications.first; it != implications.second; ++it) {
391
+ if (it->second.type == kV8Option) {
392
+ v8_args->push_back(it->second.name);
393
+ } else {
394
+ *it->second.target_field->template Lookup<bool>(options) =
395
+ it->second.target_value;
396
+ }
397
+ }
398
+ }
399
+
369
400
  if (it == options_.end()) {
370
401
  v8_args->push_back(arg);
371
402
  continue;
372
403
  }
373
404
 
374
- {
375
- auto implications = implications_.equal_range(name);
376
- for (auto it = implications.first; it != implications.second; ++it) {
377
- *it->second.target_field->template Lookup<bool>(options) =
378
- it->second.target_value;
379
- }
405
+ const OptionInfo& info = it->second;
406
+
407
+ // Some V8 options can be negated and they are validated by V8 later.
408
+ if (is_negation && info.type != kBoolean && info.type != kV8Option) {
409
+ errors->push_back(NegationImpliesBooleanError(arg));
410
+ break;
380
411
  }
381
412
 
382
- const OptionInfo& info = it->second;
383
413
  std::string value;
384
414
  if (info.type != kBoolean && info.type != kNoOp && info.type != kV8Option) {
385
415
  if (equals_index != std::string::npos) {
@@ -408,7 +438,7 @@ void OptionsParser<Options>::Parse(
408
438
 
409
439
  switch (info.type) {
410
440
  case kBoolean:
411
- *Lookup<bool>(info.field, options) = true;
441
+ *Lookup<bool>(info.field, options) = !is_negation;
412
442
  break;
413
443
  case kInteger:
414
444
  *Lookup<int64_t>(info.field, options) = std::atoll(value.c_str());
@@ -11,6 +11,10 @@
11
11
  #include "node_mutex.h"
12
12
  #include "util.h"
13
13
 
14
+ #if HAVE_OPENSSL
15
+ #include "openssl/opensslv.h"
16
+ #endif
17
+
14
18
  namespace node {
15
19
 
16
20
  class HostPort {
@@ -100,26 +104,32 @@ class DebugOptions : public Options {
100
104
  class EnvironmentOptions : public Options {
101
105
  public:
102
106
  bool abort_on_uncaught_exception = false;
107
+ std::vector<std::string> conditions;
108
+ std::string dns_result_order;
103
109
  bool enable_source_maps = false;
104
- bool experimental_json_modules = false;
105
- bool experimental_modules = false;
110
+ bool experimental_fetch = true;
111
+ bool experimental_global_web_crypto = false;
112
+ bool experimental_https_modules = false;
106
113
  std::string experimental_specifier_resolution;
107
- std::string es_module_specifier_resolution;
108
114
  bool experimental_wasm_modules = false;
109
115
  bool experimental_import_meta_resolve = false;
110
116
  std::string module_type;
111
117
  std::string experimental_policy;
112
118
  std::string experimental_policy_integrity;
113
- bool has_policy_integrity_string;
114
- bool experimental_repl_await = false;
119
+ bool has_policy_integrity_string = false;
120
+ bool experimental_repl_await = true;
115
121
  bool experimental_vm_modules = false;
116
122
  bool expose_internals = false;
123
+ bool force_node_api_uncaught_exceptions_policy = false;
117
124
  bool frozen_intrinsics = false;
125
+ int64_t heap_snapshot_near_heap_limit = 0;
118
126
  std::string heap_snapshot_signal;
119
127
  uint64_t max_http_header_size = 16 * 1024;
120
- bool no_deprecation = false;
121
- bool no_force_async_hooks_checks = false;
122
- bool no_warnings = false;
128
+ bool deprecation = true;
129
+ bool force_async_hooks_checks = true;
130
+ bool allow_native_addons = true;
131
+ bool global_search_paths = true;
132
+ bool warnings = true;
123
133
  bool force_context_aware = false;
124
134
  bool pending_deprecation = false;
125
135
  bool preserve_symlinks = false;
@@ -138,16 +148,27 @@ class EnvironmentOptions : public Options {
138
148
  bool heap_prof = false;
139
149
  #endif // HAVE_INSPECTOR
140
150
  std::string redirect_warnings;
151
+ std::string diagnostic_dir;
152
+ bool test_runner = false;
153
+ bool test_only = false;
141
154
  bool test_udp_no_try_send = false;
142
155
  bool throw_deprecation = false;
156
+ bool trace_atomics_wait = false;
143
157
  bool trace_deprecation = false;
144
158
  bool trace_exit = false;
145
159
  bool trace_sync_io = false;
146
160
  bool trace_tls = false;
147
161
  bool trace_uncaught = false;
148
162
  bool trace_warnings = false;
163
+ bool extra_info_on_fatal_exception = true;
149
164
  std::string unhandled_rejections;
150
165
  std::string userland_loader;
166
+ bool verify_base_objects =
167
+ #ifdef DEBUG
168
+ true;
169
+ #else
170
+ false;
171
+ #endif // DEBUG
151
172
 
152
173
  bool syntax_check_only = false;
153
174
  bool has_eval_string = false;
@@ -183,7 +204,6 @@ class PerIsolateOptions : public Options {
183
204
  public:
184
205
  std::shared_ptr<EnvironmentOptions> per_env { new EnvironmentOptions() };
185
206
  bool track_heap_objects = false;
186
- bool no_node_snapshot = false;
187
207
  bool report_uncaught_exception = false;
188
208
  bool report_on_signal = false;
189
209
  std::string report_signal = "SIGUSR2";
@@ -210,6 +230,11 @@ class PerProcessOptions : public Options {
210
230
  bool zero_fill_all_buffers = false;
211
231
  bool debug_arraybuffer_allocations = false;
212
232
  std::string disable_proto;
233
+ bool build_snapshot = false;
234
+ // We enable the shared read-only heap which currently requires that the
235
+ // snapshot used in different isolates in the same process to be the same.
236
+ // Therefore --node-snapshot is a per-process option.
237
+ bool node_snapshot = true;
213
238
 
214
239
  std::vector<std::string> security_reverts;
215
240
  bool print_bash_completion = false;
@@ -222,10 +247,12 @@ class PerProcessOptions : public Options {
222
247
  #endif
223
248
 
224
249
  // Per-process because they affect singleton OpenSSL shared library state,
225
- // or are used once during process intialization.
250
+ // or are used once during process initialization.
226
251
  #if HAVE_OPENSSL
227
252
  std::string openssl_config;
228
253
  std::string tls_cipher_list = DEFAULT_CIPHER_LIST_CORE;
254
+ int64_t secure_heap = 0;
255
+ int64_t secure_heap_min = 2;
229
256
  #ifdef NODE_OPENSSL_CERT_STORE
230
257
  bool ssl_openssl_cert_store = true;
231
258
  #else
@@ -233,10 +260,11 @@ class PerProcessOptions : public Options {
233
260
  #endif
234
261
  bool use_openssl_ca = false;
235
262
  bool use_bundled_ca = false;
236
- #if NODE_FIPS_MODE
237
263
  bool enable_fips_crypto = false;
238
264
  bool force_fips_crypto = false;
239
265
  #endif
266
+ #if OPENSSL_VERSION_MAJOR >= 3
267
+ bool openssl_legacy_provider = false;
240
268
  #endif
241
269
 
242
270
  // Per-process because reports can be triggered outside a known V8 context.
@@ -290,7 +318,8 @@ class OptionsParser {
290
318
  void AddOption(const char* name,
291
319
  const char* help_text,
292
320
  bool Options::* field,
293
- OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
321
+ OptionEnvvarSettings env_setting = kDisallowedInEnvironment,
322
+ bool default_is_true = false);
294
323
  void AddOption(const char* name,
295
324
  const char* help_text,
296
325
  uint64_t Options::* field,
@@ -413,11 +442,14 @@ class OptionsParser {
413
442
  std::shared_ptr<BaseOptionField> field;
414
443
  OptionEnvvarSettings env_setting;
415
444
  std::string help_text;
445
+ bool default_is_true = false;
416
446
  };
417
447
 
418
448
  // An implied option is composed of the information on where to store a
419
449
  // specific boolean value (if another specific option is encountered).
420
450
  struct Implication {
451
+ OptionType type;
452
+ std::string name;
421
453
  std::shared_ptr<BaseOptionField> target_field;
422
454
  bool target_value;
423
455
  };
@@ -444,7 +476,7 @@ class OptionsParser {
444
476
  template <typename OtherOptions>
445
477
  friend class OptionsParser;
446
478
 
447
- friend void GetOptions(const v8::FunctionCallbackInfo<v8::Value>& args);
479
+ friend void GetCLIOptions(const v8::FunctionCallbackInfo<v8::Value>& args);
448
480
  friend std::string GetBashCompletion();
449
481
  };
450
482
 
@@ -460,7 +492,7 @@ void Parse(
460
492
  namespace per_process {
461
493
 
462
494
  extern Mutex cli_options_mutex;
463
- extern std::shared_ptr<PerProcessOptions> cli_options;
495
+ extern NODE_EXTERN_PRIVATE std::shared_ptr<PerProcessOptions> cli_options;
464
496
 
465
497
  } // namespace per_process
466
498
 
@@ -0,0 +1,168 @@
1
+ #ifndef SRC_NODE_PERF_H_
2
+ #define SRC_NODE_PERF_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "base_object-inl.h"
7
+ #include "histogram.h"
8
+ #include "node.h"
9
+ #include "node_internals.h"
10
+ #include "node_perf_common.h"
11
+
12
+ #include "v8.h"
13
+ #include "uv.h"
14
+
15
+ #include <string>
16
+
17
+ namespace node {
18
+
19
+ class Environment;
20
+ class ExternalReferenceRegistry;
21
+
22
+ namespace performance {
23
+
24
+ extern const uint64_t timeOrigin;
25
+
26
+ inline const char* GetPerformanceMilestoneName(
27
+ PerformanceMilestone milestone) {
28
+ switch (milestone) {
29
+ #define V(name, label) case NODE_PERFORMANCE_MILESTONE_##name: return label;
30
+ NODE_PERFORMANCE_MILESTONES(V)
31
+ #undef V
32
+ default:
33
+ UNREACHABLE();
34
+ }
35
+ }
36
+
37
+ inline PerformanceMilestone ToPerformanceMilestoneEnum(const char* str) {
38
+ #define V(name, label) \
39
+ if (strcmp(str, label) == 0) return NODE_PERFORMANCE_MILESTONE_##name;
40
+ NODE_PERFORMANCE_MILESTONES(V)
41
+ #undef V
42
+ return NODE_PERFORMANCE_MILESTONE_INVALID;
43
+ }
44
+
45
+ inline const char* GetPerformanceEntryTypeName(
46
+ PerformanceEntryType type) {
47
+ switch (type) {
48
+ #define V(name, label) case NODE_PERFORMANCE_ENTRY_TYPE_##name: return label;
49
+ NODE_PERFORMANCE_ENTRY_TYPES(V)
50
+ #undef V
51
+ default:
52
+ UNREACHABLE();
53
+ }
54
+ }
55
+
56
+ inline PerformanceEntryType ToPerformanceEntryTypeEnum(
57
+ const char* type) {
58
+ #define V(name, label) \
59
+ if (strcmp(type, label) == 0) return NODE_PERFORMANCE_ENTRY_TYPE_##name;
60
+ NODE_PERFORMANCE_ENTRY_TYPES(V)
61
+ #undef V
62
+ return NODE_PERFORMANCE_ENTRY_TYPE_INVALID;
63
+ }
64
+
65
+ enum PerformanceGCKind {
66
+ NODE_PERFORMANCE_GC_MAJOR = v8::GCType::kGCTypeMarkSweepCompact,
67
+ NODE_PERFORMANCE_GC_MINOR = v8::GCType::kGCTypeScavenge,
68
+ NODE_PERFORMANCE_GC_INCREMENTAL = v8::GCType::kGCTypeIncrementalMarking,
69
+ NODE_PERFORMANCE_GC_WEAKCB = v8::GCType::kGCTypeProcessWeakCallbacks
70
+ };
71
+
72
+ enum PerformanceGCFlags {
73
+ NODE_PERFORMANCE_GC_FLAGS_NO =
74
+ v8::GCCallbackFlags::kNoGCCallbackFlags,
75
+ NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED =
76
+ v8::GCCallbackFlags::kGCCallbackFlagConstructRetainedObjectInfos,
77
+ NODE_PERFORMANCE_GC_FLAGS_FORCED =
78
+ v8::GCCallbackFlags::kGCCallbackFlagForced,
79
+ NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING =
80
+ v8::GCCallbackFlags::kGCCallbackFlagSynchronousPhantomCallbackProcessing,
81
+ NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE =
82
+ v8::GCCallbackFlags::kGCCallbackFlagCollectAllAvailableGarbage,
83
+ NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY =
84
+ v8::GCCallbackFlags::kGCCallbackFlagCollectAllExternalMemory,
85
+ NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE =
86
+ v8::GCCallbackFlags::kGCCallbackScheduleIdleGarbageCollection
87
+ };
88
+
89
+ template <typename Traits>
90
+ struct PerformanceEntry {
91
+ using Details = typename Traits::Details;
92
+ std::string name;
93
+ double start_time;
94
+ double duration;
95
+ Details details;
96
+
97
+ PerformanceEntry(
98
+ const std::string& name_,
99
+ double start_time_,
100
+ double duration_,
101
+ const Details& details_)
102
+ : name(name_),
103
+ start_time(start_time_),
104
+ duration(duration_),
105
+ details(details_) {}
106
+
107
+ static v8::MaybeLocal<v8::Object> GetDetails(
108
+ Environment* env,
109
+ const PerformanceEntry<Traits>& entry) {
110
+ return Traits::GetDetails(env, entry);
111
+ }
112
+
113
+ void Notify(Environment* env) {
114
+ v8::HandleScope handle_scope(env->isolate());
115
+ v8::Context::Scope scope(env->context());
116
+ AliasedUint32Array& observers = env->performance_state()->observers;
117
+ if (env->performance_entry_callback().IsEmpty() ||
118
+ !observers[Traits::kType]) {
119
+ return;
120
+ }
121
+
122
+ v8::Local<v8::Object> detail;
123
+ if (!Traits::GetDetails(env, *this).ToLocal(&detail)) {
124
+ // TODO(@jasnell): Handle the error here
125
+ return;
126
+ }
127
+
128
+ v8::Local<v8::Value> argv[] = {
129
+ OneByteString(env->isolate(), name.c_str()),
130
+ OneByteString(env->isolate(), GetPerformanceEntryTypeName(Traits::kType)),
131
+ v8::Number::New(env->isolate(), start_time),
132
+ v8::Number::New(env->isolate(), duration),
133
+ detail
134
+ };
135
+
136
+ node::MakeSyncCallback(
137
+ env->isolate(),
138
+ env->context()->Global(),
139
+ env->performance_entry_callback(),
140
+ arraysize(argv),
141
+ argv);
142
+ }
143
+ };
144
+
145
+ struct GCPerformanceEntryTraits {
146
+ static constexpr PerformanceEntryType kType =
147
+ NODE_PERFORMANCE_ENTRY_TYPE_GC;
148
+ struct Details {
149
+ PerformanceGCKind kind;
150
+ PerformanceGCFlags flags;
151
+
152
+ Details(PerformanceGCKind kind_, PerformanceGCFlags flags_)
153
+ : kind(kind_), flags(flags_) {}
154
+ };
155
+
156
+ static v8::MaybeLocal<v8::Object> GetDetails(
157
+ Environment* env,
158
+ const PerformanceEntry<GCPerformanceEntryTraits>& entry);
159
+ };
160
+
161
+ using GCPerformanceEntry = PerformanceEntry<GCPerformanceEntryTraits>;
162
+
163
+ } // namespace performance
164
+ } // namespace node
165
+
166
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
167
+
168
+ #endif // SRC_NODE_PERF_H_
@@ -3,11 +3,13 @@
3
3
 
4
4
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
5
 
6
+ #include "aliased_buffer.h"
6
7
  #include "node.h"
7
8
  #include "uv.h"
8
9
  #include "v8.h"
9
10
 
10
11
  #include <algorithm>
12
+ #include <iostream>
11
13
  #include <map>
12
14
  #include <string>
13
15
 
@@ -30,13 +32,11 @@ extern uint64_t performance_v8_start;
30
32
 
31
33
 
32
34
  #define NODE_PERFORMANCE_ENTRY_TYPES(V) \
33
- V(NODE, "node") \
34
- V(MARK, "mark") \
35
- V(MEASURE, "measure") \
36
35
  V(GC, "gc") \
37
- V(FUNCTION, "function") \
36
+ V(HTTP, "http") \
38
37
  V(HTTP2, "http2") \
39
- V(HTTP, "http")
38
+ V(NET, "net") \
39
+ V(DNS, "dns")
40
40
 
41
41
  enum PerformanceMilestone {
42
42
  #define V(name, _) NODE_PERFORMANCE_MILESTONE_##name,
@@ -54,23 +54,17 @@ enum PerformanceEntryType {
54
54
 
55
55
  class PerformanceState {
56
56
  public:
57
- explicit PerformanceState(v8::Isolate* isolate) :
58
- root(
59
- isolate,
60
- sizeof(performance_state_internal)),
61
- milestones(
62
- isolate,
63
- offsetof(performance_state_internal, milestones),
64
- NODE_PERFORMANCE_MILESTONE_INVALID,
65
- root),
66
- observers(
67
- isolate,
68
- offsetof(performance_state_internal, observers),
69
- NODE_PERFORMANCE_ENTRY_TYPE_INVALID,
70
- root) {
71
- for (size_t i = 0; i < milestones.Length(); i++)
72
- milestones[i] = -1.;
73
- }
57
+ struct SerializeInfo {
58
+ AliasedBufferIndex root;
59
+ AliasedBufferIndex milestones;
60
+ AliasedBufferIndex observers;
61
+ };
62
+
63
+ explicit PerformanceState(v8::Isolate* isolate, const SerializeInfo* info);
64
+ SerializeInfo Serialize(v8::Local<v8::Context> context,
65
+ v8::SnapshotCreator* creator);
66
+ void Deserialize(v8::Local<v8::Context> context);
67
+ friend std::ostream& operator<<(std::ostream& o, const SerializeInfo& i);
74
68
 
75
69
  AliasedUint8Array root;
76
70
  AliasedFloat64Array milestones;
@@ -11,7 +11,6 @@
11
11
  #include "libplatform/libplatform.h"
12
12
  #include "node.h"
13
13
  #include "node_mutex.h"
14
- #include "tracing/agent.h"
15
14
  #include "uv.h"
16
15
 
17
16
  namespace node {
@@ -52,12 +51,14 @@ struct DelayedTask {
52
51
 
53
52
  // This acts as the foreground task runner for a given Isolate.
54
53
  class PerIsolatePlatformData :
54
+ public IsolatePlatformDelegate,
55
55
  public v8::TaskRunner,
56
56
  public std::enable_shared_from_this<PerIsolatePlatformData> {
57
57
  public:
58
58
  PerIsolatePlatformData(v8::Isolate* isolate, uv_loop_t* loop);
59
59
  ~PerIsolatePlatformData() override;
60
60
 
61
+ std::shared_ptr<v8::TaskRunner> GetForegroundTaskRunner() override;
61
62
  void PostTask(std::unique_ptr<v8::Task> task) override;
62
63
  void PostIdleTask(std::unique_ptr<v8::IdleTask> task) override;
63
64
  void PostDelayedTask(std::unique_ptr<v8::Task> task,
@@ -137,8 +138,9 @@ class WorkerThreadsTaskRunner {
137
138
  class NodePlatform : public MultiIsolatePlatform {
138
139
  public:
139
140
  NodePlatform(int thread_pool_size,
140
- node::tracing::TracingController* tracing_controller);
141
- ~NodePlatform() override = default;
141
+ v8::TracingController* tracing_controller,
142
+ v8::PageAllocator* page_allocator = nullptr);
143
+ ~NodePlatform() override;
142
144
 
143
145
  void DrainTasks(v8::Isolate* isolate) override;
144
146
  void Shutdown();
@@ -148,21 +150,19 @@ class NodePlatform : public MultiIsolatePlatform {
148
150
  void CallOnWorkerThread(std::unique_ptr<v8::Task> task) override;
149
151
  void CallDelayedOnWorkerThread(std::unique_ptr<v8::Task> task,
150
152
  double delay_in_seconds) override;
151
- void CallOnForegroundThread(v8::Isolate* isolate, v8::Task* task) override {
152
- UNREACHABLE();
153
- }
154
- void CallDelayedOnForegroundThread(v8::Isolate* isolate,
155
- v8::Task* task,
156
- double delay_in_seconds) override {
157
- UNREACHABLE();
158
- }
159
153
  bool IdleTasksEnabled(v8::Isolate* isolate) override;
160
154
  double MonotonicallyIncreasingTime() override;
161
155
  double CurrentClockTimeMillis() override;
162
- node::tracing::TracingController* GetTracingController() override;
156
+ v8::TracingController* GetTracingController() override;
163
157
  bool FlushForegroundTasks(v8::Isolate* isolate) override;
158
+ std::unique_ptr<v8::JobHandle> PostJob(
159
+ v8::TaskPriority priority,
160
+ std::unique_ptr<v8::JobTask> job_task) override;
164
161
 
165
162
  void RegisterIsolate(v8::Isolate* isolate, uv_loop_t* loop) override;
163
+ void RegisterIsolate(v8::Isolate* isolate,
164
+ IsolatePlatformDelegate* delegate) override;
165
+
166
166
  void UnregisterIsolate(v8::Isolate* isolate) override;
167
167
  void AddIsolateFinishedCallback(v8::Isolate* isolate,
168
168
  void (*callback)(void*), void* data) override;
@@ -171,16 +171,21 @@ class NodePlatform : public MultiIsolatePlatform {
171
171
  v8::Isolate* isolate) override;
172
172
 
173
173
  Platform::StackTracePrinter GetStackTracePrinter() override;
174
+ v8::PageAllocator* GetPageAllocator() override;
174
175
 
175
176
  private:
176
- std::shared_ptr<PerIsolatePlatformData> ForIsolate(v8::Isolate* isolate);
177
+ IsolatePlatformDelegate* ForIsolate(v8::Isolate* isolate);
178
+ std::shared_ptr<PerIsolatePlatformData> ForNodeIsolate(v8::Isolate* isolate);
177
179
 
178
180
  Mutex per_isolate_mutex_;
179
- std::unordered_map<v8::Isolate*,
180
- std::shared_ptr<PerIsolatePlatformData>> per_isolate_;
181
+ using DelegatePair = std::pair<
182
+ IsolatePlatformDelegate*, std::shared_ptr<PerIsolatePlatformData>>;
183
+ std::unordered_map<v8::Isolate*, DelegatePair> per_isolate_;
181
184
 
182
- node::tracing::TracingController* tracing_controller_;
185
+ v8::TracingController* tracing_controller_;
186
+ v8::PageAllocator* page_allocator_;
183
187
  std::shared_ptr<WorkerThreadsTaskRunner> worker_thread_task_runner_;
188
+ bool has_shut_down_ = false;
184
189
  };
185
190
 
186
191
  } // namespace node
@@ -0,0 +1,26 @@
1
+ #ifndef SRC_NODE_PROCESS_INL_H_
2
+ #define SRC_NODE_PROCESS_INL_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "node_process.h"
7
+ #include "v8.h"
8
+ #include "debug_utils-inl.h"
9
+
10
+ namespace node {
11
+
12
+ // Call process.emitWarning(str), fmt is a snprintf() format string
13
+ template <typename... Args>
14
+ inline v8::Maybe<bool> ProcessEmitWarning(Environment* env,
15
+ const char* fmt,
16
+ Args&&... args) {
17
+ std::string warning = SPrintF(fmt, std::forward<Args>(args)...);
18
+
19
+ return ProcessEmitWarningGeneric(env, warning.c_str());
20
+ }
21
+
22
+ } // namespace node
23
+
24
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
25
+
26
+ #endif // SRC_NODE_PROCESS_INL_H_