@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
@@ -3,11 +3,14 @@
3
3
 
4
4
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
5
 
6
+ #include <optional>
6
7
  #include <unordered_map>
7
8
  #include "node_messaging.h"
8
9
  #include "uv.h"
9
10
 
10
11
  namespace node {
12
+
13
+ struct SnapshotData;
11
14
  namespace worker {
12
15
 
13
16
  class WorkerThreadData;
@@ -16,6 +19,7 @@ enum ResourceLimits {
16
19
  kMaxYoungGenerationSizeMb,
17
20
  kMaxOldGenerationSizeMb,
18
21
  kCodeRangeSizeMb,
22
+ kStackSizeMb,
19
23
  kTotalResourceLimitCount
20
24
  };
21
25
 
@@ -27,15 +31,19 @@ class Worker : public AsyncWrap {
27
31
  const std::string& url,
28
32
  std::shared_ptr<PerIsolateOptions> per_isolate_opts,
29
33
  std::vector<std::string>&& exec_argv,
30
- std::shared_ptr<KVStore> env_vars);
34
+ std::shared_ptr<KVStore> env_vars,
35
+ const SnapshotData* snapshot_data);
31
36
  ~Worker() override;
32
37
 
33
38
  // Run the worker. This is only called from the worker thread.
34
39
  void Run();
35
40
 
36
41
  // Forcibly exit the thread with a specified exit code. This may be called
37
- // from any thread.
38
- void Exit(int code);
42
+ // from any thread. `error_code` and `error_message` can be used to create
43
+ // a custom `'error'` event before emitting `'exit'`.
44
+ void Exit(int code,
45
+ const char* error_code = nullptr,
46
+ const char* error_message = nullptr);
39
47
 
40
48
  // Wait for the worker thread to stop (in a blocking manner).
41
49
  void JoinThread();
@@ -43,11 +51,13 @@ class Worker : public AsyncWrap {
43
51
  template <typename Fn>
44
52
  inline bool RequestInterrupt(Fn&& cb);
45
53
 
46
- void MemoryInfo(MemoryTracker* tracker) const override;
54
+ SET_NO_MEMORY_INFO()
47
55
  SET_MEMORY_INFO_NAME(Worker)
48
56
  SET_SELF_SIZE(Worker)
57
+ bool IsNotIndicativeOfMemoryLeakAtExit() const override;
49
58
 
50
59
  bool is_stopped() const;
60
+ const SnapshotData* snapshot_data() const { return snapshot_data_; }
51
61
 
52
62
  static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
53
63
  static void CloneParentEnvVars(
@@ -55,15 +65,18 @@ class Worker : public AsyncWrap {
55
65
  static void SetEnvVars(const v8::FunctionCallbackInfo<v8::Value>& args);
56
66
  static void StartThread(const v8::FunctionCallbackInfo<v8::Value>& args);
57
67
  static void StopThread(const v8::FunctionCallbackInfo<v8::Value>& args);
68
+ static void HasRef(const v8::FunctionCallbackInfo<v8::Value>& args);
58
69
  static void Ref(const v8::FunctionCallbackInfo<v8::Value>& args);
59
70
  static void Unref(const v8::FunctionCallbackInfo<v8::Value>& args);
60
71
  static void GetResourceLimits(
61
72
  const v8::FunctionCallbackInfo<v8::Value>& args);
62
73
  v8::Local<v8::Float64Array> GetResourceLimits(v8::Isolate* isolate) const;
63
74
  static void TakeHeapSnapshot(const v8::FunctionCallbackInfo<v8::Value>& args);
75
+ static void LoopIdleTime(const v8::FunctionCallbackInfo<v8::Value>& args);
76
+ static void LoopStartTime(const v8::FunctionCallbackInfo<v8::Value>& args);
64
77
 
65
78
  private:
66
- void CreateEnvMessagePort(Environment* env);
79
+ bool CreateEnvMessagePort(Environment* env);
67
80
  static size_t NearHeapLimit(void* data, size_t current_heap_limit,
68
81
  size_t initial_heap_limit);
69
82
 
@@ -73,21 +86,17 @@ class Worker : public AsyncWrap {
73
86
 
74
87
  MultiIsolatePlatform* platform_;
75
88
  v8::Isolate* isolate_ = nullptr;
76
- bool start_profiler_idle_notifier_;
77
- uv_thread_t tid_;
89
+ std::optional<uv_thread_t> tid_; // Set while the thread is running
78
90
 
79
- #if HAVE_INSPECTOR
80
- std::unique_ptr<inspector::ParentInspectorHandle> inspector_parent_handle_;
81
- #endif
91
+ std::unique_ptr<InspectorParentHandle> inspector_parent_handle_;
82
92
 
83
93
  // This mutex protects access to all variables listed below it.
84
94
  mutable Mutex mutex_;
85
95
 
86
- bool thread_joined_ = true;
87
96
  const char* custom_error_ = nullptr;
88
97
  std::string custom_error_str_;
89
98
  int exit_code_ = 0;
90
- uint64_t thread_id_ = -1;
99
+ ThreadId thread_id_;
91
100
  uintptr_t stack_base_ = 0;
92
101
 
93
102
  // Custom resource constraints:
@@ -95,17 +104,13 @@ class Worker : public AsyncWrap {
95
104
  void UpdateResourceConstraints(v8::ResourceConstraints* constraints);
96
105
 
97
106
  // Full size of the thread's stack.
98
- static constexpr size_t kStackSize = 4 * 1024 * 1024;
107
+ size_t stack_size_ = 4 * 1024 * 1024;
99
108
  // Stack buffer size that is not available to the JS engine.
100
109
  static constexpr size_t kStackBufferSize = 192 * 1024;
101
110
 
102
111
  std::unique_ptr<MessagePortData> child_port_data_;
103
112
  std::shared_ptr<KVStore> env_vars_;
104
113
 
105
- // This is always kept alive because the JS object associated with the Worker
106
- // instance refers to it via its [kPort] property.
107
- MessagePort* parent_port_ = nullptr;
108
-
109
114
  // A raw flag that is used by creator and worker threads to
110
115
  // sync up on pre-mature termination of worker - while in the
111
116
  // warmup phase. Once the worker is fully warmed up, use the
@@ -113,6 +118,7 @@ class Worker : public AsyncWrap {
113
118
  bool stopped_ = true;
114
119
 
115
120
  bool has_ref_ = true;
121
+ uint64_t environment_flags_ = EnvironmentFlags::kNoFlags;
116
122
 
117
123
  // The real Environment of the worker object. It has a lesser
118
124
  // lifespan than the worker object itself - comes to life
@@ -120,6 +126,7 @@ class Worker : public AsyncWrap {
120
126
  // destroyed alongwith the worker thread.
121
127
  Environment* env_ = nullptr;
122
128
 
129
+ const SnapshotData* snapshot_data_ = nullptr;
123
130
  friend class WorkerThreadData;
124
131
  };
125
132
 
@@ -29,6 +29,7 @@
29
29
 
30
30
  namespace node {
31
31
 
32
+ class ExternalReferenceRegistry;
32
33
  class Environment;
33
34
 
34
35
  class PipeWrap : public ConnectionWrap<PipeWrap, uv_pipe_t> {
@@ -47,6 +48,7 @@ class PipeWrap : public ConnectionWrap<PipeWrap, uv_pipe_t> {
47
48
  v8::Local<v8::Context> context,
48
49
  void* priv);
49
50
 
51
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
50
52
  SET_NO_MEMORY_INFO()
51
53
  SET_MEMORY_INFO_NAME(PipeWrap)
52
54
  SET_SELF_SIZE(PipeWrap)
File without changes
@@ -66,7 +66,7 @@ class ReqWrap : public AsyncWrap, public ReqWrapBase {
66
66
  // members in memory are predictable. sizeof(req_) depends on the type of T,
67
67
  // so req_wrap_queue_ would no longer be at a fixed offset if it came after
68
68
  // req_. For more information please refer to
69
- // `doc/guides/node-postmortem-support.md`
69
+ // `doc/contributing/node-postmortem-support.md`
70
70
  T req_;
71
71
  };
72
72
 
File without changes
@@ -4,6 +4,7 @@
4
4
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
5
 
6
6
  #include "async_wrap-inl.h"
7
+ #include "base_object-inl.h"
7
8
  #include "node.h"
8
9
  #include "stream_base.h"
9
10
  #include "v8.h"
@@ -31,9 +32,10 @@ StreamReq* StreamReq::FromObject(v8::Local<v8::Object> req_wrap_obj) {
31
32
  }
32
33
 
33
34
  void StreamReq::Dispose() {
34
- std::unique_ptr<StreamReq> ptr(this);
35
+ BaseObjectPtr<AsyncWrap> destroy_me{GetAsyncWrap()};
35
36
  object()->SetAlignedPointerInInternalField(
36
37
  StreamReq::kStreamReqField, nullptr);
38
+ destroy_me->Detach();
37
39
  }
38
40
 
39
41
  v8::Local<v8::Object> StreamReq::object() {
@@ -90,29 +92,29 @@ void StreamResource::RemoveStreamListener(StreamListener* listener) {
90
92
  }
91
93
 
92
94
  uv_buf_t StreamResource::EmitAlloc(size_t suggested_size) {
93
- DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent());
95
+ DebugSealHandleScope seal_handle_scope;
94
96
  return listener_->OnStreamAlloc(suggested_size);
95
97
  }
96
98
 
97
99
  void StreamResource::EmitRead(ssize_t nread, const uv_buf_t& buf) {
98
- DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent());
100
+ DebugSealHandleScope seal_handle_scope;
99
101
  if (nread > 0)
100
102
  bytes_read_ += static_cast<uint64_t>(nread);
101
103
  listener_->OnStreamRead(nread, buf);
102
104
  }
103
105
 
104
106
  void StreamResource::EmitAfterWrite(WriteWrap* w, int status) {
105
- DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent());
107
+ DebugSealHandleScope seal_handle_scope;
106
108
  listener_->OnStreamAfterWrite(w, status);
107
109
  }
108
110
 
109
111
  void StreamResource::EmitAfterShutdown(ShutdownWrap* w, int status) {
110
- DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent());
112
+ DebugSealHandleScope seal_handle_scope;
111
113
  listener_->OnStreamAfterShutdown(w, status);
112
114
  }
113
115
 
114
116
  void StreamResource::EmitWantsWrite(size_t suggested_size) {
115
- DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent());
117
+ DebugSealHandleScope seal_handle_scope;
116
118
  listener_->OnStreamWantsWrite(suggested_size);
117
119
  }
118
120
 
@@ -134,8 +136,11 @@ int StreamBase::Shutdown(v8::Local<v8::Object> req_wrap_obj) {
134
136
  StreamReq::ResetObject(req_wrap_obj);
135
137
  }
136
138
 
139
+ BaseObjectPtr<AsyncWrap> req_wrap_ptr;
137
140
  AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope(GetAsyncWrap());
138
141
  ShutdownWrap* req_wrap = CreateShutdownWrap(req_wrap_obj);
142
+ if (req_wrap != nullptr)
143
+ req_wrap_ptr.reset(req_wrap->GetAsyncWrap());
139
144
  int err = DoShutdown(req_wrap);
140
145
 
141
146
  if (err != 0 && req_wrap != nullptr) {
@@ -144,9 +149,11 @@ int StreamBase::Shutdown(v8::Local<v8::Object> req_wrap_obj) {
144
149
 
145
150
  const char* msg = Error();
146
151
  if (msg != nullptr) {
147
- req_wrap_obj->Set(
148
- env->context(),
149
- env->error_string(), OneByteString(env->isolate(), msg)).Check();
152
+ if (req_wrap_obj->Set(env->context(),
153
+ env->error_string(),
154
+ OneByteString(env->isolate(), msg)).IsNothing()) {
155
+ return UV_EBUSY;
156
+ }
150
157
  ClearError();
151
158
  }
152
159
 
@@ -169,7 +176,7 @@ StreamWriteResult StreamBase::Write(
169
176
  if (send_handle == nullptr) {
170
177
  err = DoTryWrite(&bufs, &count);
171
178
  if (err != 0 || count == 0) {
172
- return StreamWriteResult { false, err, nullptr, total_bytes };
179
+ return StreamWriteResult { false, err, nullptr, total_bytes, {} };
173
180
  }
174
181
  }
175
182
 
@@ -179,13 +186,14 @@ StreamWriteResult StreamBase::Write(
179
186
  if (!env->write_wrap_template()
180
187
  ->NewInstance(env->context())
181
188
  .ToLocal(&req_wrap_obj)) {
182
- return StreamWriteResult { false, UV_EBUSY, nullptr, 0 };
189
+ return StreamWriteResult { false, UV_EBUSY, nullptr, 0, {} };
183
190
  }
184
191
  StreamReq::ResetObject(req_wrap_obj);
185
192
  }
186
193
 
187
194
  AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope(GetAsyncWrap());
188
195
  WriteWrap* req_wrap = CreateWriteWrap(req_wrap_obj);
196
+ BaseObjectPtr<AsyncWrap> req_wrap_ptr(req_wrap->GetAsyncWrap());
189
197
 
190
198
  err = DoWrite(req_wrap, bufs, count, send_handle);
191
199
  bool async = err == 0;
@@ -197,13 +205,16 @@ StreamWriteResult StreamBase::Write(
197
205
 
198
206
  const char* msg = Error();
199
207
  if (msg != nullptr) {
200
- req_wrap_obj->Set(env->context(),
201
- env->error_string(),
202
- OneByteString(env->isolate(), msg)).Check();
208
+ if (req_wrap_obj->Set(env->context(),
209
+ env->error_string(),
210
+ OneByteString(env->isolate(), msg)).IsNothing()) {
211
+ return StreamWriteResult { false, UV_EBUSY, nullptr, 0, {} };
212
+ }
203
213
  ClearError();
204
214
  }
205
215
 
206
- return StreamWriteResult { async, err, req_wrap, total_bytes };
216
+ return StreamWriteResult {
217
+ async, err, req_wrap, total_bytes, std::move(req_wrap_ptr) };
207
218
  }
208
219
 
209
220
  template <typename OtherBase>
@@ -240,19 +251,44 @@ StreamBase* StreamBase::FromObject(v8::Local<v8::Object> obj) {
240
251
  StreamBase::kStreamBaseField));
241
252
  }
242
253
 
243
- void WriteWrap::SetAllocatedStorage(AllocatedBuffer&& storage) {
244
- CHECK_NULL(storage_.data());
245
- storage_ = std::move(storage);
254
+ WriteWrap* WriteWrap::FromObject(v8::Local<v8::Object> req_wrap_obj) {
255
+ return static_cast<WriteWrap*>(StreamReq::FromObject(req_wrap_obj));
256
+ }
257
+
258
+ template <typename T, bool kIsWeak>
259
+ WriteWrap* WriteWrap::FromObject(
260
+ const BaseObjectPtrImpl<T, kIsWeak>& base_obj) {
261
+ if (!base_obj) return nullptr;
262
+ return FromObject(base_obj->object());
263
+ }
264
+
265
+ ShutdownWrap* ShutdownWrap::FromObject(v8::Local<v8::Object> req_wrap_obj) {
266
+ return static_cast<ShutdownWrap*>(StreamReq::FromObject(req_wrap_obj));
267
+ }
268
+
269
+ template <typename T, bool kIsWeak>
270
+ ShutdownWrap* ShutdownWrap::FromObject(
271
+ const BaseObjectPtrImpl<T, kIsWeak>& base_obj) {
272
+ if (!base_obj) return nullptr;
273
+ return FromObject(base_obj->object());
274
+ }
275
+
276
+ void WriteWrap::SetBackingStore(std::unique_ptr<v8::BackingStore> bs) {
277
+ CHECK(!backing_store_);
278
+ backing_store_ = std::move(bs);
246
279
  }
247
280
 
248
281
  void StreamReq::Done(int status, const char* error_str) {
249
282
  AsyncWrap* async_wrap = GetAsyncWrap();
250
283
  Environment* env = async_wrap->env();
251
284
  if (error_str != nullptr) {
252
- async_wrap->object()->Set(env->context(),
253
- env->error_string(),
254
- OneByteString(env->isolate(), error_str))
255
- .Check();
285
+ v8::HandleScope handle_scope(env->isolate());
286
+ if (async_wrap->object()->Set(
287
+ env->context(),
288
+ env->error_string(),
289
+ OneByteString(env->isolate(), error_str)).IsNothing()) {
290
+ return;
291
+ }
256
292
  }
257
293
 
258
294
  OnDone(status);
@@ -18,12 +18,14 @@ class ShutdownWrap;
18
18
  class WriteWrap;
19
19
  class StreamBase;
20
20
  class StreamResource;
21
+ class ExternalReferenceRegistry;
21
22
 
22
23
  struct StreamWriteResult {
23
24
  bool async;
24
25
  int err;
25
26
  WriteWrap* wrap;
26
27
  size_t bytes;
28
+ BaseObjectPtr<AsyncWrap> wrap_obj;
27
29
  };
28
30
 
29
31
  using JSMethodFunction = void(const v8::FunctionCallbackInfo<v8::Value>& args);
@@ -47,6 +49,8 @@ class StreamReq {
47
49
  virtual AsyncWrap* GetAsyncWrap() = 0;
48
50
  inline v8::Local<v8::Object> object();
49
51
 
52
+ // TODO(RaisinTen): Update the return type to a Maybe, so that we can indicate
53
+ // if there is a pending exception/termination.
50
54
  inline void Done(int status, const char* error_str = nullptr);
51
55
  inline void Dispose();
52
56
 
@@ -76,23 +80,33 @@ class ShutdownWrap : public StreamReq {
76
80
  StreamBase* stream,
77
81
  v8::Local<v8::Object> req_wrap_obj);
78
82
 
83
+ static inline ShutdownWrap* FromObject(v8::Local<v8::Object> req_wrap_obj);
84
+ template <typename T, bool kIsWeak>
85
+ static inline ShutdownWrap* FromObject(
86
+ const BaseObjectPtrImpl<T, kIsWeak>& base_obj);
87
+
79
88
  // Call stream()->EmitAfterShutdown() and dispose of this request wrap.
80
89
  void OnDone(int status) override;
81
90
  };
82
91
 
83
92
  class WriteWrap : public StreamReq {
84
93
  public:
85
- inline void SetAllocatedStorage(AllocatedBuffer&& storage);
94
+ inline void SetBackingStore(std::unique_ptr<v8::BackingStore> bs);
86
95
 
87
96
  inline WriteWrap(
88
97
  StreamBase* stream,
89
98
  v8::Local<v8::Object> req_wrap_obj);
90
99
 
100
+ static inline WriteWrap* FromObject(v8::Local<v8::Object> req_wrap_obj);
101
+ template <typename T, bool kIsWeak>
102
+ static inline WriteWrap* FromObject(
103
+ const BaseObjectPtrImpl<T, kIsWeak>& base_obj);
104
+
91
105
  // Call stream()->EmitAfterWrite() and dispose of this request wrap.
92
106
  void OnDone(int status) override;
93
107
 
94
108
  private:
95
- AllocatedBuffer storage_;
109
+ std::unique_ptr<v8::BackingStore> backing_store_;
96
110
  };
97
111
 
98
112
 
@@ -296,7 +310,7 @@ class StreamBase : public StreamResource {
296
310
 
297
311
  static void AddMethods(Environment* env,
298
312
  v8::Local<v8::FunctionTemplate> target);
299
-
313
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
300
314
  virtual bool IsAlive() = 0;
301
315
  virtual bool IsClosing() = 0;
302
316
  virtual bool IsIPCPipe();
@@ -314,6 +328,8 @@ class StreamBase : public StreamResource {
314
328
  // subclasses are also `BaseObject`s.
315
329
  Environment* stream_env() const { return env_; }
316
330
 
331
+ // TODO(RaisinTen): Update the return type to a Maybe, so that we can indicate
332
+ // if there is a pending exception/termination.
317
333
  // Shut down the current stream. This request can use an existing
318
334
  // ShutdownWrap object (that was created in JS), or a new one will be created.
319
335
  // Returns 1 in case of a synchronous completion, 0 in case of asynchronous
@@ -321,6 +337,8 @@ class StreamBase : public StreamResource {
321
337
  inline int Shutdown(
322
338
  v8::Local<v8::Object> req_wrap_obj = v8::Local<v8::Object>());
323
339
 
340
+ // TODO(RaisinTen): Update the return type to a Maybe, so that we can indicate
341
+ // if there is a pending exception/termination.
324
342
  // Write data to the current stream. This request can use an existing
325
343
  // WriteWrap object (that was created in JS), or a new one will be created.
326
344
  // This will first try to write synchronously using `DoTryWrite()`, then
@@ -411,6 +429,10 @@ class SimpleShutdownWrap : public ShutdownWrap, public OtherBase {
411
429
  SET_NO_MEMORY_INFO()
412
430
  SET_MEMORY_INFO_NAME(SimpleShutdownWrap)
413
431
  SET_SELF_SIZE(SimpleShutdownWrap)
432
+
433
+ bool IsNotIndicativeOfMemoryLeakAtExit() const override {
434
+ return OtherBase::IsNotIndicativeOfMemoryLeakAtExit();
435
+ }
414
436
  };
415
437
 
416
438
  template <typename OtherBase>
@@ -424,6 +446,10 @@ class SimpleWriteWrap : public WriteWrap, public OtherBase {
424
446
  SET_NO_MEMORY_INFO()
425
447
  SET_MEMORY_INFO_NAME(SimpleWriteWrap)
426
448
  SET_SELF_SIZE(SimpleWriteWrap)
449
+
450
+ bool IsNotIndicativeOfMemoryLeakAtExit() const override {
451
+ return OtherBase::IsNotIndicativeOfMemoryLeakAtExit();
452
+ }
427
453
  };
428
454
 
429
455
  } // namespace node
@@ -9,11 +9,14 @@ namespace node {
9
9
 
10
10
  class StreamPipe : public AsyncWrap {
11
11
  public:
12
- StreamPipe(StreamBase* source, StreamBase* sink, v8::Local<v8::Object> obj);
13
12
  ~StreamPipe() override;
14
13
 
15
14
  void Unpipe(bool is_in_deletion = false);
16
15
 
16
+ // TODO(RaisinTen): Just like MessagePort, add the following overload:
17
+ // static StreamPipe* New(StreamBase* source, StreamBase* sink,
18
+ // v8::Local<v8::Object> obj);
19
+ // so that we can indicate if there is a pending exception/termination.
17
20
  static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
18
21
  static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
19
22
  static void Unpipe(const v8::FunctionCallbackInfo<v8::Value>& args);
@@ -25,6 +28,8 @@ class StreamPipe : public AsyncWrap {
25
28
  SET_SELF_SIZE(StreamPipe)
26
29
 
27
30
  private:
31
+ StreamPipe(StreamBase* source, StreamBase* sink, v8::Local<v8::Object> obj);
32
+
28
33
  inline StreamBase* source();
29
34
  inline StreamBase* sink();
30
35
 
@@ -42,7 +47,7 @@ class StreamPipe : public AsyncWrap {
42
47
  // `OnStreamWantsWrite()` support.
43
48
  size_t wanted_data_ = 0;
44
49
 
45
- void ProcessData(size_t nread, AllocatedBuffer&& buf);
50
+ void ProcessData(size_t nread, std::unique_ptr<v8::BackingStore> bs);
46
51
 
47
52
  class ReadableListener : public StreamListener {
48
53
  public:
@@ -67,6 +72,6 @@ class StreamPipe : public AsyncWrap {
67
72
 
68
73
  } // namespace node
69
74
 
70
- #endif
75
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
71
76
 
72
77
  #endif // SRC_STREAM_PIPE_H_
@@ -31,6 +31,7 @@
31
31
  namespace node {
32
32
 
33
33
  class Environment;
34
+ class ExternalReferenceRegistry;
34
35
 
35
36
  class LibuvStreamWrap : public HandleWrap, public StreamBase {
36
37
  public:
@@ -38,7 +39,7 @@ class LibuvStreamWrap : public HandleWrap, public StreamBase {
38
39
  v8::Local<v8::Value> unused,
39
40
  v8::Local<v8::Context> context,
40
41
  void* priv);
41
-
42
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
42
43
  int GetFD() override;
43
44
  bool IsAlive() override;
44
45
  bool IsClosing() override;
@@ -104,6 +105,8 @@ class LibuvStreamWrap : public HandleWrap, public StreamBase {
104
105
 
105
106
  // Callbacks for libuv
106
107
  void OnUvAlloc(size_t suggested_size, uv_buf_t* buf);
108
+ // TODO(RaisinTen): Update the return type to a Maybe, so that we can indicate
109
+ // if there is a pending exception/termination.
107
110
  void OnUvRead(ssize_t nread, const uv_buf_t* buf);
108
111
 
109
112
  static void AfterUvWrite(uv_write_t* req, int status);
@@ -26,14 +26,7 @@
26
26
 
27
27
  // Decodes a v8::Local<v8::String> or Buffer to a raw char*
28
28
 
29
- #if (__GNUC__ >= 8) && !defined(__clang__)
30
- #pragma GCC diagnostic push
31
- #pragma GCC diagnostic ignored "-Wcast-function-type"
32
- #endif
33
29
  #include "v8.h"
34
- #if (__GNUC__ >= 8) && !defined(__clang__)
35
- #pragma GCC diagnostic pop
36
- #endif
37
30
  #include "env-inl.h"
38
31
 
39
32
  #include <string>
File without changes
File without changes
@@ -32,7 +32,7 @@ class Vector {
32
32
 
33
33
  // Returns true if the Vector is front-to-back, false if back-to-front.
34
34
  // In the latter case, v[0] corresponds to the *end* of the memory range.
35
- size_t forward() const { return is_forward_; }
35
+ bool forward() const { return is_forward_; }
36
36
 
37
37
  // Access individual vector elements - checks bounds in debug mode.
38
38
  T& operator[](size_t index) const {
@@ -458,7 +458,7 @@ size_t StringSearch<Char>::BoyerMooreHorspoolSearch(
458
458
  const size_t subject_length = subject.length();
459
459
  const size_t pattern_length = pattern_.length();
460
460
  int* char_occurrences = bad_char_shift_table_;
461
- int64_t badness = -pattern_length;
461
+ int64_t badness = -static_cast<int64_t>(pattern_length);
462
462
 
463
463
  // How bad we are doing without a good-suffix table.
464
464
  Char last_char = pattern_[pattern_length - 1];
@@ -29,6 +29,7 @@
29
29
 
30
30
  namespace node {
31
31
 
32
+ class ExternalReferenceRegistry;
32
33
  class Environment;
33
34
 
34
35
  class TCPWrap : public ConnectionWrap<TCPWrap, uv_tcp_t> {
@@ -45,6 +46,7 @@ class TCPWrap : public ConnectionWrap<TCPWrap, uv_tcp_t> {
45
46
  v8::Local<v8::Value> unused,
46
47
  v8::Local<v8::Context> context,
47
48
  void* priv);
49
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
48
50
 
49
51
  SET_NO_MEMORY_INFO()
50
52
  SET_SELF_SIZE(TCPWrap)
@@ -86,6 +88,8 @@ class TCPWrap : public ConnectionWrap<TCPWrap, uv_tcp_t> {
86
88
  const v8::FunctionCallbackInfo<v8::Value>& args,
87
89
  int family,
88
90
  std::function<int(const char* ip_address, int port, T* addr)> uv_ip_addr);
91
+ static void Reset(const v8::FunctionCallbackInfo<v8::Value>& args);
92
+ int Reset(v8::Local<v8::Value> close_callback = v8::Local<v8::Value>());
89
93
 
90
94
  #ifdef _WIN32
91
95
  static void SetSimultaneousAccepts(
File without changes
@@ -0,0 +1,32 @@
1
+ #ifndef SRC_TIMER_WRAP_INL_H_
2
+ #define SRC_TIMER_WRAP_INL_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "timer_wrap.h"
7
+
8
+ #include <utility>
9
+
10
+ #include "env.h"
11
+ #include "uv.h"
12
+
13
+ namespace node {
14
+
15
+ template <typename... Args>
16
+ inline TimerWrap::TimerWrap(Environment* env, Args&&... args)
17
+ : env_(env), fn_(std::forward<Args>(args)...) {
18
+ uv_timer_init(env->event_loop(), &timer_);
19
+ timer_.data = this;
20
+ }
21
+
22
+ template <typename... Args>
23
+ inline TimerWrapHandle::TimerWrapHandle(Environment* env, Args&&... args) {
24
+ timer_ = new TimerWrap(env, std::forward<Args>(args)...);
25
+ env->AddCleanupHook(CleanupHook, this);
26
+ }
27
+
28
+ } // namespace node
29
+
30
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
31
+
32
+ #endif // SRC_TIMER_WRAP_INL_H_