@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
@@ -5,6 +5,8 @@
5
5
 
6
6
  #include "aliased_buffer.h"
7
7
 
8
+ struct nghttp2_rcbuf;
9
+
8
10
  namespace node {
9
11
  namespace http2 {
10
12
 
@@ -56,13 +58,6 @@ namespace http2 {
56
58
  IDX_OPTIONS_FLAGS
57
59
  };
58
60
 
59
- enum Http2PaddingBufferFields {
60
- PADDING_BUF_FRAME_LENGTH,
61
- PADDING_BUF_MAX_PAYLOAD_LENGTH,
62
- PADDING_BUF_RETURN_VALUE,
63
- PADDING_BUF_FIELD_COUNT
64
- };
65
-
66
61
  enum Http2StreamStatisticsIndex {
67
62
  IDX_STREAM_STATS_ID,
68
63
  IDX_STREAM_STATS_TIMETOFIRSTBYTE,
@@ -86,58 +81,54 @@ namespace http2 {
86
81
  IDX_SESSION_STATS_COUNT
87
82
  };
88
83
 
89
- class Http2State {
84
+ class Http2State : public BaseObject {
90
85
  public:
91
- explicit Http2State(v8::Isolate* isolate) :
92
- root_buffer(
93
- isolate,
94
- sizeof(http2_state_internal)),
95
- session_state_buffer(
96
- isolate,
97
- offsetof(http2_state_internal, session_state_buffer),
98
- IDX_SESSION_STATE_COUNT,
99
- root_buffer),
100
- stream_state_buffer(
101
- isolate,
102
- offsetof(http2_state_internal, stream_state_buffer),
103
- IDX_STREAM_STATE_COUNT,
104
- root_buffer),
105
- stream_stats_buffer(
106
- isolate,
107
- offsetof(http2_state_internal, stream_stats_buffer),
108
- IDX_STREAM_STATS_COUNT,
109
- root_buffer),
110
- session_stats_buffer(
111
- isolate,
112
- offsetof(http2_state_internal, session_stats_buffer),
113
- IDX_SESSION_STATS_COUNT,
114
- root_buffer),
115
- padding_buffer(
116
- isolate,
117
- offsetof(http2_state_internal, padding_buffer),
118
- PADDING_BUF_FIELD_COUNT,
119
- root_buffer),
120
- options_buffer(
121
- isolate,
122
- offsetof(http2_state_internal, options_buffer),
123
- IDX_OPTIONS_FLAGS + 1,
124
- root_buffer),
125
- settings_buffer(
126
- isolate,
127
- offsetof(http2_state_internal, settings_buffer),
128
- IDX_SETTINGS_COUNT + 1,
129
- root_buffer) {
130
- }
86
+ Http2State(Environment* env, v8::Local<v8::Object> obj)
87
+ : BaseObject(env, obj),
88
+ root_buffer(env->isolate(), sizeof(http2_state_internal)),
89
+ session_state_buffer(
90
+ env->isolate(),
91
+ offsetof(http2_state_internal, session_state_buffer),
92
+ IDX_SESSION_STATE_COUNT,
93
+ root_buffer),
94
+ stream_state_buffer(
95
+ env->isolate(),
96
+ offsetof(http2_state_internal, stream_state_buffer),
97
+ IDX_STREAM_STATE_COUNT,
98
+ root_buffer),
99
+ stream_stats_buffer(
100
+ env->isolate(),
101
+ offsetof(http2_state_internal, stream_stats_buffer),
102
+ IDX_STREAM_STATS_COUNT,
103
+ root_buffer),
104
+ session_stats_buffer(
105
+ env->isolate(),
106
+ offsetof(http2_state_internal, session_stats_buffer),
107
+ IDX_SESSION_STATS_COUNT,
108
+ root_buffer),
109
+ options_buffer(env->isolate(),
110
+ offsetof(http2_state_internal, options_buffer),
111
+ IDX_OPTIONS_FLAGS + 1,
112
+ root_buffer),
113
+ settings_buffer(env->isolate(),
114
+ offsetof(http2_state_internal, settings_buffer),
115
+ IDX_SETTINGS_COUNT + 1,
116
+ root_buffer) {}
131
117
 
132
118
  AliasedUint8Array root_buffer;
133
119
  AliasedFloat64Array session_state_buffer;
134
120
  AliasedFloat64Array stream_state_buffer;
135
121
  AliasedFloat64Array stream_stats_buffer;
136
122
  AliasedFloat64Array session_stats_buffer;
137
- AliasedUint32Array padding_buffer;
138
123
  AliasedUint32Array options_buffer;
139
124
  AliasedUint32Array settings_buffer;
140
125
 
126
+ void MemoryInfo(MemoryTracker* tracker) const override;
127
+ SET_SELF_SIZE(Http2State)
128
+ SET_MEMORY_INFO_NAME(Http2State)
129
+
130
+ static constexpr FastStringKey type_name { "http2" };
131
+
141
132
  private:
142
133
  struct http2_state_internal {
143
134
  // doubles first so that they are always sizeof(double)-aligned
@@ -145,7 +136,6 @@ class Http2State {
145
136
  double stream_state_buffer[IDX_STREAM_STATE_COUNT];
146
137
  double stream_stats_buffer[IDX_STREAM_STATS_COUNT];
147
138
  double session_stats_buffer[IDX_SESSION_STATS_COUNT];
148
- uint32_t padding_buffer[PADDING_BUF_FIELD_COUNT];
149
139
  uint32_t options_buffer[IDX_OPTIONS_FLAGS + 1];
150
140
  uint32_t settings_buffer[IDX_SETTINGS_COUNT + 1];
151
141
  };
@@ -31,8 +31,7 @@ NgHeaders<T>::NgHeaders(Environment* env, v8::Local<v8::Array> headers) {
31
31
  count_ * sizeof(nv_t) +
32
32
  header_string_len);
33
33
 
34
- char* start = reinterpret_cast<char*>(
35
- RoundUp(reinterpret_cast<uintptr_t>(*buf_), alignof(nv_t)));
34
+ char* start = AlignUp(buf_.out(), alignof(nv_t));
36
35
  char* header_contents = start + (count_ * sizeof(nv_t));
37
36
  nv_t* const nva = reinterpret_cast<nv_t*>(start);
38
37
 
@@ -56,13 +55,14 @@ NgHeaders<T>::NgHeaders(Environment* env, v8::Local<v8::Array> headers) {
56
55
  return;
57
56
  }
58
57
 
59
- nva[n].flags = T::kNoneFlag;
60
58
  nva[n].name = reinterpret_cast<uint8_t*>(p);
61
59
  nva[n].namelen = strlen(p);
62
60
  p += nva[n].namelen + 1;
63
61
  nva[n].value = reinterpret_cast<uint8_t*>(p);
64
62
  nva[n].valuelen = strlen(p);
65
63
  p += nva[n].valuelen + 1;
64
+ nva[n].flags = *p;
65
+ p++;
66
66
  }
67
67
  }
68
68
 
@@ -76,6 +76,14 @@ size_t GetServerMaxHeaderPairs(size_t max_header_pairs) {
76
76
  return std::max(max_header_pairs, min_header_pairs);
77
77
  }
78
78
 
79
+ template <typename allocator_t>
80
+ std::string NgHeaderBase<allocator_t>::ToString() const {
81
+ std::string ret = name();
82
+ ret += " = ";
83
+ ret += value();
84
+ return ret;
85
+ }
86
+
79
87
  template <typename T>
80
88
  bool NgHeader<T>::IsZeroLength(
81
89
  NgHeader<T>::rcbuf_t* name,
@@ -123,7 +131,8 @@ NgHeader<T>::NgHeader(
123
131
 
124
132
  template <typename T>
125
133
  NgHeader<T>::NgHeader(NgHeader<T>&& other) noexcept
126
- : name_(std::move(other.name_)),
134
+ : env_(other.env_),
135
+ name_(std::move(other.name_)),
127
136
  value_(std::move(other.value_)),
128
137
  token_(other.token_),
129
138
  flags_(other.flags_) {
@@ -132,6 +141,12 @@ NgHeader<T>::NgHeader(NgHeader<T>&& other) noexcept
132
141
  other.env_ = nullptr;
133
142
  }
134
143
 
144
+ template <typename T>
145
+ void NgHeader<T>::MemoryInfo(MemoryTracker* tracker) const {
146
+ tracker->TrackField("name", name_);
147
+ tracker->TrackField("value", value_);
148
+ }
149
+
135
150
  template <typename T>
136
151
  v8::MaybeLocal<v8::String> NgHeader<T>::GetName(
137
152
  NgHeader<T>::allocator_t* allocator) const {
@@ -143,7 +158,7 @@ v8::MaybeLocal<v8::String> NgHeader<T>::GetName(
143
158
  // If header_name is not nullptr, then it is a known header with
144
159
  // a statically defined name. We can safely internalize it here.
145
160
  if (header_name != nullptr) {
146
- auto& static_str_map = env_->isolate_data()->http_static_strs;
161
+ auto& static_str_map = env_->isolate_data()->static_str_map;
147
162
  v8::Eternal<v8::String> eternal = static_str_map[header_name];
148
163
  if (eternal.IsEmpty()) {
149
164
  v8::Local<v8::String> str = OneByteString(env_->isolate(), header_name);
@@ -176,6 +191,11 @@ size_t NgHeader<T>::length() const {
176
191
  return name_.len() + value_.len();
177
192
  }
178
193
 
194
+ template <typename T>
195
+ uint8_t NgHeader<T>::flags() const {
196
+ return flags_;
197
+ }
198
+
179
199
  } // namespace node
180
200
 
181
201
  #endif // SRC_NODE_HTTP_COMMON_INL_H_
@@ -196,7 +196,7 @@ enum http_status_codes {
196
196
  // Unlike the HTTP/1 implementation, the HTTP/2 implementation is not limited
197
197
  // to a fixed number of known supported HTTP methods. These constants, therefore
198
198
  // are provided strictly as a convenience to users and are exposed via the
199
- // require('http2').constants object.
199
+ // require('node:http2').constants object.
200
200
  #define HTTP_KNOWN_METHODS(V) \
201
201
  V(ACL, "ACL") \
202
202
  V(BASELINE_CONTROL, "BASELINE-CONTROL") \
@@ -270,7 +270,7 @@ class NgHeaders {
270
270
  MaybeStackBuffer<char, 3000> buf_;
271
271
  };
272
272
 
273
- // The ng libraries (nghttp2 and nghttp3) each use nearly identical
273
+ // The ng libraries use nearly identical
274
274
  // reference counted structures for retaining header name and value
275
275
  // information in memory until the application is done with it.
276
276
  // The NgRcBufPointer is an intelligent pointer capable of working
@@ -409,7 +409,7 @@ class NgRcBufPointer : public MemoryRetainer {
409
409
  NgRcBufPointer<T> ptr) {
410
410
  Environment* env = allocator->env();
411
411
  if (ptr.IsStatic()) {
412
- auto& static_str_map = env->isolate_data()->http_static_strs;
412
+ auto& static_str_map = env->isolate_data()->static_str_map;
413
413
  const char* header_name = reinterpret_cast<const char*>(ptr.data());
414
414
  v8::Eternal<v8::String>& eternal = static_str_map[header_name];
415
415
  if (eternal.IsEmpty()) {
@@ -453,6 +453,17 @@ class NgRcBufPointer : public MemoryRetainer {
453
453
  bool internalizable_ = false;
454
454
  };
455
455
 
456
+ template <typename allocator_t>
457
+ struct NgHeaderBase : public MemoryRetainer {
458
+ virtual v8::MaybeLocal<v8::String> GetName(allocator_t* allocator) const = 0;
459
+ virtual v8::MaybeLocal<v8::String> GetValue(allocator_t* allocator) const = 0;
460
+ virtual std::string name() const = 0;
461
+ virtual std::string value() const = 0;
462
+ virtual size_t length() const = 0;
463
+ virtual uint8_t flags() const = 0;
464
+ virtual std::string ToString() const;
465
+ };
466
+
456
467
  // The ng libraries use nearly identical structs to represent
457
468
  // received http headers. The NgHeader class wraps those in a
458
469
  // consistent way and allows converting the name and value to
@@ -461,7 +472,7 @@ class NgRcBufPointer : public MemoryRetainer {
461
472
  // memory tracking, and implementation of static utility functions.
462
473
  // See Http2HeaderTraits in node_http2.h for an example.
463
474
  template <typename T>
464
- class NgHeader : public MemoryRetainer {
475
+ class NgHeader final : public NgHeaderBase<typename T::allocator_t> {
465
476
  public:
466
477
  typedef typename T::rcbufferpointer_t rcbufferpointer_t;
467
478
  typedef typename T::rcbufferpointer_t::rcbuf_t rcbuf_t;
@@ -487,28 +498,21 @@ class NgHeader : public MemoryRetainer {
487
498
  // object to the v8 string. Once the v8 string is garbage collected,
488
499
  // the reference counter will be decremented.
489
500
 
490
- inline v8::MaybeLocal<v8::String> GetName(allocator_t* allocator) const;
491
- inline v8::MaybeLocal<v8::String> GetValue(allocator_t* allocator) const;
501
+ inline v8::MaybeLocal<v8::String> GetName(
502
+ allocator_t* allocator) const override;
503
+ inline v8::MaybeLocal<v8::String> GetValue(
504
+ allocator_t* allocator) const override;
492
505
 
493
- inline std::string name() const;
494
- inline std::string value() const;
495
- inline size_t length() const;
506
+ inline std::string name() const override;
507
+ inline std::string value() const override;
508
+ inline size_t length() const override;
509
+ inline uint8_t flags() const override;
496
510
 
497
- void MemoryInfo(MemoryTracker* tracker) const override {
498
- tracker->TrackField("name", name_);
499
- tracker->TrackField("value", value_);
500
- }
511
+ void MemoryInfo(MemoryTracker* tracker) const override;
501
512
 
502
513
  SET_MEMORY_INFO_NAME(NgHeader)
503
514
  SET_SELF_SIZE(NgHeader)
504
515
 
505
- std::string ToString() const {
506
- std::string ret = name();
507
- ret += " = ";
508
- ret += value();
509
- return ret;
510
- }
511
-
512
516
  private:
513
517
  Environment* env_;
514
518
  rcbufferpointer_t name_;
@@ -36,11 +36,12 @@
36
36
  #include <string>
37
37
 
38
38
  namespace node {
39
-
40
39
  namespace i18n {
41
40
 
42
41
  bool InitializeICUDirectory(const std::string& path);
43
42
 
43
+ void SetDefaultTimeZone(const char* tzid);
44
+
44
45
  enum idna_mode {
45
46
  // Default mode for maximum compatibility.
46
47
  IDNA_DEFAULT,
@@ -39,11 +39,6 @@
39
39
  #include <string>
40
40
  #include <vector>
41
41
 
42
- // Custom constants used by both node_constants.cc and node_zlib.cc
43
- #define Z_MIN_WINDOWBITS 8
44
- #define Z_MAX_WINDOWBITS 15
45
- #define Z_DEFAULT_WINDOWBITS 15
46
-
47
42
  struct sockaddr;
48
43
 
49
44
  namespace node {
@@ -55,7 +50,6 @@ class NativeModuleLoader;
55
50
  namespace per_process {
56
51
  extern Mutex env_var_mutex;
57
52
  extern uint64_t node_start_time;
58
- extern bool v8_is_profiling;
59
53
  } // namespace per_process
60
54
 
61
55
  // Forward declaration
@@ -64,7 +58,7 @@ class Environment;
64
58
  // Convert a struct sockaddr to a { address: '1.2.3.4', port: 1234 } JS object.
65
59
  // Sets address and port properties on the info object and returns it.
66
60
  // If |info| is omitted, a new object is returned.
67
- v8::Local<v8::Object> AddressToJS(
61
+ v8::MaybeLocal<v8::Object> AddressToJS(
68
62
  Environment* env,
69
63
  const sockaddr* addr,
70
64
  v8::Local<v8::Object> info = v8::Local<v8::Object>());
@@ -91,22 +85,15 @@ void PrintCaughtException(v8::Isolate* isolate,
91
85
  const v8::TryCatch& try_catch);
92
86
 
93
87
  void ResetStdio(); // Safe to call more than once and from signal handlers.
94
- void SignalExit(int signo);
95
88
  #ifdef __POSIX__
96
- void RegisterSignalHandler(int signal,
97
- void (*handler)(int signal),
98
- bool reset_handler = false);
89
+ void SignalExit(int signal, siginfo_t* info, void* ucontext);
99
90
  #endif
100
91
 
101
92
  std::string GetProcessTitle(const char* default_title);
102
93
  std::string GetHumanReadableProcessName();
103
94
 
104
- void InitializeContextRuntime(v8::Local<v8::Context>);
105
- bool InitializePrimordials(v8::Local<v8::Context> context);
106
-
107
- namespace task_queue {
108
- void PromiseRejectCallback(v8::PromiseRejectMessage message);
109
- } // namespace task_queue
95
+ v8::Maybe<bool> InitializeContextRuntime(v8::Local<v8::Context> context);
96
+ v8::Maybe<bool> InitializePrimordials(v8::Local<v8::Context> context);
110
97
 
111
98
  class NodeArrayBufferAllocator : public ArrayBufferAllocator {
112
99
  public:
@@ -115,7 +102,7 @@ class NodeArrayBufferAllocator : public ArrayBufferAllocator {
115
102
  void* Allocate(size_t size) override; // Defined in src/node.cc
116
103
  void* AllocateUninitialized(size_t size) override;
117
104
  void Free(void* data, size_t size) override;
118
- virtual void* Reallocate(void* data, size_t old_size, size_t size);
105
+ void* Reallocate(void* data, size_t old_size, size_t size) override;
119
106
  virtual void RegisterPointer(void* data, size_t size) {
120
107
  total_mem_usage_.fetch_add(size, std::memory_order_relaxed);
121
108
  }
@@ -163,8 +150,7 @@ v8::MaybeLocal<v8::Object> New(Environment* env,
163
150
  // ArrayBuffer::Allocator().
164
151
  v8::MaybeLocal<v8::Object> New(Environment* env,
165
152
  char* data,
166
- size_t length,
167
- bool uses_malloc);
153
+ size_t length);
168
154
  // Creates a Buffer instance over an existing ArrayBuffer.
169
155
  v8::MaybeLocal<v8::Uint8Array> New(Environment* env,
170
156
  v8::Local<v8::ArrayBuffer> ab,
@@ -186,7 +172,7 @@ static v8::MaybeLocal<v8::Object> New(Environment* env,
186
172
  const size_t len_in_bytes = buf->length() * sizeof(buf->out()[0]);
187
173
 
188
174
  if (buf->IsAllocated())
189
- ret = New(env, src, len_in_bytes, true);
175
+ ret = New(env, src, len_in_bytes);
190
176
  else if (!buf->IsInvalidated())
191
177
  ret = Copy(env, src, len_in_bytes);
192
178
 
@@ -209,6 +195,12 @@ v8::MaybeLocal<v8::Value> InternalMakeCallback(
209
195
  v8::Local<v8::Value> argv[],
210
196
  async_context asyncContext);
211
197
 
198
+ v8::MaybeLocal<v8::Value> MakeSyncCallback(v8::Isolate* isolate,
199
+ v8::Local<v8::Object> recv,
200
+ v8::Local<v8::Function> callback,
201
+ int argc,
202
+ v8::Local<v8::Value> argv[]);
203
+
212
204
  class InternalCallbackScope {
213
205
  public:
214
206
  enum Flags {
@@ -291,7 +283,7 @@ class ThreadPoolWork {
291
283
 
292
284
  #if defined(__POSIX__) && !defined(__ANDROID__) && !defined(__CloudABI__)
293
285
  #define NODE_IMPLEMENTS_POSIX_CREDENTIALS 1
294
- #endif // __POSIX__ && !defined(__ANDROID__) && !defined(__CloudABI__)
286
+ #endif // defined(__POSIX__) && !defined(__ANDROID__) && !defined(__CloudABI__)
295
287
 
296
288
  namespace credentials {
297
289
  bool SafeGetenv(const char* key, std::string* text, Environment* env = nullptr);
@@ -301,8 +293,10 @@ void DefineZlibConstants(v8::Local<v8::Object> target);
301
293
  v8::Isolate* NewIsolate(v8::Isolate::CreateParams* params,
302
294
  uv_loop_t* event_loop,
303
295
  MultiIsolatePlatform* platform);
296
+ // This overload automatically picks the right 'main_script_id' if no callback
297
+ // was provided by the embedder.
304
298
  v8::MaybeLocal<v8::Value> StartExecution(Environment* env,
305
- const char* main_script_id);
299
+ StartExecutionCallback cb = nullptr);
306
300
  v8::MaybeLocal<v8::Object> GetPerContextExports(v8::Local<v8::Context> context);
307
301
  v8::MaybeLocal<v8::Value> ExecuteBootstrapper(
308
302
  Environment* env,
@@ -317,8 +311,23 @@ struct InitializationResult {
317
311
  std::vector<std::string> exec_args;
318
312
  bool early_return = false;
319
313
  };
320
- InitializationResult InitializeOncePerProcess(int argc, char** argv);
321
- void TearDownOncePerProcess();
314
+
315
+ enum InitializationSettingsFlags : uint64_t {
316
+ kDefaultInitialization = 1 << 0,
317
+ kInitializeV8 = 1 << 1,
318
+ kRunPlatformInit = 1 << 2,
319
+ kInitOpenSSL = 1 << 3
320
+ };
321
+
322
+ // TODO(codebytere): eventually document and expose to embedders.
323
+ InitializationResult NODE_EXTERN_PRIVATE InitializeOncePerProcess(int argc,
324
+ char** argv);
325
+ InitializationResult NODE_EXTERN_PRIVATE InitializeOncePerProcess(
326
+ int argc,
327
+ char** argv,
328
+ InitializationSettingsFlags flags,
329
+ ProcessFlags::Flags process_flags = ProcessFlags::kNoFlags);
330
+ void NODE_EXTERN_PRIVATE TearDownOncePerProcess();
322
331
  void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s);
323
332
  void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s);
324
333
  void SetIsolateCreateParamsForNode(v8::Isolate::CreateParams* params);
@@ -370,22 +379,9 @@ class DiagnosticFilename {
370
379
  std::string filename_;
371
380
  };
372
381
 
373
- class TraceEventScope {
374
- public:
375
- TraceEventScope(const char* category,
376
- const char* name,
377
- void* id) : category_(category), name_(name), id_(id) {
378
- TRACE_EVENT_NESTABLE_ASYNC_BEGIN0(category_, name_, id_);
379
- }
380
- ~TraceEventScope() {
381
- TRACE_EVENT_NESTABLE_ASYNC_END0(category_, name_, id_);
382
- }
383
-
384
- private:
385
- const char* category_;
386
- const char* name_;
387
- void* id_;
388
- };
382
+ namespace heap {
383
+ v8::Maybe<void> WriteSnapshot(Environment* env, const char* filename);
384
+ }
389
385
 
390
386
  namespace heap {
391
387
 
@@ -401,6 +397,8 @@ namespace fs {
401
397
  std::string Basename(const std::string& str, const std::string& extension);
402
398
  } // namespace fs
403
399
 
400
+ node_module napi_module_to_node_module(const napi_module* mod);
401
+
404
402
  } // namespace node
405
403
 
406
404
  #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
@@ -13,6 +13,10 @@
13
13
 
14
14
  namespace node {
15
15
 
16
+ class ExternalReferenceRegistry;
17
+ struct EnvSerializeInfo;
18
+ struct SnapshotData;
19
+
16
20
  // TODO(joyeecheung): align this with the Worker/WorkerThreadData class.
17
21
  // We may be able to create an abstract class to reuse some of the routines.
18
22
  class NodeMainInstance {
@@ -45,30 +49,22 @@ class NodeMainInstance {
45
49
  void Dispose();
46
50
 
47
51
  // Create a main instance that owns the isolate
48
- NodeMainInstance(
49
- v8::Isolate::CreateParams* params,
50
- uv_loop_t* event_loop,
51
- MultiIsolatePlatform* platform,
52
- const std::vector<std::string>& args,
53
- const std::vector<std::string>& exec_args,
54
- const std::vector<size_t>* per_isolate_data_indexes = nullptr);
52
+ NodeMainInstance(const SnapshotData* snapshot_data,
53
+ uv_loop_t* event_loop,
54
+ MultiIsolatePlatform* platform,
55
+ const std::vector<std::string>& args,
56
+ const std::vector<std::string>& exec_args);
55
57
  ~NodeMainInstance();
56
58
 
57
59
  // Start running the Node.js instances, return the exit code when finished.
58
60
  int Run();
61
+ void Run(int* exit_code, Environment* env);
59
62
 
60
63
  IsolateData* isolate_data() { return isolate_data_.get(); }
61
64
 
62
- // TODO(joyeecheung): align this with the CreateEnvironment exposed in node.h
63
- // and the environment creation routine in workers somehow.
64
- std::unique_ptr<Environment> CreateMainEnvironment(int* exit_code);
65
-
66
- // If nullptr is returned, the binary is not built with embedded
67
- // snapshot.
68
- static const std::vector<size_t>* GetIsolateDataIndexes();
69
- static v8::StartupData* GetEmbeddedSnapshotBlob();
65
+ DeleteFnPtr<Environment, FreeEnvironment> CreateMainEnvironment(
66
+ int* exit_code);
70
67
 
71
- static const size_t kNodeContextIndex = 0;
72
68
  NodeMainInstance(const NodeMainInstance&) = delete;
73
69
  NodeMainInstance& operator=(const NodeMainInstance&) = delete;
74
70
  NodeMainInstance(NodeMainInstance&&) = delete;
@@ -81,14 +77,15 @@ class NodeMainInstance {
81
77
  const std::vector<std::string>& args,
82
78
  const std::vector<std::string>& exec_args);
83
79
 
80
+ static std::unique_ptr<ExternalReferenceRegistry> registry_;
84
81
  std::vector<std::string> args_;
85
82
  std::vector<std::string> exec_args_;
86
83
  std::unique_ptr<ArrayBufferAllocator> array_buffer_allocator_;
87
84
  v8::Isolate* isolate_;
88
85
  MultiIsolatePlatform* platform_;
89
86
  std::unique_ptr<IsolateData> isolate_data_;
90
- bool owns_isolate_ = false;
91
- bool deserialize_mode_ = false;
87
+ std::unique_ptr<v8::Isolate::CreateParams> isolate_params_;
88
+ const SnapshotData* snapshot_data_ = nullptr;
92
89
  };
93
90
 
94
91
  } // namespace node
File without changes
@@ -8,7 +8,7 @@
8
8
  namespace node {
9
9
  namespace mem {
10
10
 
11
- // Both ngtcp2 and nghttp2 allow custom allocators that
11
+ // nghttp2 allows custom allocators that
12
12
  // follow exactly the same structure and behavior, but
13
13
  // use different struct names. To allow for code re-use,
14
14
  // the NgLibMemoryManager template class can be used for both.