@encharm/cws 4.4.1 → 4.5.2
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.
- package/binding.gyp +1 -1
- package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
- package/dist/bindings/cws_linux_arm64_node115.node +0 -0
- package/dist/bindings/cws_linux_arm64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node115.node +0 -0
- package/dist/bindings/cws_linux_x64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node137.node +0 -0
- package/dist/bindings/cws_win32_x64_node108.node +0 -0
- package/dist/bindings/cws_win32_x64_node115.node +0 -0
- package/dist/bindings/cws_win32_x64_node127.node +0 -0
- package/dist/bindings/cws_win32_x64_node83.node +0 -0
- package/dist/bindings/cws_win32_x64_node93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +13 -23
- package/src/Socket.h +0 -1
- package/src/headers/22/acorn_version.h +6 -0
- package/src/headers/22/aliased_buffer-inl.h +243 -0
- package/src/headers/22/aliased_buffer.h +206 -0
- package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
- package/src/headers/{18 → 22}/async_wrap.h +65 -59
- package/src/headers/{18 → 22}/base_object-inl.h +57 -117
- package/src/headers/{18 → 22}/base_object.h +58 -30
- package/src/headers/22/base_object_types.h +74 -0
- package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/22/blob_serializer_deserializer.h +132 -0
- package/src/headers/{16 → 22}/callback_queue.h +1 -0
- package/src/headers/{16 → 22}/cares_wrap.h +27 -20
- package/src/headers/22/cjs_module_lexer_version.h +6 -0
- package/src/headers/22/cleanup_queue-inl.h +62 -0
- package/src/headers/22/cleanup_queue.h +85 -0
- package/src/headers/22/compile_cache.h +104 -0
- package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
- package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
- package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
- package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
- package/src/headers/22/crypto/ncrypto.h +752 -0
- package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
- package/src/headers/{18 → 22}/debug_utils.h +25 -19
- package/src/headers/22/encoding_binding.h +59 -0
- package/src/headers/{14 → 22}/env-inl.h +276 -409
- package/src/headers/22/env.h +1266 -0
- package/src/headers/22/env_properties.h +497 -0
- package/src/headers/{18 → 22}/handle_wrap.h +2 -0
- package/src/headers/{18 → 22}/histogram.h +88 -48
- package/src/headers/{16 → 22}/inspector_agent.h +17 -1
- package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
- package/src/headers/22/js_native_api.h +619 -0
- package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
- package/src/headers/22/js_native_api_v8.h +485 -0
- package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
- package/src/headers/22/json_parser.h +40 -0
- package/src/headers/{16 → 22}/json_utils.h +19 -8
- package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
- package/src/headers/{14 → 22}/memory_tracker.h +13 -8
- package/src/headers/{16 → 22}/module_wrap.h +49 -19
- package/src/headers/22/ncrypto/ncrypto.h +752 -0
- package/src/headers/{18 → 22}/node.h +465 -68
- package/src/headers/{18 → 22}/node_api.h +66 -81
- package/src/headers/{18 → 22}/node_api_internals.h +8 -4
- package/src/headers/{18 → 22}/node_api_types.h +5 -0
- package/src/headers/22/node_binding.h +154 -0
- package/src/headers/{18 → 22}/node_blob.h +46 -78
- package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
- package/src/headers/{18 → 22}/node_bob.h +2 -6
- package/src/headers/{18 → 22}/node_buffer.h +1 -1
- package/src/headers/22/node_builtins.h +220 -0
- package/src/headers/{18 → 22}/node_constants.h +3 -5
- package/src/headers/22/node_context_data.h +168 -0
- package/src/headers/22/node_contextify.h +199 -0
- package/src/headers/{16 → 22}/node_crypto.h +1 -2
- package/src/headers/22/node_dotenv.h +45 -0
- package/src/headers/{18 → 22}/node_errors.h +86 -27
- package/src/headers/22/node_exit_code.h +54 -0
- package/src/headers/22/node_external_reference.h +249 -0
- package/src/headers/{18 → 22}/node_file-inl.h +127 -30
- package/src/headers/{16 → 22}/node_file.h +122 -11
- package/src/headers/{18 → 22}/node_http2.h +28 -11
- package/src/headers/{16 → 22}/node_http2_state.h +34 -25
- package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
- package/src/headers/{18 → 22}/node_http_common.h +56 -55
- package/src/headers/{16 → 22}/node_i18n.h +5 -18
- package/src/headers/{18 → 22}/node_internals.h +121 -59
- package/src/headers/{18 → 22}/node_main_instance.h +4 -31
- package/src/headers/{18 → 22}/node_messaging.h +27 -10
- package/src/headers/{18 → 22}/node_metadata.h +23 -1
- package/src/headers/{18 → 22}/node_options-inl.h +24 -11
- package/src/headers/{18 → 22}/node_options.h +124 -39
- package/src/headers/{18 → 22}/node_perf.h +0 -2
- package/src/headers/{18 → 22}/node_perf_common.h +20 -9
- package/src/headers/{18 → 22}/node_platform.h +11 -5
- package/src/headers/{18 → 22}/node_process.h +26 -14
- package/src/headers/22/node_realm-inl.h +145 -0
- package/src/headers/22/node_realm.h +184 -0
- package/src/headers/{16 → 22}/node_report.h +13 -17
- package/src/headers/{16 → 22}/node_revert.h +3 -3
- package/src/headers/{16 → 22}/node_root_certs.h +902 -461
- package/src/headers/22/node_sea.h +64 -0
- package/src/headers/22/node_shadow_realm.h +46 -0
- package/src/headers/22/node_snapshot_builder.h +57 -0
- package/src/headers/22/node_snapshotable.h +174 -0
- package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
- package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
- package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/22/node_threadsafe_cow.h +105 -0
- package/src/headers/22/node_union_bytes.h +81 -0
- package/src/headers/22/node_url.h +96 -0
- package/src/headers/22/node_v8.h +77 -0
- package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
- package/src/headers/{16 → 22}/node_version.h +21 -9
- package/src/headers/22/node_wasi.h +185 -0
- package/src/headers/{14 → 22}/node_watchdog.h +2 -0
- package/src/headers/{18 → 22}/node_worker.h +7 -2
- package/src/headers/22/permission/child_process_permission.h +31 -0
- package/src/headers/22/permission/fs_permission.h +167 -0
- package/src/headers/22/permission/inspector_permission.h +31 -0
- package/src/headers/22/permission/permission.h +99 -0
- package/src/headers/22/permission/permission_base.h +60 -0
- package/src/headers/22/permission/wasi_permission.h +31 -0
- package/src/headers/22/permission/worker_permission.h +31 -0
- package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
- package/src/headers/{14 → 22}/spawn_sync.h +3 -3
- package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
- package/src/headers/{18 → 22}/stream_base.h +35 -16
- package/src/headers/{18 → 22}/stream_pipe.h +3 -4
- package/src/headers/{16 → 22}/stream_wrap.h +2 -1
- package/src/headers/{18 → 22}/string_bytes.h +5 -14
- package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
- package/src/headers/{16 → 22}/string_decoder.h +0 -1
- package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
- package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
- package/src/headers/22/timers.h +76 -0
- package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
- package/src/headers/{16 → 22}/udp_wrap.h +8 -5
- package/src/headers/22/undici_version.h +6 -0
- package/src/headers/{18 → 22}/util-inl.h +97 -127
- package/src/headers/{18 → 22}/util.h +293 -106
- package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
- package/src/headers/24/acorn_version.h +6 -0
- package/src/headers/24/addon_permission.h +31 -0
- package/src/headers/{16/tracing → 24}/agent.h +1 -1
- package/src/headers/24/aliased_buffer-inl.h +244 -0
- package/src/headers/24/aliased_buffer.h +206 -0
- package/src/headers/24/amaro_version.h +6 -0
- package/src/headers/24/application.h +165 -0
- package/src/headers/24/async_context_frame.h +33 -0
- package/src/headers/{14 → 24}/async_wrap-inl.h +8 -6
- package/src/headers/{16 → 24}/async_wrap.h +86 -88
- package/src/headers/{16 → 24}/base_object-inl.h +75 -119
- package/src/headers/{16 → 24}/base_object.h +84 -40
- package/src/headers/24/base_object_types.h +74 -0
- package/src/headers/24/bindingdata.h +272 -0
- package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/24/blob_serializer_deserializer.h +132 -0
- package/src/headers/{18 → 24}/callback_queue.h +1 -0
- package/src/headers/{18 → 24}/cares_wrap.h +68 -144
- package/src/headers/24/child_process_permission.h +31 -0
- package/src/headers/24/cid.h +127 -0
- package/src/headers/24/cjs_module_lexer_version.h +6 -0
- package/src/headers/24/cleanup_queue-inl.h +36 -0
- package/src/headers/24/cleanup_queue.h +79 -0
- package/src/headers/24/compile_cache.h +113 -0
- package/src/headers/24/cppgc_helpers-inl.h +65 -0
- package/src/headers/24/cppgc_helpers.h +162 -0
- package/src/headers/24/crypto/crypto_aes.h +97 -0
- package/src/headers/24/crypto/crypto_argon2.h +86 -0
- package/src/headers/{16 → 24}/crypto/crypto_bio.h +8 -9
- package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
- package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
- package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
- package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/24/crypto/crypto_common.h +48 -0
- package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
- package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
- package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
- package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
- package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
- package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
- package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
- package/src/headers/24/crypto/crypto_kem.h +113 -0
- package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
- package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
- package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
- package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
- package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
- package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
- package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
- package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
- package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
- package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
- package/src/headers/24/crypto/crypto_x509.h +140 -0
- package/src/headers/24/data.h +148 -0
- package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
- package/src/headers/{16 → 24}/debug_utils.h +31 -22
- package/src/headers/24/defs.h +254 -0
- package/src/headers/24/embedded_data.h +17 -0
- package/src/headers/24/encoding_binding.h +60 -0
- package/src/headers/24/endpoint.h +421 -0
- package/src/headers/{16 → 24}/env-inl.h +198 -540
- package/src/headers/24/env.h +1257 -0
- package/src/headers/24/env_properties.h +561 -0
- package/src/headers/24/fs_permission.h +167 -0
- package/src/headers/{16 → 24}/handle_wrap.h +4 -2
- package/src/headers/{16 → 24}/histogram-inl.h +34 -15
- package/src/headers/24/histogram.h +279 -0
- package/src/headers/24/http3.h +44 -0
- package/src/headers/{18 → 24}/inspector_agent.h +23 -2
- package/src/headers/24/inspector_permission.h +31 -0
- package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
- package/src/headers/24/io_agent.h +30 -0
- package/src/headers/{18 → 24}/js_native_api.h +74 -30
- package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
- package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
- package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
- package/src/headers/24/json_parser.h +40 -0
- package/src/headers/{18 → 24}/json_utils.h +19 -8
- package/src/headers/24/logstream.h +81 -0
- package/src/headers/24/main_thread_interface.h +116 -0
- package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
- package/src/headers/{16 → 24}/memory_tracker.h +58 -9
- package/src/headers/24/module_wrap.h +229 -0
- package/src/headers/24/ncrypto.h +1625 -0
- package/src/headers/24/network_agent.h +118 -0
- package/src/headers/24/network_inspector.h +45 -0
- package/src/headers/24/network_resource_manager.h +29 -0
- package/src/headers/{16 → 24}/node.h +560 -72
- package/src/headers/24/node_api.h +269 -0
- package/src/headers/24/node_api_internals.h +46 -0
- package/src/headers/{16 → 24}/node_api_types.h +13 -11
- package/src/headers/24/node_binding.h +163 -0
- package/src/headers/{16 → 24}/node_blob.h +46 -78
- package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
- package/src/headers/{16 → 24}/node_bob.h +2 -6
- package/src/headers/{14 → 24}/node_buffer.h +1 -1
- package/src/headers/24/node_builtins.h +223 -0
- package/src/headers/24/node_config_file.h +65 -0
- package/src/headers/{14 → 24}/node_constants.h +3 -5
- package/src/headers/24/node_context_data.h +168 -0
- package/src/headers/24/node_contextify.h +261 -0
- package/src/headers/{18 → 24}/node_crypto.h +7 -2
- package/src/headers/24/node_debug.h +25 -0
- package/src/headers/24/node_dotenv.h +45 -0
- package/src/headers/{16 → 24}/node_errors.h +146 -32
- package/src/headers/24/node_exit_code.h +54 -0
- package/src/headers/{18 → 24}/node_external_reference.h +44 -22
- package/src/headers/{16 → 24}/node_file-inl.h +156 -50
- package/src/headers/{18 → 24}/node_file.h +129 -15
- package/src/headers/{16 → 24}/node_http2.h +53 -18
- package/src/headers/{14 → 24}/node_http2_state.h +35 -25
- package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
- package/src/headers/{16 → 24}/node_http_common.h +63 -59
- package/src/headers/{18 → 24}/node_i18n.h +5 -18
- package/src/headers/{16 → 24}/node_internals.h +131 -76
- package/src/headers/24/node_json.h +24 -0
- package/src/headers/24/node_large_page.h +34 -0
- package/src/headers/24/node_locks.h +180 -0
- package/src/headers/{14 → 24}/node_main_instance.h +15 -44
- package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
- package/src/headers/{16 → 24}/node_messaging.h +27 -11
- package/src/headers/{16 → 24}/node_metadata.h +44 -2
- package/src/headers/24/node_modules.h +93 -0
- package/src/headers/{16 → 24}/node_options-inl.h +93 -46
- package/src/headers/{16 → 24}/node_options.h +251 -63
- package/src/headers/{16 → 24}/node_perf.h +6 -25
- package/src/headers/{16 → 24}/node_perf_common.h +23 -10
- package/src/headers/24/node_platform.h +286 -0
- package/src/headers/24/node_process.h +111 -0
- package/src/headers/24/node_realm-inl.h +153 -0
- package/src/headers/24/node_realm.h +236 -0
- package/src/headers/{18 → 24}/node_report.h +13 -17
- package/src/headers/{18 → 24}/node_revert.h +3 -3
- package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
- package/src/headers/24/node_sea.h +74 -0
- package/src/headers/24/node_shadow_realm.h +46 -0
- package/src/headers/24/node_snapshot_builder.h +57 -0
- package/src/headers/24/node_snapshotable.h +174 -0
- package/src/headers/{16 → 24}/node_sockaddr-inl.h +11 -20
- package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
- package/src/headers/24/node_sqlite.h +270 -0
- package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
- package/src/headers/24/node_string.h +101 -0
- package/src/headers/24/node_task_runner.h +92 -0
- package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/24/node_threadsafe_cow.h +105 -0
- package/src/headers/24/node_union_bytes.h +81 -0
- package/src/headers/24/node_url.h +101 -0
- package/src/headers/24/node_url_pattern.h +118 -0
- package/src/headers/24/node_v8.h +77 -0
- package/src/headers/{18 → 24}/node_v8_platform-inl.h +22 -31
- package/src/headers/{18 → 24}/node_version.h +18 -6
- package/src/headers/24/node_wasi.h +185 -0
- package/src/headers/24/node_wasm_web_api.h +55 -0
- package/src/headers/{18 → 24}/node_watchdog.h +2 -0
- package/src/headers/24/node_webstorage.h +60 -0
- package/src/headers/{16 → 24}/node_worker.h +24 -10
- package/src/headers/24/packet.h +155 -0
- package/src/headers/24/path.h +33 -0
- package/src/headers/24/permission/addon_permission.h +31 -0
- package/src/headers/24/permission/child_process_permission.h +31 -0
- package/src/headers/24/permission/fs_permission.h +167 -0
- package/src/headers/24/permission/inspector_permission.h +31 -0
- package/src/headers/24/permission/permission.h +100 -0
- package/src/headers/24/permission/permission_base.h +65 -0
- package/src/headers/24/permission/wasi_permission.h +31 -0
- package/src/headers/24/permission/worker_permission.h +31 -0
- package/src/headers/24/permission.h +100 -0
- package/src/headers/24/permission_base.h +65 -0
- package/src/headers/24/preferredaddress.h +72 -0
- package/src/headers/24/protocol_helper.h +27 -0
- package/src/headers/24/queue.h +306 -0
- package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
- package/src/headers/{16 → 24}/req_wrap.h +3 -1
- package/src/headers/24/runtime_agent.h +41 -0
- package/src/headers/24/session.h +528 -0
- package/src/headers/24/sessionticket.h +108 -0
- package/src/headers/{18 → 24}/spawn_sync.h +9 -8
- package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
- package/src/headers/{16 → 24}/stream_base.h +43 -19
- package/src/headers/{16 → 24}/stream_pipe.h +7 -4
- package/src/headers/{18 → 24}/stream_wrap.h +2 -3
- package/src/headers/24/streams.h +370 -0
- package/src/headers/{16 → 24}/string_bytes.h +8 -21
- package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
- package/src/headers/{18 → 24}/string_decoder.h +0 -1
- package/src/headers/24/target_agent.h +75 -0
- package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
- package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
- package/src/headers/24/timer_wrap-inl.h +32 -0
- package/src/headers/{16 → 24}/timer_wrap.h +7 -4
- package/src/headers/24/timers.h +75 -0
- package/src/headers/24/tlscontext.h +228 -0
- package/src/headers/24/tokens.h +256 -0
- package/src/headers/{14/tracing → 24}/trace_event.h +7 -5
- package/src/headers/24/traced_value.h +129 -0
- package/src/headers/24/tracing_agent.h +43 -0
- package/src/headers/24/transportparams.h +166 -0
- package/src/headers/{16 → 24}/tty_wrap.h +0 -1
- package/src/headers/{18 → 24}/udp_wrap.h +8 -5
- package/src/headers/24/undici_version.h +6 -0
- package/src/headers/{16 → 24}/util-inl.h +267 -131
- package/src/headers/{16 → 24}/util.h +338 -146
- package/src/headers/24/v8-external-memory-accounter.h +60 -0
- package/src/headers/24/v8-fast-api-calls.h +819 -0
- package/src/headers/24/v8-inspector.h +426 -0
- package/src/headers/24/wasi_permission.h +31 -0
- package/src/headers/24/worker_agent.h +40 -0
- package/src/headers/24/worker_inspector.h +124 -0
- package/src/headers/24/worker_permission.h +31 -0
- package/src/headers/24/zlib_version.h +6 -0
- package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
- package/dist/bindings/cws_darwin_x64_node83.node +0 -0
- package/dist/bindings/cws_darwin_x64_node93.node +0 -0
- package/dist/bindings/cws_linux_arm64_node83.node +0 -0
- package/dist/bindings/cws_linux_arm64_node93.node +0 -0
- package/dist/bindings/cws_linux_x64_node83.node +0 -0
- package/dist/bindings/cws_linux_x64_node93.node +0 -0
- package/src/headers/14/aliased_buffer.h +0 -263
- package/src/headers/14/allocated_buffer-inl.h +0 -110
- package/src/headers/14/allocated_buffer.h +0 -73
- package/src/headers/14/async_wrap.h +0 -230
- package/src/headers/14/base64.h +0 -183
- package/src/headers/14/base_object-inl.h +0 -371
- package/src/headers/14/base_object.h +0 -281
- package/src/headers/14/callback_queue-inl.h +0 -97
- package/src/headers/14/callback_queue.h +0 -78
- package/src/headers/14/debug_utils.h +0 -181
- package/src/headers/14/env.h +0 -1388
- package/src/headers/14/handle_wrap.h +0 -117
- package/src/headers/14/histogram-inl.h +0 -83
- package/src/headers/14/histogram.h +0 -98
- package/src/headers/14/inspector_agent.h +0 -149
- package/src/headers/14/inspector_profiler.h +0 -137
- package/src/headers/14/js_native_api.h +0 -544
- package/src/headers/14/js_native_api_types.h +0 -143
- package/src/headers/14/js_native_api_v8.h +0 -301
- package/src/headers/14/js_native_api_v8_internals.h +0 -38
- package/src/headers/14/json_utils.h +0 -161
- package/src/headers/14/memory_tracker-inl.h +0 -355
- package/src/headers/14/module_wrap.h +0 -99
- package/src/headers/14/node.h +0 -1032
- package/src/headers/14/node_api.h +0 -255
- package/src/headers/14/node_api_types.h +0 -44
- package/src/headers/14/node_binding.h +0 -99
- package/src/headers/14/node_context_data.h +0 -44
- package/src/headers/14/node_contextify.h +0 -161
- package/src/headers/14/node_crypto.h +0 -865
- package/src/headers/14/node_crypto_bio.h +0 -195
- package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/14/node_crypto_clienthello.h +0 -132
- package/src/headers/14/node_crypto_common.h +0 -138
- package/src/headers/14/node_crypto_groups.h +0 -415
- package/src/headers/14/node_dtrace.h +0 -86
- package/src/headers/14/node_errors.h +0 -214
- package/src/headers/14/node_file-inl.h +0 -306
- package/src/headers/14/node_file.h +0 -417
- package/src/headers/14/node_http2.h +0 -1191
- package/src/headers/14/node_http_common-inl.h +0 -194
- package/src/headers/14/node_http_common.h +0 -529
- package/src/headers/14/node_i18n.h +0 -144
- package/src/headers/14/node_internals.h +0 -405
- package/src/headers/14/node_mem.h +0 -45
- package/src/headers/14/node_messaging.h +0 -303
- package/src/headers/14/node_metadata.h +0 -109
- package/src/headers/14/node_mutex.h +0 -247
- package/src/headers/14/node_native_module.h +0 -101
- package/src/headers/14/node_native_module_env.h +0 -66
- package/src/headers/14/node_options-inl.h +0 -451
- package/src/headers/14/node_options.h +0 -481
- package/src/headers/14/node_perf.h +0 -181
- package/src/headers/14/node_perf_common.h +0 -97
- package/src/headers/14/node_platform.h +0 -189
- package/src/headers/14/node_process.h +0 -40
- package/src/headers/14/node_report.h +0 -47
- package/src/headers/14/node_revert.h +0 -72
- package/src/headers/14/node_root_certs.h +0 -3458
- package/src/headers/14/node_sockaddr-inl.h +0 -170
- package/src/headers/14/node_sockaddr.h +0 -123
- package/src/headers/14/node_stat_watcher.h +0 -70
- package/src/headers/14/node_union_bytes.h +0 -103
- package/src/headers/14/node_url.h +0 -188
- package/src/headers/14/node_version.h +0 -98
- package/src/headers/14/node_wasi.h +0 -108
- package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/14/node_win32_etw_provider.h +0 -99
- package/src/headers/14/node_worker.h +0 -141
- package/src/headers/14/pipe_wrap.h +0 -78
- package/src/headers/14/req_wrap-inl.h +0 -170
- package/src/headers/14/req_wrap.h +0 -77
- package/src/headers/14/stream_base-inl.h +0 -275
- package/src/headers/14/stream_base.h +0 -434
- package/src/headers/14/stream_pipe.h +0 -73
- package/src/headers/14/stream_wrap.h +0 -130
- package/src/headers/14/string_bytes.h +0 -129
- package/src/headers/14/string_decoder.h +0 -50
- package/src/headers/14/string_search.h +0 -638
- package/src/headers/14/tcp_wrap.h +0 -101
- package/src/headers/14/tls_wrap.h +0 -222
- package/src/headers/14/tracing/agent.h +0 -195
- package/src/headers/14/tracing/traced_value.h +0 -70
- package/src/headers/14/tty_wrap.h +0 -64
- package/src/headers/14/udp_wrap.h +0 -227
- package/src/headers/14/util-inl.h +0 -566
- package/src/headers/14/util.h +0 -804
- package/src/headers/14/v8abbr.h +0 -124
- package/src/headers/16/aliased_buffer.h +0 -315
- package/src/headers/16/allocated_buffer-inl.h +0 -110
- package/src/headers/16/allocated_buffer.h +0 -73
- package/src/headers/16/async_wrap-inl.h +0 -94
- package/src/headers/16/base64-inl.h +0 -189
- package/src/headers/16/base64.h +0 -69
- package/src/headers/16/crypto/crypto_aes.h +0 -89
- package/src/headers/16/crypto/crypto_cipher.h +0 -286
- package/src/headers/16/crypto/crypto_common.h +0 -187
- package/src/headers/16/crypto/crypto_dh.h +0 -157
- package/src/headers/16/crypto/crypto_dsa.h +0 -76
- package/src/headers/16/crypto/crypto_ec.h +0 -169
- package/src/headers/16/crypto/crypto_groups.h +0 -415
- package/src/headers/16/crypto/crypto_hash.h +0 -89
- package/src/headers/16/crypto/crypto_hkdf.h +0 -66
- package/src/headers/16/crypto/crypto_hmac.h +0 -94
- package/src/headers/16/crypto/crypto_keygen.h +0 -301
- package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/16/crypto/crypto_random.h +0 -130
- package/src/headers/16/crypto/crypto_rsa.h +0 -141
- package/src/headers/16/crypto/crypto_scrypt.h +0 -87
- package/src/headers/16/crypto/crypto_sig.h +0 -167
- package/src/headers/16/crypto/crypto_spkac.h +0 -20
- package/src/headers/16/crypto/crypto_timing.h +0 -20
- package/src/headers/16/crypto/crypto_x509.h +0 -141
- package/src/headers/16/env.h +0 -1629
- package/src/headers/16/histogram.h +0 -216
- package/src/headers/16/js_native_api.h +0 -561
- package/src/headers/16/js_native_api_v8.h +0 -451
- package/src/headers/16/node.d +0 -315
- package/src/headers/16/node.stp +0 -146
- package/src/headers/16/node_api.h +0 -275
- package/src/headers/16/node_api_internals.h +0 -30
- package/src/headers/16/node_binding.h +0 -99
- package/src/headers/16/node_buffer.h +0 -92
- package/src/headers/16/node_constants.h +0 -84
- package/src/headers/16/node_context_data.h +0 -44
- package/src/headers/16/node_contextify.h +0 -196
- package/src/headers/16/node_dtrace.h +0 -86
- package/src/headers/16/node_external_reference.h +0 -129
- package/src/headers/16/node_main_instance.h +0 -103
- package/src/headers/16/node_native_module.h +0 -101
- package/src/headers/16/node_native_module_env.h +0 -68
- package/src/headers/16/node_platform.h +0 -192
- package/src/headers/16/node_process.h +0 -43
- package/src/headers/16/node_provider.d +0 -80
- package/src/headers/16/node_snapshotable.h +0 -137
- package/src/headers/16/node_union_bytes.h +0 -103
- package/src/headers/16/node_url.h +0 -205
- package/src/headers/16/node_v8.h +0 -41
- package/src/headers/16/node_v8_platform-inl.h +0 -194
- package/src/headers/16/node_wasi.h +0 -108
- package/src/headers/16/node_watchdog.h +0 -152
- package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/16/node_win32_etw_provider.h +0 -99
- package/src/headers/16/spawn_sync.h +0 -242
- package/src/headers/16/string_decoder-inl.h +0 -37
- package/src/headers/16/string_search.h +0 -638
- package/src/headers/16/threadpoolwork-inl.h +0 -57
- package/src/headers/16/tracing/node_trace_buffer.h +0 -83
- package/src/headers/16/tracing/node_trace_writer.h +0 -75
- package/src/headers/16/tracing/trace_event.h +0 -720
- package/src/headers/16/tracing/traced_value.h +0 -70
- package/src/headers/16/v8abbr.h +0 -123
- package/src/headers/16/v8ustack.d +0 -695
- package/src/headers/18/aliased_buffer.h +0 -315
- package/src/headers/18/aliased_struct-inl.h +0 -54
- package/src/headers/18/aliased_struct.h +0 -63
- package/src/headers/18/base64-inl.h +0 -189
- package/src/headers/18/base64.h +0 -69
- package/src/headers/18/connect_wrap.h +0 -26
- package/src/headers/18/connection_wrap.h +0 -30
- package/src/headers/18/crypto/crypto_aes.h +0 -89
- package/src/headers/18/crypto/crypto_bio.h +0 -194
- package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/18/crypto/crypto_common.h +0 -151
- package/src/headers/18/crypto/crypto_groups.h +0 -415
- package/src/headers/18/crypto/crypto_x509.h +0 -143
- package/src/headers/18/debug_utils-inl.h +0 -223
- package/src/headers/18/diagnosticfilename-inl.h +0 -33
- package/src/headers/18/env-inl.h +0 -1308
- package/src/headers/18/env.h +0 -1667
- package/src/headers/18/inspector_io.h +0 -78
- package/src/headers/18/inspector_socket.h +0 -60
- package/src/headers/18/inspector_socket_server.h +0 -110
- package/src/headers/18/js_stream.h +0 -52
- package/src/headers/18/memory_tracker.h +0 -284
- package/src/headers/18/module_wrap.h +0 -116
- package/src/headers/18/node_binding.h +0 -99
- package/src/headers/18/node_context_data.h +0 -44
- package/src/headers/18/node_contextify.h +0 -196
- package/src/headers/18/node_dir.h +0 -52
- package/src/headers/18/node_dtrace.h +0 -86
- package/src/headers/18/node_http2_state.h +0 -149
- package/src/headers/18/node_mem-inl.h +0 -112
- package/src/headers/18/node_native_module.h +0 -109
- package/src/headers/18/node_native_module_env.h +0 -71
- package/src/headers/18/node_object_wrap.h +0 -132
- package/src/headers/18/node_snapshot_builder.h +0 -43
- package/src/headers/18/node_snapshotable.h +0 -130
- package/src/headers/18/node_union_bytes.h +0 -103
- package/src/headers/18/node_url.h +0 -205
- package/src/headers/18/node_v8.h +0 -41
- package/src/headers/18/node_wasi.h +0 -108
- package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/18/node_win32_etw_provider.h +0 -99
- package/src/headers/18/string_search.h +0 -638
- package/src/headers/18/tracing/node_trace_buffer.h +0 -83
- package/src/headers/18/tracing/node_trace_writer.h +0 -75
- package/src/headers/18/tracing/trace_event_common.h +0 -1109
- package/src/headers/18/tracing/traced_value.h +0 -70
- package/src/headers/18/v8abbr.h +0 -123
- /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
- /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
- /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
- /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
- /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
- /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
- /package/src/headers/{14 → 22}/inspector_io.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
- /package/src/headers/{14 → 22}/js_stream.h +0 -0
- /package/src/headers/{14 → 22}/node_dir.h +0 -0
- /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
- /package/src/headers/{16 → 22}/node_mem.h +0 -0
- /package/src/headers/{16 → 22}/node_mutex.h +0 -0
- /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
- /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
- /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
- /package/src/headers/{18 → 22}/req_wrap.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
- /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
- /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
- /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
- /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
- /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
- /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
- /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{16 → 24}/inspector_io.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
- /package/src/headers/{16 → 24}/js_stream.h +0 -0
- /package/src/headers/{16 → 24}/node_dir.h +0 -0
- /package/src/headers/{18 → 24}/node_mem.h +0 -0
- /package/src/headers/{18 → 24}/node_mutex.h +0 -0
- /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
- /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
- /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
- /package/src/headers/{16/tracing → 24}/trace_event_common.h +0 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
#ifndef SRC_ALIASED_BUFFER_H_
|
|
2
|
+
#define SRC_ALIASED_BUFFER_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <cinttypes>
|
|
7
|
+
#include "memory_tracker.h"
|
|
8
|
+
#include "v8.h"
|
|
9
|
+
|
|
10
|
+
namespace node {
|
|
11
|
+
|
|
12
|
+
typedef size_t AliasedBufferIndex;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Do not use this class directly when creating instances of it - use the
|
|
16
|
+
* Aliased*Array defined at the end of this file instead.
|
|
17
|
+
*
|
|
18
|
+
* This class encapsulates the technique of having a native buffer mapped to
|
|
19
|
+
* a JS object. Writes to the native buffer can happen efficiently without
|
|
20
|
+
* going through JS, and the data is then available to user's via the exposed
|
|
21
|
+
* JS object.
|
|
22
|
+
*
|
|
23
|
+
* While this technique is computationally efficient, it is effectively a
|
|
24
|
+
* write to JS program state w/out going through the standard
|
|
25
|
+
* (monitored) API. Thus, any VM capabilities to detect the modification are
|
|
26
|
+
* circumvented.
|
|
27
|
+
*
|
|
28
|
+
* The encapsulation herein provides a placeholder where such writes can be
|
|
29
|
+
* observed. Any notification APIs will be left as a future exercise.
|
|
30
|
+
*/
|
|
31
|
+
template <class NativeT, class V8T>
|
|
32
|
+
class AliasedBufferBase final : public MemoryRetainer {
|
|
33
|
+
public:
|
|
34
|
+
static_assert(std::is_scalar_v<NativeT>);
|
|
35
|
+
|
|
36
|
+
AliasedBufferBase(v8::Isolate* isolate,
|
|
37
|
+
size_t count,
|
|
38
|
+
const AliasedBufferIndex* index = nullptr);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Create an AliasedBufferBase over a sub-region of another aliased buffer.
|
|
42
|
+
* The two will share a v8::ArrayBuffer instance &
|
|
43
|
+
* a native buffer, but will each read/write to different sections of the
|
|
44
|
+
* native buffer.
|
|
45
|
+
*
|
|
46
|
+
* Note that byte_offset must be aligned by sizeof(NativeT).
|
|
47
|
+
*/
|
|
48
|
+
// TODO(refack): refactor into a non-owning `AliasedBufferBaseView`
|
|
49
|
+
AliasedBufferBase(
|
|
50
|
+
v8::Isolate* isolate,
|
|
51
|
+
size_t byte_offset,
|
|
52
|
+
size_t count,
|
|
53
|
+
const AliasedBufferBase<uint8_t, v8::Uint8Array>& backing_buffer,
|
|
54
|
+
const AliasedBufferIndex* index = nullptr);
|
|
55
|
+
|
|
56
|
+
AliasedBufferBase(const AliasedBufferBase& that);
|
|
57
|
+
|
|
58
|
+
AliasedBufferIndex Serialize(v8::Local<v8::Context> context,
|
|
59
|
+
v8::SnapshotCreator* creator);
|
|
60
|
+
|
|
61
|
+
void Deserialize(v8::Local<v8::Context> context);
|
|
62
|
+
|
|
63
|
+
AliasedBufferBase& operator=(AliasedBufferBase&& that) noexcept;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Helper class that is returned from operator[] to support assignment into
|
|
67
|
+
* a specified location.
|
|
68
|
+
*/
|
|
69
|
+
class Reference {
|
|
70
|
+
public:
|
|
71
|
+
Reference(AliasedBufferBase* aliased_buffer, const size_t index)
|
|
72
|
+
: aliased_buffer_(aliased_buffer), index_(index) {}
|
|
73
|
+
|
|
74
|
+
Reference(const Reference& that)
|
|
75
|
+
: aliased_buffer_(that.aliased_buffer_),
|
|
76
|
+
index_(that.index_) {
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
Reference& operator=(const NativeT& val) {
|
|
80
|
+
aliased_buffer_->SetValue(index_, val);
|
|
81
|
+
return *this;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
Reference& operator=(const Reference& val) {
|
|
85
|
+
return *this = static_cast<NativeT>(val);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
operator NativeT() const {
|
|
89
|
+
return aliased_buffer_->GetValue(index_);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
Reference& operator+=(const NativeT& val) {
|
|
93
|
+
const NativeT current = aliased_buffer_->GetValue(index_);
|
|
94
|
+
aliased_buffer_->SetValue(index_, current + val);
|
|
95
|
+
return *this;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
Reference& operator+=(const Reference& val) {
|
|
99
|
+
return this->operator+=(static_cast<NativeT>(val));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
Reference& operator-=(const NativeT& val) {
|
|
103
|
+
const NativeT current = aliased_buffer_->GetValue(index_);
|
|
104
|
+
aliased_buffer_->SetValue(index_, current - val);
|
|
105
|
+
return *this;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private:
|
|
109
|
+
AliasedBufferBase* aliased_buffer_;
|
|
110
|
+
size_t index_;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Get the underlying v8 TypedArray overlaid on top of the native buffer
|
|
115
|
+
*/
|
|
116
|
+
v8::Local<V8T> GetJSArray() const;
|
|
117
|
+
|
|
118
|
+
void Release();
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Make the global reference to the typed array weak. The caller must make
|
|
122
|
+
* sure that no operation can be done on the AliasedBuffer when the typed
|
|
123
|
+
* array becomes unreachable. Usually this means the caller must maintain
|
|
124
|
+
* a JS reference to the typed array from JS object.
|
|
125
|
+
*/
|
|
126
|
+
void MakeWeak();
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Get the underlying v8::ArrayBuffer underlying the TypedArray and
|
|
130
|
+
* overlaying the native buffer
|
|
131
|
+
*/
|
|
132
|
+
v8::Local<v8::ArrayBuffer> GetArrayBuffer() const;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Get the underlying native buffer. Note that all reads/writes should occur
|
|
136
|
+
* through the GetValue/SetValue/operator[] methods
|
|
137
|
+
*/
|
|
138
|
+
const NativeT* GetNativeBuffer() const;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Synonym for GetBuffer()
|
|
142
|
+
*/
|
|
143
|
+
const NativeT* operator*() const;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Set position index to given value.
|
|
147
|
+
*/
|
|
148
|
+
void SetValue(size_t index, NativeT value);
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Get value at position index
|
|
152
|
+
*/
|
|
153
|
+
const NativeT GetValue(size_t index) const;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Effectively, a synonym for GetValue/SetValue
|
|
157
|
+
*/
|
|
158
|
+
Reference operator[](size_t index);
|
|
159
|
+
|
|
160
|
+
NativeT operator[](size_t index) const;
|
|
161
|
+
|
|
162
|
+
size_t Length() const;
|
|
163
|
+
|
|
164
|
+
// Should only be used to extend the array.
|
|
165
|
+
// Should only be used on an owning array, not one created as a sub array of
|
|
166
|
+
// an owning `AliasedBufferBase`.
|
|
167
|
+
void reserve(size_t new_capacity);
|
|
168
|
+
|
|
169
|
+
size_t SelfSize() const override;
|
|
170
|
+
|
|
171
|
+
const char* MemoryInfoName() const override;
|
|
172
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
173
|
+
|
|
174
|
+
private:
|
|
175
|
+
bool is_valid() const;
|
|
176
|
+
v8::Isolate* isolate_ = nullptr;
|
|
177
|
+
size_t count_ = 0;
|
|
178
|
+
size_t byte_offset_ = 0;
|
|
179
|
+
NativeT* buffer_ = nullptr;
|
|
180
|
+
v8::Global<V8T> js_array_;
|
|
181
|
+
|
|
182
|
+
// Deserialize data
|
|
183
|
+
const AliasedBufferIndex* index_ = nullptr;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
#define ALIASED_BUFFER_LIST(V) \
|
|
187
|
+
V(int8_t, Int8Array) \
|
|
188
|
+
V(uint8_t, Uint8Array) \
|
|
189
|
+
V(int16_t, Int16Array) \
|
|
190
|
+
V(uint16_t, Uint16Array) \
|
|
191
|
+
V(int32_t, Int32Array) \
|
|
192
|
+
V(uint32_t, Uint32Array) \
|
|
193
|
+
V(float, Float32Array) \
|
|
194
|
+
V(double, Float64Array) \
|
|
195
|
+
V(int64_t, BigInt64Array)
|
|
196
|
+
|
|
197
|
+
#define V(NativeT, V8T) \
|
|
198
|
+
typedef AliasedBufferBase<NativeT, v8::V8T> Aliased##V8T;
|
|
199
|
+
ALIASED_BUFFER_LIST(V)
|
|
200
|
+
#undef V
|
|
201
|
+
|
|
202
|
+
} // namespace node
|
|
203
|
+
|
|
204
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
205
|
+
|
|
206
|
+
#endif // SRC_ALIASED_BUFFER_H_
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
4
|
+
#if HAVE_OPENSSL && NODE_OPENSSL_HAS_QUIC
|
|
5
|
+
|
|
6
|
+
#include "base_object.h"
|
|
7
|
+
#include "bindingdata.h"
|
|
8
|
+
#include "defs.h"
|
|
9
|
+
#include "session.h"
|
|
10
|
+
#include "sessionticket.h"
|
|
11
|
+
#include "streams.h"
|
|
12
|
+
|
|
13
|
+
namespace node::quic {
|
|
14
|
+
|
|
15
|
+
// An Application implements the ALPN-protocol specific semantics on behalf
|
|
16
|
+
// of a QUIC Session.
|
|
17
|
+
class Session::Application : public MemoryRetainer {
|
|
18
|
+
public:
|
|
19
|
+
using Options = Session::Application_Options;
|
|
20
|
+
|
|
21
|
+
Application(Session* session, const Options& options);
|
|
22
|
+
DISALLOW_COPY_AND_MOVE(Application)
|
|
23
|
+
|
|
24
|
+
virtual bool Start();
|
|
25
|
+
|
|
26
|
+
// Session will forward all received stream data immediately on to the
|
|
27
|
+
// Application. The only additional processing the Session does is to
|
|
28
|
+
// automatically adjust the session-level flow control window. It is up to
|
|
29
|
+
// the Application to do the same for the Stream-level flow control.
|
|
30
|
+
virtual bool ReceiveStreamData(int64_t stream_id,
|
|
31
|
+
const uint8_t* data,
|
|
32
|
+
size_t datalen,
|
|
33
|
+
const Stream::ReceiveDataFlags& flags,
|
|
34
|
+
void* stream_user_data) = 0;
|
|
35
|
+
|
|
36
|
+
// Session will forward all data acknowledgements for a stream to the
|
|
37
|
+
// Application.
|
|
38
|
+
virtual bool AcknowledgeStreamData(int64_t stream_id, size_t datalen);
|
|
39
|
+
|
|
40
|
+
// Called to determine if a Header can be added to this application.
|
|
41
|
+
// Applications that do not support headers will always return false.
|
|
42
|
+
virtual bool CanAddHeader(size_t current_count,
|
|
43
|
+
size_t current_headers_length,
|
|
44
|
+
size_t this_header_length);
|
|
45
|
+
|
|
46
|
+
// Called to mark the identified stream as being blocked. Not all
|
|
47
|
+
// Application types will support blocked streams, and those that do will do
|
|
48
|
+
// so differently.
|
|
49
|
+
virtual void BlockStream(int64_t id);
|
|
50
|
+
|
|
51
|
+
// Called when the session determines that there is outbound data available
|
|
52
|
+
// to send for the given stream.
|
|
53
|
+
virtual void ResumeStream(int64_t id);
|
|
54
|
+
|
|
55
|
+
// Called when the Session determines that the maximum number of
|
|
56
|
+
// remotely-initiated unidirectional streams has been extended. Not all
|
|
57
|
+
// Application types will require this notification so the default is to do
|
|
58
|
+
// nothing.
|
|
59
|
+
virtual void ExtendMaxStreams(EndpointLabel label,
|
|
60
|
+
Direction direction,
|
|
61
|
+
uint64_t max_streams);
|
|
62
|
+
|
|
63
|
+
// Called when the Session determines that the flow control window for the
|
|
64
|
+
// given stream has been expanded. Not all Application types will require
|
|
65
|
+
// this notification so the default is to do nothing.
|
|
66
|
+
virtual void ExtendMaxStreamData(Stream* stream, uint64_t max_data);
|
|
67
|
+
|
|
68
|
+
// Different Applications may wish to set some application data in the
|
|
69
|
+
// session ticket (e.g. http/3 would set server settings in the application
|
|
70
|
+
// data). By default, there's nothing to set.
|
|
71
|
+
virtual void CollectSessionTicketAppData(
|
|
72
|
+
SessionTicket::AppData* app_data) const;
|
|
73
|
+
|
|
74
|
+
// Different Applications may set some application data in the session
|
|
75
|
+
// ticket (e.g. http/3 would set server settings in the application data).
|
|
76
|
+
// By default, there's nothing to get.
|
|
77
|
+
virtual SessionTicket::AppData::Status ExtractSessionTicketAppData(
|
|
78
|
+
const SessionTicket::AppData& app_data,
|
|
79
|
+
SessionTicket::AppData::Source::Flag flag);
|
|
80
|
+
|
|
81
|
+
// Notifies the Application that the identified stream has been closed.
|
|
82
|
+
virtual void StreamClose(Stream* stream, QuicError&& error = QuicError());
|
|
83
|
+
|
|
84
|
+
// Notifies the Application that the identified stream has been reset.
|
|
85
|
+
virtual void StreamReset(Stream* stream,
|
|
86
|
+
uint64_t final_size,
|
|
87
|
+
QuicError&& error = QuicError());
|
|
88
|
+
|
|
89
|
+
// Notifies the Application that the identified stream should stop sending.
|
|
90
|
+
virtual void StreamStopSending(Stream* stream,
|
|
91
|
+
QuicError&& error = QuicError());
|
|
92
|
+
|
|
93
|
+
// Submits an outbound block of headers for the given stream. Not all
|
|
94
|
+
// Application types will support headers, in which case this function
|
|
95
|
+
// should return false.
|
|
96
|
+
virtual bool SendHeaders(const Stream& stream,
|
|
97
|
+
HeadersKind kind,
|
|
98
|
+
const v8::Local<v8::Array>& headers,
|
|
99
|
+
HeadersFlags flags = HeadersFlags::NONE);
|
|
100
|
+
|
|
101
|
+
// Signals to the Application that it should serialize and transmit any
|
|
102
|
+
// pending session and stream packets it has accumulated.
|
|
103
|
+
void SendPendingData();
|
|
104
|
+
|
|
105
|
+
// Set the priority level of the stream if supported by the application. Not
|
|
106
|
+
// all applications support priorities, in which case this function is a
|
|
107
|
+
// non-op.
|
|
108
|
+
virtual void SetStreamPriority(
|
|
109
|
+
const Stream& stream,
|
|
110
|
+
StreamPriority priority = StreamPriority::DEFAULT,
|
|
111
|
+
StreamPriorityFlags flags = StreamPriorityFlags::NONE);
|
|
112
|
+
|
|
113
|
+
// Get the priority level of the stream if supported by the application. Not
|
|
114
|
+
// all applications support priorities, in which case this function returns
|
|
115
|
+
// the default stream priority.
|
|
116
|
+
virtual StreamPriority GetStreamPriority(const Stream& stream);
|
|
117
|
+
|
|
118
|
+
struct StreamData;
|
|
119
|
+
|
|
120
|
+
virtual int GetStreamData(StreamData* data) = 0;
|
|
121
|
+
virtual bool StreamCommit(StreamData* data, size_t datalen) = 0;
|
|
122
|
+
virtual bool ShouldSetFin(const StreamData& data) = 0;
|
|
123
|
+
|
|
124
|
+
inline Environment* env() const { return session_->env(); }
|
|
125
|
+
inline Session& session() { return *session_; }
|
|
126
|
+
inline const Session& session() const { return *session_; }
|
|
127
|
+
|
|
128
|
+
private:
|
|
129
|
+
BaseObjectPtr<Packet> CreateStreamDataPacket();
|
|
130
|
+
|
|
131
|
+
// Write the given stream_data into the buffer.
|
|
132
|
+
ssize_t WriteVStream(PathStorage* path,
|
|
133
|
+
uint8_t* buf,
|
|
134
|
+
ssize_t* ndatalen,
|
|
135
|
+
size_t max_packet_size,
|
|
136
|
+
const StreamData& stream_data);
|
|
137
|
+
|
|
138
|
+
Session* session_;
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
struct Session::Application::StreamData final {
|
|
142
|
+
// The actual number of vectors in the struct, up to kMaxVectorCount.
|
|
143
|
+
size_t count = 0;
|
|
144
|
+
size_t remaining = 0;
|
|
145
|
+
// The stream identifier. If this is a negative value then no stream is
|
|
146
|
+
// identified.
|
|
147
|
+
int64_t id = -1;
|
|
148
|
+
int fin = 0;
|
|
149
|
+
ngtcp2_vec data[kMaxVectorCount]{};
|
|
150
|
+
BaseObjectPtr<Stream> stream;
|
|
151
|
+
|
|
152
|
+
inline operator nghttp3_vec*() {
|
|
153
|
+
return reinterpret_cast<nghttp3_vec*>(data);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
inline operator const ngtcp2_vec*() const { return data; }
|
|
157
|
+
inline operator ngtcp2_vec*() { return data; }
|
|
158
|
+
|
|
159
|
+
std::string ToString() const;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
} // namespace node::quic
|
|
163
|
+
|
|
164
|
+
#endif // HAVE_OPENSSL && NODE_OPENSSL_HAS_QUIC
|
|
165
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#ifndef SRC_ASYNC_CONTEXT_FRAME_H_
|
|
2
|
+
#define SRC_ASYNC_CONTEXT_FRAME_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include "base_object.h"
|
|
7
|
+
#include "v8.h"
|
|
8
|
+
|
|
9
|
+
#include <cstdint>
|
|
10
|
+
|
|
11
|
+
namespace node {
|
|
12
|
+
namespace async_context_frame {
|
|
13
|
+
|
|
14
|
+
class Scope {
|
|
15
|
+
public:
|
|
16
|
+
explicit Scope(v8::Isolate* isolate, v8::Local<v8::Value> object);
|
|
17
|
+
~Scope();
|
|
18
|
+
|
|
19
|
+
private:
|
|
20
|
+
v8::Isolate* isolate_;
|
|
21
|
+
v8::Global<v8::Value> prior_;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
v8::Local<v8::Value> current(v8::Isolate* isolate);
|
|
25
|
+
void set(v8::Isolate* isolate, v8::Local<v8::Value> value);
|
|
26
|
+
v8::Local<v8::Value> exchange(v8::Isolate* isolate, v8::Local<v8::Value> value);
|
|
27
|
+
|
|
28
|
+
} // namespace async_context_frame
|
|
29
|
+
} // namespace node
|
|
30
|
+
|
|
31
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
32
|
+
|
|
33
|
+
#endif // SRC_ASYNC_CONTEXT_FRAME_H_
|
|
@@ -49,6 +49,9 @@ inline double AsyncWrap::get_trigger_async_id() const {
|
|
|
49
49
|
return trigger_async_id_;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
inline v8::Local<v8::Value> AsyncWrap::context_frame() const {
|
|
53
|
+
return context_frame_.Get(env()->isolate());
|
|
54
|
+
}
|
|
52
55
|
|
|
53
56
|
inline v8::MaybeLocal<v8::Value> AsyncWrap::MakeCallback(
|
|
54
57
|
const v8::Local<v8::String> symbol,
|
|
@@ -80,12 +83,11 @@ inline v8::MaybeLocal<v8::Value> AsyncWrap::MakeCallback(
|
|
|
80
83
|
return MakeCallback(cb_v.As<v8::Function>(), argc, argv);
|
|
81
84
|
}
|
|
82
85
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
async_wrap->get_async_id()) {}
|
|
86
|
+
// static
|
|
87
|
+
inline v8::Local<v8::FunctionTemplate> AsyncWrap::GetConstructorTemplate(
|
|
88
|
+
Environment* env) {
|
|
89
|
+
return GetConstructorTemplate(env->isolate_data());
|
|
90
|
+
}
|
|
89
91
|
|
|
90
92
|
} // namespace node
|
|
91
93
|
|
|
@@ -31,82 +31,84 @@
|
|
|
31
31
|
|
|
32
32
|
namespace node {
|
|
33
33
|
|
|
34
|
-
#define NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V)
|
|
35
|
-
V(NONE)
|
|
36
|
-
V(DIRHANDLE)
|
|
37
|
-
V(DNSCHANNEL)
|
|
38
|
-
V(ELDHISTOGRAM)
|
|
39
|
-
V(FILEHANDLE)
|
|
40
|
-
V(FILEHANDLECLOSEREQ)
|
|
41
|
-
V(
|
|
42
|
-
V(FSEVENTWRAP)
|
|
43
|
-
V(FSREQCALLBACK)
|
|
44
|
-
V(FSREQPROMISE)
|
|
45
|
-
V(GETADDRINFOREQWRAP)
|
|
46
|
-
V(GETNAMEINFOREQWRAP)
|
|
47
|
-
V(HEAPSNAPSHOT)
|
|
48
|
-
V(HTTP2SESSION)
|
|
49
|
-
V(HTTP2STREAM)
|
|
50
|
-
V(HTTP2PING)
|
|
51
|
-
V(HTTP2SETTINGS)
|
|
52
|
-
V(HTTPINCOMINGMESSAGE)
|
|
53
|
-
V(HTTPCLIENTREQUEST)
|
|
54
|
-
V(
|
|
55
|
-
V(
|
|
56
|
-
V(
|
|
57
|
-
V(
|
|
58
|
-
V(
|
|
59
|
-
V(
|
|
60
|
-
V(
|
|
61
|
-
V(
|
|
62
|
-
V(
|
|
63
|
-
V(
|
|
64
|
-
V(
|
|
65
|
-
V(
|
|
66
|
-
V(
|
|
67
|
-
V(
|
|
68
|
-
V(
|
|
69
|
-
V(
|
|
70
|
-
V(
|
|
71
|
-
V(
|
|
72
|
-
V(
|
|
73
|
-
V(
|
|
74
|
-
V(
|
|
75
|
-
V(
|
|
76
|
-
V(
|
|
34
|
+
#define NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \
|
|
35
|
+
V(NONE) \
|
|
36
|
+
V(DIRHANDLE) \
|
|
37
|
+
V(DNSCHANNEL) \
|
|
38
|
+
V(ELDHISTOGRAM) \
|
|
39
|
+
V(FILEHANDLE) \
|
|
40
|
+
V(FILEHANDLECLOSEREQ) \
|
|
41
|
+
V(BLOBREADER) \
|
|
42
|
+
V(FSEVENTWRAP) \
|
|
43
|
+
V(FSREQCALLBACK) \
|
|
44
|
+
V(FSREQPROMISE) \
|
|
45
|
+
V(GETADDRINFOREQWRAP) \
|
|
46
|
+
V(GETNAMEINFOREQWRAP) \
|
|
47
|
+
V(HEAPSNAPSHOT) \
|
|
48
|
+
V(HTTP2SESSION) \
|
|
49
|
+
V(HTTP2STREAM) \
|
|
50
|
+
V(HTTP2PING) \
|
|
51
|
+
V(HTTP2SETTINGS) \
|
|
52
|
+
V(HTTPINCOMINGMESSAGE) \
|
|
53
|
+
V(HTTPCLIENTREQUEST) \
|
|
54
|
+
V(LOCKS) \
|
|
55
|
+
V(JSSTREAM) \
|
|
56
|
+
V(JSUDPWRAP) \
|
|
57
|
+
V(MESSAGEPORT) \
|
|
58
|
+
V(PIPECONNECTWRAP) \
|
|
59
|
+
V(PIPESERVERWRAP) \
|
|
60
|
+
V(PIPEWRAP) \
|
|
61
|
+
V(PROCESSWRAP) \
|
|
62
|
+
V(PROMISE) \
|
|
63
|
+
V(QUERYWRAP) \
|
|
64
|
+
V(QUIC_ENDPOINT) \
|
|
65
|
+
V(QUIC_LOGSTREAM) \
|
|
66
|
+
V(QUIC_PACKET) \
|
|
67
|
+
V(QUIC_SESSION) \
|
|
68
|
+
V(QUIC_STREAM) \
|
|
69
|
+
V(QUIC_UDP) \
|
|
70
|
+
V(SHUTDOWNWRAP) \
|
|
71
|
+
V(SIGNALWRAP) \
|
|
72
|
+
V(STATWATCHER) \
|
|
73
|
+
V(STREAMPIPE) \
|
|
74
|
+
V(TCPCONNECTWRAP) \
|
|
75
|
+
V(TCPSERVERWRAP) \
|
|
76
|
+
V(TCPWRAP) \
|
|
77
|
+
V(TTYWRAP) \
|
|
78
|
+
V(UDPSENDWRAP) \
|
|
79
|
+
V(UDPWRAP) \
|
|
80
|
+
V(SIGINTWATCHDOG) \
|
|
81
|
+
V(WORKER) \
|
|
82
|
+
V(WORKERCPUUSAGE) \
|
|
83
|
+
V(WORKERHEAPSNAPSHOT) \
|
|
84
|
+
V(WORKERHEAPSTATISTICS) \
|
|
85
|
+
V(WRITEWRAP) \
|
|
77
86
|
V(ZLIB)
|
|
78
87
|
|
|
79
88
|
#if HAVE_OPENSSL
|
|
80
|
-
#define NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V)
|
|
81
|
-
V(CHECKPRIMEREQUEST)
|
|
82
|
-
V(PBKDF2REQUEST)
|
|
83
|
-
V(KEYPAIRGENREQUEST)
|
|
84
|
-
V(KEYGENREQUEST)
|
|
85
|
-
V(KEYEXPORTREQUEST)
|
|
86
|
-
V(
|
|
87
|
-
V(
|
|
88
|
-
V(
|
|
89
|
-
V(
|
|
90
|
-
V(
|
|
91
|
-
V(
|
|
92
|
-
V(
|
|
93
|
-
V(
|
|
89
|
+
#define NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V) \
|
|
90
|
+
V(CHECKPRIMEREQUEST) \
|
|
91
|
+
V(PBKDF2REQUEST) \
|
|
92
|
+
V(KEYPAIRGENREQUEST) \
|
|
93
|
+
V(KEYGENREQUEST) \
|
|
94
|
+
V(KEYEXPORTREQUEST) \
|
|
95
|
+
V(ARGON2REQUEST) \
|
|
96
|
+
V(CIPHERREQUEST) \
|
|
97
|
+
V(DERIVEBITSREQUEST) \
|
|
98
|
+
V(HASHREQUEST) \
|
|
99
|
+
V(RANDOMBYTESREQUEST) \
|
|
100
|
+
V(RANDOMPRIMEREQUEST) \
|
|
101
|
+
V(SCRYPTREQUEST) \
|
|
102
|
+
V(SIGNREQUEST) \
|
|
103
|
+
V(TLSWRAP) \
|
|
94
104
|
V(VERIFYREQUEST)
|
|
95
105
|
#else
|
|
96
106
|
#define NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V)
|
|
97
107
|
#endif // HAVE_OPENSSL
|
|
98
108
|
|
|
99
|
-
#
|
|
100
|
-
|
|
101
|
-
V
|
|
102
|
-
#else
|
|
103
|
-
#define NODE_ASYNC_INSPECTOR_PROVIDER_TYPES(V)
|
|
104
|
-
#endif // HAVE_INSPECTOR
|
|
105
|
-
|
|
106
|
-
#define NODE_ASYNC_PROVIDER_TYPES(V) \
|
|
107
|
-
NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \
|
|
108
|
-
NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V) \
|
|
109
|
-
NODE_ASYNC_INSPECTOR_PROVIDER_TYPES(V)
|
|
109
|
+
#define NODE_ASYNC_PROVIDER_TYPES(V) \
|
|
110
|
+
NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \
|
|
111
|
+
NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V)
|
|
110
112
|
|
|
111
113
|
class Environment;
|
|
112
114
|
class DestroyParam;
|
|
@@ -138,13 +140,17 @@ class AsyncWrap : public BaseObject {
|
|
|
138
140
|
static constexpr double kInvalidAsyncId = -1;
|
|
139
141
|
|
|
140
142
|
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
143
|
+
IsolateData* isolate_data);
|
|
144
|
+
inline static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
141
145
|
Environment* env);
|
|
142
146
|
|
|
143
147
|
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
144
|
-
static void
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
+
static void CreatePerContextProperties(v8::Local<v8::Object> target,
|
|
149
|
+
v8::Local<v8::Value> unused,
|
|
150
|
+
v8::Local<v8::Context> context,
|
|
151
|
+
void* priv);
|
|
152
|
+
static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
|
153
|
+
v8::Local<v8::ObjectTemplate> target);
|
|
148
154
|
|
|
149
155
|
static void GetAsyncId(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
150
156
|
static void PushAsyncContext(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
@@ -173,6 +179,7 @@ class AsyncWrap : public BaseObject {
|
|
|
173
179
|
|
|
174
180
|
void EmitDestroy(bool from_gc = false);
|
|
175
181
|
|
|
182
|
+
void EmitTraceAsyncStart() const;
|
|
176
183
|
void EmitTraceEventBefore();
|
|
177
184
|
static void EmitTraceEventAfter(ProviderType type, double async_id);
|
|
178
185
|
void EmitTraceEventDestroy();
|
|
@@ -185,9 +192,10 @@ class AsyncWrap : public BaseObject {
|
|
|
185
192
|
inline double get_async_id() const;
|
|
186
193
|
inline double get_trigger_async_id() const;
|
|
187
194
|
|
|
195
|
+
inline v8::Local<v8::Value> context_frame() const;
|
|
196
|
+
|
|
188
197
|
void AsyncReset(v8::Local<v8::Object> resource,
|
|
189
|
-
double execution_async_id = kInvalidAsyncId
|
|
190
|
-
bool silent = false);
|
|
198
|
+
double execution_async_id = kInvalidAsyncId);
|
|
191
199
|
|
|
192
200
|
// Only call these within a valid HandleScope.
|
|
193
201
|
v8::MaybeLocal<v8::Value> MakeCallback(const v8::Local<v8::Function> cb,
|
|
@@ -207,7 +215,7 @@ class AsyncWrap : public BaseObject {
|
|
|
207
215
|
v8::Local<v8::Value>* argv);
|
|
208
216
|
|
|
209
217
|
virtual std::string diagnostic_name() const;
|
|
210
|
-
|
|
218
|
+
const char* MemoryInfoName() const override;
|
|
211
219
|
|
|
212
220
|
static void WeakCallback(const v8::WeakCallbackInfo<DestroyParam> &info);
|
|
213
221
|
|
|
@@ -220,23 +228,13 @@ class AsyncWrap : public BaseObject {
|
|
|
220
228
|
bool IsDoneInitializing() const override;
|
|
221
229
|
|
|
222
230
|
private:
|
|
223
|
-
friend class PromiseWrap;
|
|
224
|
-
|
|
225
|
-
AsyncWrap(Environment* env,
|
|
226
|
-
v8::Local<v8::Object> promise,
|
|
227
|
-
ProviderType provider,
|
|
228
|
-
double execution_async_id,
|
|
229
|
-
bool silent);
|
|
230
|
-
AsyncWrap(Environment* env,
|
|
231
|
-
v8::Local<v8::Object> promise,
|
|
232
|
-
ProviderType provider,
|
|
233
|
-
double execution_async_id,
|
|
234
|
-
double trigger_async_id);
|
|
235
231
|
ProviderType provider_type_ = PROVIDER_NONE;
|
|
236
232
|
bool init_hook_ran_ = false;
|
|
237
233
|
// Because the values may be Reset(), cannot be made const.
|
|
238
234
|
double async_id_ = kInvalidAsyncId;
|
|
239
|
-
double trigger_async_id_;
|
|
235
|
+
double trigger_async_id_ = kInvalidAsyncId;
|
|
236
|
+
|
|
237
|
+
v8::Global<v8::Value> context_frame_;
|
|
240
238
|
};
|
|
241
239
|
|
|
242
240
|
} // namespace node
|