@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
@@ -1,339 +0,0 @@
1
- #ifndef SRC_MEMORY_TRACKER_INL_H_
2
- #define SRC_MEMORY_TRACKER_INL_H_
3
-
4
- #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
-
6
- #include "memory_tracker.h"
7
-
8
- namespace node {
9
-
10
- // Fallback edge_name if node_name is not available, or "" if edge_name
11
- // is not available either.
12
- inline const char* GetNodeName(const char* node_name, const char* edge_name) {
13
- if (node_name != nullptr) {
14
- return node_name;
15
- }
16
- if (edge_name != nullptr) {
17
- return edge_name;
18
- }
19
- return "";
20
- }
21
-
22
- class MemoryRetainerNode : public v8::EmbedderGraph::Node {
23
- public:
24
- inline MemoryRetainerNode(MemoryTracker* tracker,
25
- const MemoryRetainer* retainer)
26
- : retainer_(retainer) {
27
- CHECK_NOT_NULL(retainer_);
28
- v8::HandleScope handle_scope(tracker->isolate());
29
- v8::Local<v8::Object> obj = retainer_->WrappedObject();
30
- if (!obj.IsEmpty()) wrapper_node_ = tracker->graph()->V8Node(obj);
31
-
32
- name_ = retainer_->MemoryInfoName();
33
- size_ = retainer_->SelfSize();
34
- }
35
-
36
- inline MemoryRetainerNode(MemoryTracker* tracker,
37
- const char* name,
38
- size_t size,
39
- bool is_root_node = false)
40
- : retainer_(nullptr) {
41
- name_ = name;
42
- size_ = size;
43
- is_root_node_ = is_root_node;
44
- }
45
-
46
- const char* Name() override { return name_.c_str(); }
47
- const char* NamePrefix() override { return "Node /"; }
48
- size_t SizeInBytes() override { return size_; }
49
- // TODO(addaleax): Merging this with the "official" WrapperNode() method
50
- // seems to lose accuracy, e.g. SizeInBytes() is disregarded.
51
- // Figure out whether to do anything about that.
52
- Node* JSWrapperNode() { return wrapper_node_; }
53
-
54
- bool IsRootNode() override {
55
- if (retainer_ != nullptr) {
56
- return retainer_->IsRootNode();
57
- }
58
- return is_root_node_;
59
- }
60
-
61
- private:
62
- friend class MemoryTracker;
63
-
64
- // If retainer_ is not nullptr, then it must have a wrapper_node_,
65
- // and we have
66
- // name_ == retainer_->MemoryInfoName()
67
- // size_ == retainer_->SelfSize()
68
- // is_root_node_ == retainer_->IsRootNode()
69
- const MemoryRetainer* retainer_;
70
- Node* wrapper_node_ = nullptr;
71
-
72
- // Otherwise (retainer == nullptr), we set these fields in an ad-hoc way
73
- bool is_root_node_ = false;
74
- std::string name_;
75
- size_t size_ = 0;
76
- };
77
-
78
- void MemoryTracker::TrackFieldWithSize(const char* edge_name,
79
- size_t size,
80
- const char* node_name) {
81
- if (size > 0) AddNode(GetNodeName(node_name, edge_name), size, edge_name);
82
- }
83
-
84
- void MemoryTracker::TrackInlineFieldWithSize(const char* edge_name,
85
- size_t size,
86
- const char* node_name) {
87
- if (size > 0) AddNode(GetNodeName(node_name, edge_name), size, edge_name);
88
- CHECK(CurrentNode());
89
- CurrentNode()->size_ -= size;
90
- }
91
-
92
- void MemoryTracker::TrackField(const char* edge_name,
93
- const MemoryRetainer& value,
94
- const char* node_name) {
95
- TrackField(edge_name, &value);
96
- }
97
-
98
- void MemoryTracker::TrackField(const char* edge_name,
99
- const MemoryRetainer* value,
100
- const char* node_name) {
101
- if (value == nullptr) return;
102
- auto it = seen_.find(value);
103
- if (it != seen_.end()) {
104
- graph_->AddEdge(CurrentNode(), it->second, edge_name);
105
- } else {
106
- Track(value, edge_name);
107
- }
108
- }
109
-
110
- template <typename T, typename D>
111
- void MemoryTracker::TrackField(const char* edge_name,
112
- const std::unique_ptr<T, D>& value,
113
- const char* node_name) {
114
- if (value.get() == nullptr) {
115
- return;
116
- }
117
- TrackField(edge_name, value.get(), node_name);
118
- }
119
-
120
- template <typename T, bool kIsWeak>
121
- void MemoryTracker::TrackField(const char* edge_name,
122
- const BaseObjectPtrImpl<T, kIsWeak>& value,
123
- const char* node_name) {
124
- if (value.get() == nullptr) return;
125
- TrackField(edge_name, value.get(), node_name);
126
- }
127
-
128
- template <typename T, typename Iterator>
129
- void MemoryTracker::TrackField(const char* edge_name,
130
- const T& value,
131
- const char* node_name,
132
- const char* element_name,
133
- bool subtract_from_self) {
134
- // If the container is empty, the size has been accounted into the parent's
135
- // self size
136
- if (value.begin() == value.end()) return;
137
- // Fall back to edge name if node names are not provided
138
- if (CurrentNode() != nullptr && subtract_from_self) {
139
- // Shift the self size of this container out to a separate node
140
- CurrentNode()->size_ -= sizeof(T);
141
- }
142
- PushNode(GetNodeName(node_name, edge_name), sizeof(T), edge_name);
143
- for (Iterator it = value.begin(); it != value.end(); ++it) {
144
- // Use nullptr as edge names so the elements appear as indexed properties
145
- TrackField(nullptr, *it, element_name);
146
- }
147
- PopNode();
148
- }
149
-
150
- template <typename T>
151
- void MemoryTracker::TrackField(const char* edge_name,
152
- const std::queue<T>& value,
153
- const char* node_name,
154
- const char* element_name) {
155
- struct ContainerGetter : public std::queue<T> {
156
- static const typename std::queue<T>::container_type& Get(
157
- const std::queue<T>& value) {
158
- return value.*&ContainerGetter::c;
159
- }
160
- };
161
-
162
- const auto& container = ContainerGetter::Get(value);
163
- TrackField(edge_name, container, node_name, element_name);
164
- }
165
-
166
- template <typename T, typename test_for_number, typename dummy>
167
- void MemoryTracker::TrackField(const char* edge_name,
168
- const T& value,
169
- const char* node_name) {
170
- // For numbers, creating new nodes is not worth the overhead.
171
- CurrentNode()->size_ += sizeof(T);
172
- }
173
-
174
- template <typename T, typename U>
175
- void MemoryTracker::TrackField(const char* edge_name,
176
- const std::pair<T, U>& value,
177
- const char* node_name) {
178
- PushNode(node_name == nullptr ? "pair" : node_name,
179
- sizeof(const std::pair<T, U>),
180
- edge_name);
181
- // TODO(joyeecheung): special case if one of these is a number type
182
- // that meets the test_for_number trait so that their sizes don't get
183
- // merged into the pair node
184
- TrackField("first", value.first);
185
- TrackField("second", value.second);
186
- PopNode();
187
- }
188
-
189
- template <typename T>
190
- void MemoryTracker::TrackField(const char* edge_name,
191
- const std::basic_string<T>& value,
192
- const char* node_name) {
193
- TrackFieldWithSize(edge_name, value.size() * sizeof(T), "std::basic_string");
194
- }
195
-
196
- template <typename T>
197
- void MemoryTracker::TrackField(const char* edge_name,
198
- const v8::Eternal<T>& value,
199
- const char* node_name) {
200
- TrackField(edge_name, value.Get(isolate_));
201
- }
202
-
203
- template <typename T>
204
- void MemoryTracker::TrackField(const char* edge_name,
205
- const v8::PersistentBase<T>& value,
206
- const char* node_name) {
207
- TrackField(edge_name, value.Get(isolate_));
208
- }
209
-
210
- template <typename T>
211
- void MemoryTracker::TrackField(const char* edge_name,
212
- const v8::Local<T>& value,
213
- const char* node_name) {
214
- if (!value.IsEmpty())
215
- graph_->AddEdge(CurrentNode(), graph_->V8Node(value), edge_name);
216
- }
217
-
218
- template <typename T>
219
- void MemoryTracker::TrackField(const char* edge_name,
220
- const MallocedBuffer<T>& value,
221
- const char* node_name) {
222
- TrackFieldWithSize(edge_name, value.size, "MallocedBuffer");
223
- }
224
-
225
- void MemoryTracker::TrackField(const char* name,
226
- const uv_buf_t& value,
227
- const char* node_name) {
228
- TrackFieldWithSize(name, value.len, "uv_buf_t");
229
- }
230
-
231
- void MemoryTracker::TrackField(const char* name,
232
- const uv_timer_t& value,
233
- const char* node_name) {
234
- TrackFieldWithSize(name, sizeof(value), "uv_timer_t");
235
- }
236
-
237
- void MemoryTracker::TrackField(const char* name,
238
- const uv_async_t& value,
239
- const char* node_name) {
240
- TrackFieldWithSize(name, sizeof(value), "uv_async_t");
241
- }
242
-
243
- void MemoryTracker::TrackInlineField(const char* name,
244
- const uv_async_t& value,
245
- const char* node_name) {
246
- TrackInlineFieldWithSize(name, sizeof(value), "uv_async_t");
247
- }
248
-
249
- template <class NativeT, class V8T>
250
- void MemoryTracker::TrackField(const char* name,
251
- const AliasedBufferBase<NativeT, V8T>& value,
252
- const char* node_name) {
253
- TrackField(name, value.GetJSArray(), "AliasedBuffer");
254
- }
255
-
256
- void MemoryTracker::Track(const MemoryRetainer* retainer,
257
- const char* edge_name) {
258
- v8::HandleScope handle_scope(isolate_);
259
- auto it = seen_.find(retainer);
260
- if (it != seen_.end()) {
261
- if (CurrentNode() != nullptr) {
262
- graph_->AddEdge(CurrentNode(), it->second, edge_name);
263
- }
264
- return; // It has already been tracked, no need to call MemoryInfo again
265
- }
266
- MemoryRetainerNode* n = PushNode(retainer, edge_name);
267
- retainer->MemoryInfo(this);
268
- CHECK_EQ(CurrentNode(), n);
269
- CHECK_NE(n->size_, 0);
270
- PopNode();
271
- }
272
-
273
- void MemoryTracker::TrackInlineField(const MemoryRetainer* retainer,
274
- const char* edge_name) {
275
- Track(retainer, edge_name);
276
- CHECK(CurrentNode());
277
- CurrentNode()->size_ -= retainer->SelfSize();
278
- }
279
-
280
- MemoryRetainerNode* MemoryTracker::CurrentNode() const {
281
- if (node_stack_.empty()) return nullptr;
282
- return node_stack_.top();
283
- }
284
-
285
- MemoryRetainerNode* MemoryTracker::AddNode(const MemoryRetainer* retainer,
286
- const char* edge_name) {
287
- auto it = seen_.find(retainer);
288
- if (it != seen_.end()) {
289
- return it->second;
290
- }
291
-
292
- MemoryRetainerNode* n = new MemoryRetainerNode(this, retainer);
293
- graph_->AddNode(std::unique_ptr<v8::EmbedderGraph::Node>(n));
294
- seen_[retainer] = n;
295
- if (CurrentNode() != nullptr) graph_->AddEdge(CurrentNode(), n, edge_name);
296
-
297
- if (n->JSWrapperNode() != nullptr) {
298
- graph_->AddEdge(n, n->JSWrapperNode(), "wrapped");
299
- graph_->AddEdge(n->JSWrapperNode(), n, "wrapper");
300
- }
301
-
302
- return n;
303
- }
304
-
305
- MemoryRetainerNode* MemoryTracker::AddNode(const char* node_name,
306
- size_t size,
307
- const char* edge_name) {
308
- MemoryRetainerNode* n = new MemoryRetainerNode(this, node_name, size);
309
- graph_->AddNode(std::unique_ptr<v8::EmbedderGraph::Node>(n));
310
-
311
- if (CurrentNode() != nullptr) graph_->AddEdge(CurrentNode(), n, edge_name);
312
-
313
- return n;
314
- }
315
-
316
- MemoryRetainerNode* MemoryTracker::PushNode(const MemoryRetainer* retainer,
317
- const char* edge_name) {
318
- MemoryRetainerNode* n = AddNode(retainer, edge_name);
319
- node_stack_.push(n);
320
- return n;
321
- }
322
-
323
- MemoryRetainerNode* MemoryTracker::PushNode(const char* node_name,
324
- size_t size,
325
- const char* edge_name) {
326
- MemoryRetainerNode* n = AddNode(node_name, size, edge_name);
327
- node_stack_.push(n);
328
- return n;
329
- }
330
-
331
- void MemoryTracker::PopNode() {
332
- node_stack_.pop();
333
- }
334
-
335
- } // namespace node
336
-
337
- #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
338
-
339
- #endif // SRC_MEMORY_TRACKER_INL_H_
@@ -1,283 +0,0 @@
1
- #pragma once
2
-
3
- #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
4
-
5
- #include "aliased_buffer.h"
6
- #include "v8-profiler.h"
7
-
8
- #include <uv.h>
9
-
10
- #include <limits>
11
- #include <queue>
12
- #include <stack>
13
- #include <string>
14
- #include <unordered_map>
15
-
16
- namespace node {
17
-
18
- // Set the node name of a MemoryRetainer to klass
19
- #define SET_MEMORY_INFO_NAME(Klass) \
20
- inline std::string MemoryInfoName() const override { return #Klass; }
21
-
22
- // Set the self size of a MemoryRetainer to the stack-allocated size of a
23
- // certain class
24
- #define SET_SELF_SIZE(Klass) \
25
- inline size_t SelfSize() const override { return sizeof(Klass); }
26
-
27
- // Used when there is no additional fields to track
28
- #define SET_NO_MEMORY_INFO() \
29
- inline void MemoryInfo(node::MemoryTracker* tracker) const override {}
30
-
31
- class MemoryTracker;
32
- class MemoryRetainerNode;
33
- template <typename T, bool kIsWeak>
34
- class BaseObjectPtrImpl;
35
-
36
- namespace crypto {
37
- class NodeBIO;
38
- }
39
-
40
- class CleanupHookCallback;
41
-
42
- /* Example:
43
- *
44
- * class ExampleRetainer : public MemoryRetainer {
45
- * public:
46
- * // Or use SET_NO_MEMORY_INFO() when there is no additional fields
47
- * // to track.
48
- * void MemoryInfo(MemoryTracker* tracker) const override {
49
- * // Node name and size comes from the MemoryInfoName and SelfSize of
50
- * // AnotherRetainerClass
51
- * tracker->TrackField("another_retainer", another_retainer_);
52
- *
53
- * // Add non_pointer_retainer as a separate node into the graph
54
- * // and track its memory information recursively.
55
- * // Note that we need to make sure its size is not accounted in
56
- * // ExampleRetainer::SelfSize().
57
- * tracker->TrackField("non_pointer_retainer", &non_pointer_retainer_);
58
- *
59
- * // Specify node name and size explicitly
60
- * tracker->TrackFieldWithSize("internal_member",
61
- * internal_member_.size(),
62
- * "InternalClass");
63
- * // Node name falls back to the edge name,
64
- * // elements in the container appear as grandchildren nodes
65
- * tracker->TrackField("vector", vector_);
66
- * // Node name and size come from the JS object
67
- * tracker->TrackField("target", target_);
68
- * }
69
- *
70
- * // Or use SET_MEMORY_INFO_NAME(ExampleRetainer)
71
- * std::string MemoryInfoName() const override {
72
- * return "ExampleRetainer";
73
- * }
74
- *
75
- * // Classes that only want to return its sizeof() value can use the
76
- * // SET_SELF_SIZE(Class) macro instead.
77
- * size_t SelfSize() const override {
78
- * // We need to exclude the size of non_pointer_retainer so that
79
- * // we can track it separately in ExampleRetainer::MemoryInfo().
80
- * return sizeof(ExampleRetainer) - sizeof(NonPointerRetainerClass);
81
- * }
82
- *
83
- * // Note: no need to implement these two methods when implementing
84
- * // a BaseObject or an AsyncWrap class
85
- * bool IsRootNode() const override { return !wrapped_.IsWeak(); }
86
- * v8::Local<v8::Object> WrappedObject() const override {
87
- * return node::PersistentToLocal::Default(wrapped_);
88
- * }
89
- *
90
- * private:
91
- * AnotherRetainerClass* another_retainer_;
92
- * NonPointerRetainerClass non_pointer_retainer;
93
- * InternalClass internal_member_;
94
- * std::vector<uv_async_t> vector_;
95
- * v8::Global<Object> target_;
96
- *
97
- * v8::Global<Object> wrapped_;
98
- * }
99
- *
100
- * This creates the following graph:
101
- * Node / ExampleRetainer
102
- * |> another_retainer :: Node / AnotherRetainerClass
103
- * |> internal_member :: Node / InternalClass
104
- * |> vector :: Node / vector (elements will be grandchildren)
105
- * |> [1] :: Node / uv_async_t (uv_async_t has predefined names)
106
- * |> [2] :: Node / uv_async_t
107
- * |> ...
108
- * |> target :: TargetClass (JS class name of the target object)
109
- * |> wrapped :: WrappedClass (JS class name of the wrapped object)
110
- * |> wrapper :: Node / ExampleRetainer (back reference)
111
- */
112
- class MemoryRetainer {
113
- public:
114
- virtual ~MemoryRetainer() = default;
115
-
116
- // Subclasses should implement these methods to provide information
117
- // for the V8 heap snapshot generator.
118
- // The MemoryInfo() method is assumed to be called within a context
119
- // where all the edges start from the node of the current retainer,
120
- // and point to the nodes as specified by tracker->Track* calls.
121
- virtual void MemoryInfo(MemoryTracker* tracker) const = 0;
122
- virtual std::string MemoryInfoName() const = 0;
123
- virtual size_t SelfSize() const = 0;
124
-
125
- virtual v8::Local<v8::Object> WrappedObject() const {
126
- return v8::Local<v8::Object>();
127
- }
128
-
129
- virtual bool IsRootNode() const { return false; }
130
- };
131
-
132
- class MemoryTracker {
133
- public:
134
- // Used to specify node name and size explicitly
135
- inline void TrackFieldWithSize(const char* edge_name,
136
- size_t size,
137
- const char* node_name = nullptr);
138
- inline void TrackInlineFieldWithSize(const char* edge_name,
139
- size_t size,
140
- const char* node_name = nullptr);
141
-
142
- // Shortcut to extract the underlying object out of the smart pointer
143
- template <typename T, typename D>
144
- inline void TrackField(const char* edge_name,
145
- const std::unique_ptr<T, D>& value,
146
- const char* node_name = nullptr);
147
-
148
- template <typename T, bool kIsWeak>
149
- void TrackField(const char* edge_name,
150
- const BaseObjectPtrImpl<T, kIsWeak>& value,
151
- const char* node_name = nullptr);
152
-
153
- // For containers, the elements will be graphed as grandchildren nodes
154
- // if the container is not empty.
155
- // By default, we assume the parent count the stack size of the container
156
- // into its SelfSize so that will be subtracted from the parent size when we
157
- // spin off a new node for the container.
158
- // TODO(joyeecheung): use RTTI to retrieve the class name at runtime?
159
- template <typename T, typename Iterator = typename T::const_iterator>
160
- inline void TrackField(const char* edge_name,
161
- const T& value,
162
- const char* node_name = nullptr,
163
- const char* element_name = nullptr,
164
- bool subtract_from_self = true);
165
- template <typename T>
166
- inline void TrackField(const char* edge_name,
167
- const std::queue<T>& value,
168
- const char* node_name = nullptr,
169
- const char* element_name = nullptr);
170
- template <typename T, typename U>
171
- inline void TrackField(const char* edge_name,
172
- const std::pair<T, U>& value,
173
- const char* node_name = nullptr);
174
-
175
- // For the following types, node_name will be ignored and predefined names
176
- // will be used instead. They are only in the signature for template
177
- // expansion.
178
- inline void TrackField(const char* edge_name,
179
- const MemoryRetainer& value,
180
- const char* node_name = nullptr);
181
- inline void TrackField(const char* edge_name,
182
- const MemoryRetainer* value,
183
- const char* node_name = nullptr);
184
- template <typename T>
185
- inline void TrackField(const char* edge_name,
186
- const std::basic_string<T>& value,
187
- const char* node_name = nullptr);
188
- template <typename T,
189
- typename test_for_number = typename std::
190
- enable_if<std::numeric_limits<T>::is_specialized, bool>::type,
191
- typename dummy = bool>
192
- inline void TrackField(const char* edge_name,
193
- const T& value,
194
- const char* node_name = nullptr);
195
- template <typename T>
196
- void TrackField(const char* edge_name,
197
- const v8::Eternal<T>& value,
198
- const char* node_name);
199
- template <typename T>
200
- inline void TrackField(const char* edge_name,
201
- const v8::PersistentBase<T>& value,
202
- const char* node_name = nullptr);
203
- template <typename T>
204
- inline void TrackField(const char* edge_name,
205
- const v8::Local<T>& value,
206
- const char* node_name = nullptr);
207
- template <typename T>
208
- inline void TrackField(const char* edge_name,
209
- const MallocedBuffer<T>& value,
210
- const char* node_name = nullptr);
211
- // We do not implement CleanupHookCallback as MemoryRetainer
212
- // but instead specialize the method here to avoid the cost of
213
- // virtual pointers.
214
- // TODO(joyeecheung): do this for BaseObject and remove WrappedObject()
215
- void TrackField(const char* edge_name,
216
- const CleanupHookCallback& value,
217
- const char* node_name = nullptr);
218
- inline void TrackField(const char* edge_name,
219
- const uv_buf_t& value,
220
- const char* node_name = nullptr);
221
- inline void TrackField(const char* edge_name,
222
- const uv_timer_t& value,
223
- const char* node_name = nullptr);
224
- inline void TrackField(const char* edge_name,
225
- const uv_async_t& value,
226
- const char* node_name = nullptr);
227
- inline void TrackInlineField(const char* edge_name,
228
- const uv_async_t& value,
229
- const char* node_name = nullptr);
230
- template <class NativeT, class V8T>
231
- inline void TrackField(const char* edge_name,
232
- const AliasedBufferBase<NativeT, V8T>& value,
233
- const char* node_name = nullptr);
234
-
235
- // Put a memory container into the graph, create an edge from
236
- // the current node if there is one on the stack.
237
- inline void Track(const MemoryRetainer* retainer,
238
- const char* edge_name = nullptr);
239
-
240
- // Useful for parents that do not wish to perform manual
241
- // adjustments to its `SelfSize()` when embedding retainer
242
- // objects inline.
243
- // Put a memory container into the graph, create an edge from
244
- // the current node if there is one on the stack - there should
245
- // be one, of the container object which the current field is part of.
246
- // Reduce the size of memory from the container so as to avoid
247
- // duplication in accounting.
248
- inline void TrackInlineField(const MemoryRetainer* retainer,
249
- const char* edge_name = nullptr);
250
-
251
- inline v8::EmbedderGraph* graph() { return graph_; }
252
- inline v8::Isolate* isolate() { return isolate_; }
253
-
254
- inline explicit MemoryTracker(v8::Isolate* isolate,
255
- v8::EmbedderGraph* graph)
256
- : isolate_(isolate), graph_(graph) {}
257
-
258
- private:
259
- typedef std::unordered_map<const MemoryRetainer*, MemoryRetainerNode*>
260
- NodeMap;
261
-
262
- inline MemoryRetainerNode* CurrentNode() const;
263
- inline MemoryRetainerNode* AddNode(const MemoryRetainer* retainer,
264
- const char* edge_name = nullptr);
265
- inline MemoryRetainerNode* PushNode(const MemoryRetainer* retainer,
266
- const char* edge_name = nullptr);
267
- inline MemoryRetainerNode* AddNode(const char* node_name,
268
- size_t size,
269
- const char* edge_name = nullptr);
270
- inline MemoryRetainerNode* PushNode(const char* node_name,
271
- size_t size,
272
- const char* edge_name = nullptr);
273
- inline void PopNode();
274
-
275
- v8::Isolate* isolate_;
276
- v8::EmbedderGraph* graph_;
277
- std::stack<MemoryRetainerNode*> node_stack_;
278
- NodeMap seen_;
279
- };
280
-
281
- } // namespace node
282
-
283
- #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS