@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
|
@@ -24,16 +24,18 @@
|
|
|
24
24
|
|
|
25
25
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
26
|
|
|
27
|
-
#include "aliased_buffer.h"
|
|
28
|
-
#include "allocated_buffer-inl.h"
|
|
27
|
+
#include "aliased_buffer-inl.h"
|
|
29
28
|
#include "callback_queue-inl.h"
|
|
30
29
|
#include "env.h"
|
|
31
30
|
#include "node.h"
|
|
31
|
+
#include "node_context_data.h"
|
|
32
|
+
#include "node_internals.h"
|
|
33
|
+
#include "node_perf_common.h"
|
|
34
|
+
#include "node_realm-inl.h"
|
|
32
35
|
#include "util-inl.h"
|
|
33
36
|
#include "uv.h"
|
|
37
|
+
#include "v8-cppgc.h"
|
|
34
38
|
#include "v8.h"
|
|
35
|
-
#include "node_perf_common.h"
|
|
36
|
-
#include "node_context_data.h"
|
|
37
39
|
|
|
38
40
|
#include <cstddef>
|
|
39
41
|
#include <cstdint>
|
|
@@ -50,6 +52,14 @@ inline uv_loop_t* IsolateData::event_loop() const {
|
|
|
50
52
|
return event_loop_;
|
|
51
53
|
}
|
|
52
54
|
|
|
55
|
+
inline uint16_t* IsolateData::embedder_id_for_cppgc() const {
|
|
56
|
+
return &(wrapper_data_->cppgc_id);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
inline uint16_t* IsolateData::embedder_id_for_non_cppgc() const {
|
|
60
|
+
return &(wrapper_data_->non_cppgc_id);
|
|
61
|
+
}
|
|
62
|
+
|
|
53
63
|
inline NodeArrayBufferAllocator* IsolateData::node_allocator() const {
|
|
54
64
|
return node_allocator_;
|
|
55
65
|
}
|
|
@@ -58,6 +68,10 @@ inline MultiIsolatePlatform* IsolateData::platform() const {
|
|
|
58
68
|
return platform_;
|
|
59
69
|
}
|
|
60
70
|
|
|
71
|
+
inline const SnapshotData* IsolateData::snapshot_data() const {
|
|
72
|
+
return snapshot_data_;
|
|
73
|
+
}
|
|
74
|
+
|
|
61
75
|
inline void IsolateData::set_worker_context(worker::Worker* context) {
|
|
62
76
|
CHECK_NULL(worker_context_); // Should be set only once.
|
|
63
77
|
worker_context_ = context;
|
|
@@ -84,7 +98,7 @@ inline AliasedFloat64Array& AsyncHooks::async_ids_stack() {
|
|
|
84
98
|
}
|
|
85
99
|
|
|
86
100
|
v8::Local<v8::Array> AsyncHooks::js_execution_async_resources() {
|
|
87
|
-
if (
|
|
101
|
+
if (js_execution_async_resources_.IsEmpty()) [[unlikely]] {
|
|
88
102
|
js_execution_async_resources_.Reset(
|
|
89
103
|
env()->isolate(), v8::Array::New(env()->isolate()));
|
|
90
104
|
}
|
|
@@ -93,26 +107,7 @@ v8::Local<v8::Array> AsyncHooks::js_execution_async_resources() {
|
|
|
93
107
|
|
|
94
108
|
v8::Local<v8::Object> AsyncHooks::native_execution_async_resource(size_t i) {
|
|
95
109
|
if (i >= native_execution_async_resources_.size()) return {};
|
|
96
|
-
return
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
inline void AsyncHooks::SetJSPromiseHooks(v8::Local<v8::Function> init,
|
|
100
|
-
v8::Local<v8::Function> before,
|
|
101
|
-
v8::Local<v8::Function> after,
|
|
102
|
-
v8::Local<v8::Function> resolve) {
|
|
103
|
-
js_promise_hooks_[0].Reset(env()->isolate(), init);
|
|
104
|
-
js_promise_hooks_[1].Reset(env()->isolate(), before);
|
|
105
|
-
js_promise_hooks_[2].Reset(env()->isolate(), after);
|
|
106
|
-
js_promise_hooks_[3].Reset(env()->isolate(), resolve);
|
|
107
|
-
for (auto it = contexts_.begin(); it != contexts_.end(); it++) {
|
|
108
|
-
if (it->IsEmpty()) {
|
|
109
|
-
it = contexts_.erase(it);
|
|
110
|
-
it--;
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
PersistentToLocal::Weak(env()->isolate(), *it)
|
|
114
|
-
->SetPromiseHooks(init, before, after, resolve);
|
|
115
|
-
}
|
|
110
|
+
return native_execution_async_resources_[i];
|
|
116
111
|
}
|
|
117
112
|
|
|
118
113
|
inline v8::Local<v8::String> AsyncHooks::provider_string(int idx) {
|
|
@@ -127,177 +122,6 @@ inline Environment* AsyncHooks::env() {
|
|
|
127
122
|
return Environment::ForAsyncHooks(this);
|
|
128
123
|
}
|
|
129
124
|
|
|
130
|
-
// Remember to keep this code aligned with pushAsyncContext() in JS.
|
|
131
|
-
inline void AsyncHooks::push_async_context(double async_id,
|
|
132
|
-
double trigger_async_id,
|
|
133
|
-
v8::Local<v8::Object> resource) {
|
|
134
|
-
// Since async_hooks is experimental, do only perform the check
|
|
135
|
-
// when async_hooks is enabled.
|
|
136
|
-
if (fields_[kCheck] > 0) {
|
|
137
|
-
CHECK_GE(async_id, -1);
|
|
138
|
-
CHECK_GE(trigger_async_id, -1);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
uint32_t offset = fields_[kStackLength];
|
|
142
|
-
if (offset * 2 >= async_ids_stack_.Length())
|
|
143
|
-
grow_async_ids_stack();
|
|
144
|
-
async_ids_stack_[2 * offset] = async_id_fields_[kExecutionAsyncId];
|
|
145
|
-
async_ids_stack_[2 * offset + 1] = async_id_fields_[kTriggerAsyncId];
|
|
146
|
-
fields_[kStackLength] += 1;
|
|
147
|
-
async_id_fields_[kExecutionAsyncId] = async_id;
|
|
148
|
-
async_id_fields_[kTriggerAsyncId] = trigger_async_id;
|
|
149
|
-
|
|
150
|
-
#ifdef DEBUG
|
|
151
|
-
for (uint32_t i = offset; i < native_execution_async_resources_.size(); i++)
|
|
152
|
-
CHECK(native_execution_async_resources_[i].IsEmpty());
|
|
153
|
-
#endif
|
|
154
|
-
|
|
155
|
-
// When this call comes from JS (as a way of increasing the stack size),
|
|
156
|
-
// `resource` will be empty, because JS caches these values anyway, and
|
|
157
|
-
// we should avoid creating strong global references that might keep
|
|
158
|
-
// these JS resource objects alive longer than necessary.
|
|
159
|
-
if (!resource.IsEmpty()) {
|
|
160
|
-
native_execution_async_resources_.resize(offset + 1);
|
|
161
|
-
native_execution_async_resources_[offset].Reset(env()->isolate(), resource);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// Remember to keep this code aligned with popAsyncContext() in JS.
|
|
166
|
-
inline bool AsyncHooks::pop_async_context(double async_id) {
|
|
167
|
-
// In case of an exception then this may have already been reset, if the
|
|
168
|
-
// stack was multiple MakeCallback()'s deep.
|
|
169
|
-
if (fields_[kStackLength] == 0) return false;
|
|
170
|
-
|
|
171
|
-
// Ask for the async_id to be restored as a check that the stack
|
|
172
|
-
// hasn't been corrupted.
|
|
173
|
-
// Since async_hooks is experimental, do only perform the check
|
|
174
|
-
// when async_hooks is enabled.
|
|
175
|
-
if (fields_[kCheck] > 0 && async_id_fields_[kExecutionAsyncId] != async_id) {
|
|
176
|
-
fprintf(stderr,
|
|
177
|
-
"Error: async hook stack has become corrupted ("
|
|
178
|
-
"actual: %.f, expected: %.f)\n",
|
|
179
|
-
async_id_fields_.GetValue(kExecutionAsyncId),
|
|
180
|
-
async_id);
|
|
181
|
-
DumpBacktrace(stderr);
|
|
182
|
-
fflush(stderr);
|
|
183
|
-
if (!env()->abort_on_uncaught_exception())
|
|
184
|
-
exit(1);
|
|
185
|
-
fprintf(stderr, "\n");
|
|
186
|
-
fflush(stderr);
|
|
187
|
-
ABORT_NO_BACKTRACE();
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
uint32_t offset = fields_[kStackLength] - 1;
|
|
191
|
-
async_id_fields_[kExecutionAsyncId] = async_ids_stack_[2 * offset];
|
|
192
|
-
async_id_fields_[kTriggerAsyncId] = async_ids_stack_[2 * offset + 1];
|
|
193
|
-
fields_[kStackLength] = offset;
|
|
194
|
-
|
|
195
|
-
if (LIKELY(offset < native_execution_async_resources_.size() &&
|
|
196
|
-
!native_execution_async_resources_[offset].IsEmpty())) {
|
|
197
|
-
#ifdef DEBUG
|
|
198
|
-
for (uint32_t i = offset + 1;
|
|
199
|
-
i < native_execution_async_resources_.size();
|
|
200
|
-
i++) {
|
|
201
|
-
CHECK(native_execution_async_resources_[i].IsEmpty());
|
|
202
|
-
}
|
|
203
|
-
#endif
|
|
204
|
-
native_execution_async_resources_.resize(offset);
|
|
205
|
-
if (native_execution_async_resources_.size() <
|
|
206
|
-
native_execution_async_resources_.capacity() / 2 &&
|
|
207
|
-
native_execution_async_resources_.size() > 16) {
|
|
208
|
-
native_execution_async_resources_.shrink_to_fit();
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
if (UNLIKELY(js_execution_async_resources()->Length() > offset)) {
|
|
213
|
-
v8::HandleScope handle_scope(env()->isolate());
|
|
214
|
-
USE(js_execution_async_resources()->Set(
|
|
215
|
-
env()->context(),
|
|
216
|
-
env()->length_string(),
|
|
217
|
-
v8::Integer::NewFromUnsigned(env()->isolate(), offset)));
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
return fields_[kStackLength] > 0;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
void AsyncHooks::clear_async_id_stack() {
|
|
224
|
-
v8::Isolate* isolate = env()->isolate();
|
|
225
|
-
v8::HandleScope handle_scope(isolate);
|
|
226
|
-
if (!js_execution_async_resources_.IsEmpty()) {
|
|
227
|
-
USE(PersistentToLocal::Strong(js_execution_async_resources_)->Set(
|
|
228
|
-
env()->context(),
|
|
229
|
-
env()->length_string(),
|
|
230
|
-
v8::Integer::NewFromUnsigned(isolate, 0)));
|
|
231
|
-
}
|
|
232
|
-
native_execution_async_resources_.clear();
|
|
233
|
-
native_execution_async_resources_.shrink_to_fit();
|
|
234
|
-
|
|
235
|
-
async_id_fields_[kExecutionAsyncId] = 0;
|
|
236
|
-
async_id_fields_[kTriggerAsyncId] = 0;
|
|
237
|
-
fields_[kStackLength] = 0;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
inline void AsyncHooks::AddContext(v8::Local<v8::Context> ctx) {
|
|
241
|
-
ctx->SetPromiseHooks(
|
|
242
|
-
js_promise_hooks_[0].IsEmpty() ?
|
|
243
|
-
v8::Local<v8::Function>() :
|
|
244
|
-
PersistentToLocal::Strong(js_promise_hooks_[0]),
|
|
245
|
-
js_promise_hooks_[1].IsEmpty() ?
|
|
246
|
-
v8::Local<v8::Function>() :
|
|
247
|
-
PersistentToLocal::Strong(js_promise_hooks_[1]),
|
|
248
|
-
js_promise_hooks_[2].IsEmpty() ?
|
|
249
|
-
v8::Local<v8::Function>() :
|
|
250
|
-
PersistentToLocal::Strong(js_promise_hooks_[2]),
|
|
251
|
-
js_promise_hooks_[3].IsEmpty() ?
|
|
252
|
-
v8::Local<v8::Function>() :
|
|
253
|
-
PersistentToLocal::Strong(js_promise_hooks_[3]));
|
|
254
|
-
|
|
255
|
-
size_t id = contexts_.size();
|
|
256
|
-
contexts_.resize(id + 1);
|
|
257
|
-
contexts_[id].Reset(env()->isolate(), ctx);
|
|
258
|
-
contexts_[id].SetWeak();
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
inline void AsyncHooks::RemoveContext(v8::Local<v8::Context> ctx) {
|
|
262
|
-
v8::Isolate* isolate = env()->isolate();
|
|
263
|
-
v8::HandleScope handle_scope(isolate);
|
|
264
|
-
for (auto it = contexts_.begin(); it != contexts_.end(); it++) {
|
|
265
|
-
if (it->IsEmpty()) {
|
|
266
|
-
it = contexts_.erase(it);
|
|
267
|
-
it--;
|
|
268
|
-
continue;
|
|
269
|
-
}
|
|
270
|
-
v8::Local<v8::Context> saved_context =
|
|
271
|
-
PersistentToLocal::Weak(isolate, *it);
|
|
272
|
-
if (saved_context == ctx) {
|
|
273
|
-
it->Reset();
|
|
274
|
-
contexts_.erase(it);
|
|
275
|
-
break;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
// The DefaultTriggerAsyncIdScope(AsyncWrap*) constructor is defined in
|
|
281
|
-
// async_wrap-inl.h to avoid a circular dependency.
|
|
282
|
-
|
|
283
|
-
inline AsyncHooks::DefaultTriggerAsyncIdScope ::DefaultTriggerAsyncIdScope(
|
|
284
|
-
Environment* env, double default_trigger_async_id)
|
|
285
|
-
: async_hooks_(env->async_hooks()) {
|
|
286
|
-
if (env->async_hooks()->fields()[AsyncHooks::kCheck] > 0) {
|
|
287
|
-
CHECK_GE(default_trigger_async_id, 0);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
old_default_trigger_async_id_ =
|
|
291
|
-
async_hooks_->async_id_fields()[AsyncHooks::kDefaultTriggerAsyncId];
|
|
292
|
-
async_hooks_->async_id_fields()[AsyncHooks::kDefaultTriggerAsyncId] =
|
|
293
|
-
default_trigger_async_id;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
inline AsyncHooks::DefaultTriggerAsyncIdScope ::~DefaultTriggerAsyncIdScope() {
|
|
297
|
-
async_hooks_->async_id_fields()[AsyncHooks::kDefaultTriggerAsyncId] =
|
|
298
|
-
old_default_trigger_async_id_;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
125
|
Environment* Environment::ForAsyncHooks(AsyncHooks* hooks) {
|
|
302
126
|
return ContainerOf(&Environment::async_hooks_, hooks);
|
|
303
127
|
}
|
|
@@ -350,41 +174,15 @@ inline bool TickInfo::has_rejection_to_warn() const {
|
|
|
350
174
|
return fields_[kHasRejectionToWarn] == 1;
|
|
351
175
|
}
|
|
352
176
|
|
|
353
|
-
inline void Environment::AssignToContext(v8::Local<v8::Context> context,
|
|
354
|
-
const ContextInfo& info) {
|
|
355
|
-
context->SetAlignedPointerInEmbedderData(
|
|
356
|
-
ContextEmbedderIndex::kEnvironment, this);
|
|
357
|
-
// Used by Environment::GetCurrent to know that we are on a node context.
|
|
358
|
-
context->SetAlignedPointerInEmbedderData(
|
|
359
|
-
ContextEmbedderIndex::kContextTag, Environment::kNodeContextTagPtr);
|
|
360
|
-
// Used to retrieve bindings
|
|
361
|
-
context->SetAlignedPointerInEmbedderData(
|
|
362
|
-
ContextEmbedderIndex::kBindingListIndex, &(this->bindings_));
|
|
363
|
-
|
|
364
|
-
#if HAVE_INSPECTOR
|
|
365
|
-
inspector_agent()->ContextCreated(context, info);
|
|
366
|
-
#endif // HAVE_INSPECTOR
|
|
367
|
-
|
|
368
|
-
this->async_hooks()->AddContext(context);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
177
|
inline Environment* Environment::GetCurrent(v8::Isolate* isolate) {
|
|
372
|
-
if (
|
|
178
|
+
if (!isolate->InContext()) [[unlikely]]
|
|
179
|
+
return nullptr;
|
|
373
180
|
v8::HandleScope handle_scope(isolate);
|
|
374
181
|
return GetCurrent(isolate->GetCurrentContext());
|
|
375
182
|
}
|
|
376
183
|
|
|
377
184
|
inline Environment* Environment::GetCurrent(v8::Local<v8::Context> context) {
|
|
378
|
-
if (
|
|
379
|
-
return nullptr;
|
|
380
|
-
}
|
|
381
|
-
if (UNLIKELY(context->GetNumberOfEmbedderDataFields() <=
|
|
382
|
-
ContextEmbedderIndex::kContextTag)) {
|
|
383
|
-
return nullptr;
|
|
384
|
-
}
|
|
385
|
-
if (UNLIKELY(context->GetAlignedPointerFromEmbedderData(
|
|
386
|
-
ContextEmbedderIndex::kContextTag) !=
|
|
387
|
-
Environment::kNodeContextTagPtr)) {
|
|
185
|
+
if (!ContextEmbedderTag::IsNodeContext(context)) [[unlikely]] {
|
|
388
186
|
return nullptr;
|
|
389
187
|
}
|
|
390
188
|
return static_cast<Environment*>(
|
|
@@ -403,50 +201,17 @@ inline Environment* Environment::GetCurrent(
|
|
|
403
201
|
return GetCurrent(info.GetIsolate()->GetCurrentContext());
|
|
404
202
|
}
|
|
405
203
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
return GetBindingData<T>(info.GetIsolate()->GetCurrentContext());
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
template <typename T>
|
|
412
|
-
inline T* Environment::GetBindingData(
|
|
413
|
-
const v8::FunctionCallbackInfo<v8::Value>& info) {
|
|
414
|
-
return GetBindingData<T>(info.GetIsolate()->GetCurrentContext());
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
template <typename T>
|
|
418
|
-
inline T* Environment::GetBindingData(v8::Local<v8::Context> context) {
|
|
419
|
-
BindingDataStore* map = static_cast<BindingDataStore*>(
|
|
420
|
-
context->GetAlignedPointerFromEmbedderData(
|
|
421
|
-
ContextEmbedderIndex::kBindingListIndex));
|
|
422
|
-
DCHECK_NOT_NULL(map);
|
|
423
|
-
auto it = map->find(T::type_name);
|
|
424
|
-
if (UNLIKELY(it == map->end())) return nullptr;
|
|
425
|
-
T* result = static_cast<T*>(it->second.get());
|
|
426
|
-
DCHECK_NOT_NULL(result);
|
|
427
|
-
DCHECK_EQ(result->env(), GetCurrent(context));
|
|
428
|
-
return result;
|
|
204
|
+
inline v8::Isolate* Environment::isolate() const {
|
|
205
|
+
return isolate_;
|
|
429
206
|
}
|
|
430
207
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
v8::Local<v8::Context> context,
|
|
434
|
-
v8::Local<v8::Object> target) {
|
|
435
|
-
DCHECK_EQ(GetCurrent(context), this);
|
|
436
|
-
// This won't compile if T is not a BaseObject subclass.
|
|
437
|
-
BaseObjectPtr<T> item = MakeDetachedBaseObject<T>(this, target);
|
|
438
|
-
BindingDataStore* map = static_cast<BindingDataStore*>(
|
|
439
|
-
context->GetAlignedPointerFromEmbedderData(
|
|
440
|
-
ContextEmbedderIndex::kBindingListIndex));
|
|
441
|
-
DCHECK_NOT_NULL(map);
|
|
442
|
-
auto result = map->emplace(T::type_name, item);
|
|
443
|
-
CHECK(result.second);
|
|
444
|
-
DCHECK_EQ(GetBindingData<T>(context), item.get());
|
|
445
|
-
return item.get();
|
|
208
|
+
inline cppgc::AllocationHandle& Environment::cppgc_allocation_handle() const {
|
|
209
|
+
return isolate_->GetCppHeap()->GetAllocationHandle();
|
|
446
210
|
}
|
|
447
211
|
|
|
448
|
-
inline v8::
|
|
449
|
-
|
|
212
|
+
inline v8::ExternalMemoryAccounter* Environment::external_memory_accounter()
|
|
213
|
+
const {
|
|
214
|
+
return external_memory_accounter_;
|
|
450
215
|
}
|
|
451
216
|
|
|
452
217
|
inline Environment* Environment::from_timer_handle(uv_timer_t* handle) {
|
|
@@ -470,12 +235,6 @@ inline uv_idle_t* Environment::immediate_idle_handle() {
|
|
|
470
235
|
return &immediate_idle_handle_;
|
|
471
236
|
}
|
|
472
237
|
|
|
473
|
-
inline void Environment::RegisterHandleCleanup(uv_handle_t* handle,
|
|
474
|
-
HandleCleanupCb cb,
|
|
475
|
-
void* arg) {
|
|
476
|
-
handle_cleanup_queue_.push_back(HandleCleanup{handle, cb, arg});
|
|
477
|
-
}
|
|
478
|
-
|
|
479
238
|
template <typename T, typename OnCloseCallback>
|
|
480
239
|
inline void Environment::CloseHandle(T* handle, OnCloseCallback callback) {
|
|
481
240
|
handle_cleanup_waiting_++;
|
|
@@ -511,16 +270,6 @@ inline uv_loop_t* Environment::event_loop() const {
|
|
|
511
270
|
return isolate_data()->event_loop();
|
|
512
271
|
}
|
|
513
272
|
|
|
514
|
-
inline void Environment::TryLoadAddon(
|
|
515
|
-
const char* filename,
|
|
516
|
-
int flags,
|
|
517
|
-
const std::function<bool(binding::DLib*)>& was_loaded) {
|
|
518
|
-
loaded_addons_.emplace_back(filename, flags);
|
|
519
|
-
if (!was_loaded(&loaded_addons_.back())) {
|
|
520
|
-
loaded_addons_.pop_back();
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
|
|
524
273
|
#if HAVE_INSPECTOR
|
|
525
274
|
inline bool Environment::is_in_inspector_console_call() const {
|
|
526
275
|
return is_in_inspector_console_call_;
|
|
@@ -539,10 +288,18 @@ inline ImmediateInfo* Environment::immediate_info() {
|
|
|
539
288
|
return &immediate_info_;
|
|
540
289
|
}
|
|
541
290
|
|
|
291
|
+
inline AliasedInt32Array& Environment::timeout_info() {
|
|
292
|
+
return timeout_info_;
|
|
293
|
+
}
|
|
294
|
+
|
|
542
295
|
inline TickInfo* Environment::tick_info() {
|
|
543
296
|
return &tick_info_;
|
|
544
297
|
}
|
|
545
298
|
|
|
299
|
+
inline permission::Permission* Environment::permission() {
|
|
300
|
+
return &permission_;
|
|
301
|
+
}
|
|
302
|
+
|
|
546
303
|
inline uint64_t Environment::timer_base() const {
|
|
547
304
|
return timer_base_;
|
|
548
305
|
}
|
|
@@ -579,6 +336,29 @@ inline bool Environment::force_context_aware() const {
|
|
|
579
336
|
return options_->force_context_aware;
|
|
580
337
|
}
|
|
581
338
|
|
|
339
|
+
inline void Environment::set_exiting(bool value) {
|
|
340
|
+
exit_info_[kExiting] = value ? 1 : 0;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
inline bool Environment::exiting() const {
|
|
344
|
+
return exit_info_[kExiting] == 1;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
inline ExitCode Environment::exit_code(const ExitCode default_code) const {
|
|
348
|
+
return exit_info_[kHasExitCode] == 0
|
|
349
|
+
? default_code
|
|
350
|
+
: static_cast<ExitCode>(exit_info_[kExitCode]);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
inline void Environment::set_exit_code(const ExitCode code) {
|
|
354
|
+
exit_info_[kExitCode] = static_cast<int>(code);
|
|
355
|
+
exit_info_[kHasExitCode] = 1;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
inline AliasedInt32Array& Environment::exit_info() {
|
|
359
|
+
return exit_info_;
|
|
360
|
+
}
|
|
361
|
+
|
|
582
362
|
inline void Environment::set_abort_on_uncaught_exception(bool value) {
|
|
583
363
|
options_->abort_on_uncaught_exception = value;
|
|
584
364
|
}
|
|
@@ -591,16 +371,6 @@ inline AliasedInt32Array& Environment::stream_base_state() {
|
|
|
591
371
|
return stream_base_state_;
|
|
592
372
|
}
|
|
593
373
|
|
|
594
|
-
inline uint32_t Environment::get_next_module_id() {
|
|
595
|
-
return module_id_counter_++;
|
|
596
|
-
}
|
|
597
|
-
inline uint32_t Environment::get_next_script_id() {
|
|
598
|
-
return script_id_counter_++;
|
|
599
|
-
}
|
|
600
|
-
inline uint32_t Environment::get_next_function_id() {
|
|
601
|
-
return function_id_counter_++;
|
|
602
|
-
}
|
|
603
|
-
|
|
604
374
|
ShouldNotAbortOnUncaughtScope::ShouldNotAbortOnUncaughtScope(
|
|
605
375
|
Environment* env)
|
|
606
376
|
: env_(env) {
|
|
@@ -634,6 +404,18 @@ inline std::vector<double>* Environment::destroy_async_id_list() {
|
|
|
634
404
|
return &destroy_async_id_list_;
|
|
635
405
|
}
|
|
636
406
|
|
|
407
|
+
inline builtins::BuiltinLoader* Environment::builtin_loader() {
|
|
408
|
+
return &builtin_loader_;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
inline const EmbedderPreloadCallback& Environment::embedder_preload() const {
|
|
412
|
+
return embedder_preload_;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
inline void Environment::set_embedder_preload(EmbedderPreloadCallback fn) {
|
|
416
|
+
embedder_preload_ = std::move(fn);
|
|
417
|
+
}
|
|
418
|
+
|
|
637
419
|
inline double Environment::new_async_id() {
|
|
638
420
|
async_hooks()->async_id_fields()[AsyncHooks::kAsyncIdCounter] += 1;
|
|
639
421
|
return async_hooks()->async_id_fields()[AsyncHooks::kAsyncIdCounter];
|
|
@@ -656,6 +438,10 @@ inline double Environment::get_default_trigger_async_id() {
|
|
|
656
438
|
return default_trigger_async_id;
|
|
657
439
|
}
|
|
658
440
|
|
|
441
|
+
inline int64_t Environment::stack_trace_limit() const {
|
|
442
|
+
return isolate_data_->options()->stack_trace_limit;
|
|
443
|
+
}
|
|
444
|
+
|
|
659
445
|
inline std::shared_ptr<EnvironmentOptions> Environment::options() {
|
|
660
446
|
return options_;
|
|
661
447
|
}
|
|
@@ -672,20 +458,14 @@ inline const std::string& Environment::exec_path() const {
|
|
|
672
458
|
return exec_path_;
|
|
673
459
|
}
|
|
674
460
|
|
|
675
|
-
inline
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
if (err == 0) {
|
|
681
|
-
CHECK_GT(size, 0);
|
|
682
|
-
return cwd;
|
|
683
|
-
}
|
|
461
|
+
inline CompileCacheHandler* Environment::compile_cache_handler() {
|
|
462
|
+
auto* result = compile_cache_handler_.get();
|
|
463
|
+
DCHECK_NOT_NULL(result);
|
|
464
|
+
return result;
|
|
465
|
+
}
|
|
684
466
|
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
const std::string& exec_path = exec_path_;
|
|
688
|
-
return exec_path.substr(0, exec_path.find_last_of(kPathSeparator));
|
|
467
|
+
inline bool Environment::use_compile_cache() const {
|
|
468
|
+
return compile_cache_handler_.get() != nullptr;
|
|
689
469
|
}
|
|
690
470
|
|
|
691
471
|
#if HAVE_INSPECTOR
|
|
@@ -788,11 +568,6 @@ inline std::shared_ptr<PerIsolateOptions> IsolateData::options() {
|
|
|
788
568
|
return options_;
|
|
789
569
|
}
|
|
790
570
|
|
|
791
|
-
inline void IsolateData::set_options(
|
|
792
|
-
std::shared_ptr<PerIsolateOptions> options) {
|
|
793
|
-
options_ = std::move(options);
|
|
794
|
-
}
|
|
795
|
-
|
|
796
571
|
template <typename Fn>
|
|
797
572
|
void Environment::SetImmediate(Fn&& cb, CallbackFlags::Flags flags) {
|
|
798
573
|
auto callback = native_immediates_.CreateCallback(std::move(cb), flags);
|
|
@@ -839,15 +614,7 @@ inline void Environment::set_can_call_into_js(bool can_call_into_js) {
|
|
|
839
614
|
}
|
|
840
615
|
|
|
841
616
|
inline bool Environment::has_run_bootstrapping_code() const {
|
|
842
|
-
return
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
inline void Environment::DoneBootstrapping() {
|
|
846
|
-
has_run_bootstrapping_code_ = true;
|
|
847
|
-
// This adjusts the return value of base_object_created_after_bootstrap() so
|
|
848
|
-
// that tests that check the count do not have to account for internally
|
|
849
|
-
// created BaseObjects.
|
|
850
|
-
base_object_created_by_bootstrap_ = base_object_count_;
|
|
617
|
+
return principal_realm_->has_run_bootstrapping_code();
|
|
851
618
|
}
|
|
852
619
|
|
|
853
620
|
inline bool Environment::has_serialized_options() const {
|
|
@@ -879,6 +646,16 @@ inline bool Environment::owns_inspector() const {
|
|
|
879
646
|
return flags_ & EnvironmentFlags::kOwnsInspector;
|
|
880
647
|
}
|
|
881
648
|
|
|
649
|
+
inline bool Environment::should_create_inspector() const {
|
|
650
|
+
return (flags_ & EnvironmentFlags::kNoCreateInspector) == 0 &&
|
|
651
|
+
!(options_->test_runner && options_->test_isolation == "process") &&
|
|
652
|
+
!options_->watch_mode;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
inline bool Environment::should_wait_for_inspector_frontend() const {
|
|
656
|
+
return (flags_ & EnvironmentFlags::kNoWaitForInspectorFrontend) == 0;
|
|
657
|
+
}
|
|
658
|
+
|
|
882
659
|
inline bool Environment::tracks_unmanaged_fds() const {
|
|
883
660
|
return flags_ & EnvironmentFlags::kTrackUnmanagedFds;
|
|
884
661
|
}
|
|
@@ -892,6 +669,20 @@ inline bool Environment::no_global_search_paths() const {
|
|
|
892
669
|
!options_->global_search_paths;
|
|
893
670
|
}
|
|
894
671
|
|
|
672
|
+
inline bool Environment::should_start_debug_signal_handler() const {
|
|
673
|
+
return ((flags_ & EnvironmentFlags::kNoStartDebugSignalHandler) == 0) &&
|
|
674
|
+
!options_->disable_sigusr1;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
inline bool Environment::no_browser_globals() const {
|
|
678
|
+
// configure --no-browser-globals
|
|
679
|
+
#ifdef NODE_NO_BROWSER_GLOBALS
|
|
680
|
+
return true;
|
|
681
|
+
#else
|
|
682
|
+
return flags_ & EnvironmentFlags::kNoBrowserGlobals;
|
|
683
|
+
#endif
|
|
684
|
+
}
|
|
685
|
+
|
|
895
686
|
bool Environment::filehandle_close_warning() const {
|
|
896
687
|
return emit_filehandle_warning_;
|
|
897
688
|
}
|
|
@@ -912,6 +703,10 @@ inline uint64_t Environment::thread_id() const {
|
|
|
912
703
|
return thread_id_;
|
|
913
704
|
}
|
|
914
705
|
|
|
706
|
+
inline std::string_view Environment::thread_name() const {
|
|
707
|
+
return thread_name_;
|
|
708
|
+
}
|
|
709
|
+
|
|
915
710
|
inline worker::Worker* Environment::worker_context() const {
|
|
916
711
|
return isolate_data()->worker_context();
|
|
917
712
|
}
|
|
@@ -929,15 +724,6 @@ inline void Environment::ForEachWorker(Fn&& iterator) {
|
|
|
929
724
|
for (worker::Worker* w : sub_worker_contexts_) iterator(w);
|
|
930
725
|
}
|
|
931
726
|
|
|
932
|
-
inline void Environment::add_refs(int64_t diff) {
|
|
933
|
-
task_queues_async_refs_ += diff;
|
|
934
|
-
CHECK_GE(task_queues_async_refs_, 0);
|
|
935
|
-
if (task_queues_async_refs_ == 0)
|
|
936
|
-
uv_unref(reinterpret_cast<uv_handle_t*>(&task_queues_async_));
|
|
937
|
-
else
|
|
938
|
-
uv_ref(reinterpret_cast<uv_handle_t*>(&task_queues_async_));
|
|
939
|
-
}
|
|
940
|
-
|
|
941
727
|
inline bool Environment::is_stopping() const {
|
|
942
728
|
return is_stopping_.load();
|
|
943
729
|
}
|
|
@@ -972,32 +758,10 @@ inline IsolateData* Environment::isolate_data() const {
|
|
|
972
758
|
return isolate_data_;
|
|
973
759
|
}
|
|
974
760
|
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
v8::ArrayBuffer::NewBackingStore(isolate(), suggested_size);
|
|
980
|
-
uv_buf_t buf = uv_buf_init(static_cast<char*>(bs->Data()), bs->ByteLength());
|
|
981
|
-
released_allocated_buffers()->emplace(buf.base, std::move(bs));
|
|
982
|
-
return buf;
|
|
983
|
-
}
|
|
984
|
-
|
|
985
|
-
inline std::unique_ptr<v8::BackingStore> Environment::release_managed_buffer(
|
|
986
|
-
const uv_buf_t& buf) {
|
|
987
|
-
std::unique_ptr<v8::BackingStore> bs;
|
|
988
|
-
if (buf.base != nullptr) {
|
|
989
|
-
auto map = released_allocated_buffers();
|
|
990
|
-
auto it = map->find(buf.base);
|
|
991
|
-
CHECK_NE(it, map->end());
|
|
992
|
-
bs = std::move(it->second);
|
|
993
|
-
map->erase(it);
|
|
994
|
-
}
|
|
995
|
-
return bs;
|
|
996
|
-
}
|
|
997
|
-
|
|
998
|
-
std::unordered_map<char*, std::unique_ptr<v8::BackingStore>>*
|
|
999
|
-
Environment::released_allocated_buffers() {
|
|
1000
|
-
return &released_allocated_buffers_;
|
|
761
|
+
template <typename T>
|
|
762
|
+
inline void Environment::ForEachRealm(T&& iterator) const {
|
|
763
|
+
// TODO(legendecas): iterate over more realms bound to the environment.
|
|
764
|
+
iterator(principal_realm());
|
|
1001
765
|
}
|
|
1002
766
|
|
|
1003
767
|
inline void Environment::ThrowError(const char* errmsg) {
|
|
@@ -1013,10 +777,17 @@ inline void Environment::ThrowRangeError(const char* errmsg) {
|
|
|
1013
777
|
}
|
|
1014
778
|
|
|
1015
779
|
inline void Environment::ThrowError(
|
|
1016
|
-
v8::Local<v8::Value> (*fun)(v8::Local<v8::String>),
|
|
780
|
+
v8::Local<v8::Value> (*fun)(v8::Local<v8::String>, v8::Local<v8::Value>),
|
|
1017
781
|
const char* errmsg) {
|
|
1018
782
|
v8::HandleScope handle_scope(isolate());
|
|
1019
|
-
isolate()->ThrowException(fun(OneByteString(isolate(), errmsg)));
|
|
783
|
+
isolate()->ThrowException(fun(OneByteString(isolate(), errmsg), {}));
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
inline void Environment::ThrowStdErrException(std::error_code error_code,
|
|
787
|
+
const char* syscall,
|
|
788
|
+
const char* path) {
|
|
789
|
+
ThrowErrnoException(
|
|
790
|
+
error_code.value(), syscall, error_code.message().c_str(), path);
|
|
1020
791
|
}
|
|
1021
792
|
|
|
1022
793
|
inline void Environment::ThrowErrnoException(int errorno,
|
|
@@ -1036,193 +807,23 @@ inline void Environment::ThrowUVException(int errorno,
|
|
|
1036
807
|
UVException(isolate(), errorno, syscall, message, path, dest));
|
|
1037
808
|
}
|
|
1038
809
|
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
v8::Local<v8::Signature> signature,
|
|
1042
|
-
v8::ConstructorBehavior behavior,
|
|
1043
|
-
v8::SideEffectType side_effect_type) {
|
|
1044
|
-
return v8::FunctionTemplate::New(isolate(), callback, v8::Local<v8::Value>(),
|
|
1045
|
-
signature, 0, behavior, side_effect_type);
|
|
1046
|
-
}
|
|
1047
|
-
|
|
1048
|
-
inline void Environment::SetMethod(v8::Local<v8::Object> that,
|
|
1049
|
-
const char* name,
|
|
1050
|
-
v8::FunctionCallback callback) {
|
|
1051
|
-
v8::Local<v8::Context> context = isolate()->GetCurrentContext();
|
|
1052
|
-
v8::Local<v8::Function> function =
|
|
1053
|
-
NewFunctionTemplate(callback, v8::Local<v8::Signature>(),
|
|
1054
|
-
v8::ConstructorBehavior::kThrow,
|
|
1055
|
-
v8::SideEffectType::kHasSideEffect)
|
|
1056
|
-
->GetFunction(context)
|
|
1057
|
-
.ToLocalChecked();
|
|
1058
|
-
// kInternalized strings are created in the old space.
|
|
1059
|
-
const v8::NewStringType type = v8::NewStringType::kInternalized;
|
|
1060
|
-
v8::Local<v8::String> name_string =
|
|
1061
|
-
v8::String::NewFromUtf8(isolate(), name, type).ToLocalChecked();
|
|
1062
|
-
that->Set(context, name_string, function).Check();
|
|
1063
|
-
function->SetName(name_string); // NODE_SET_METHOD() compatibility.
|
|
1064
|
-
}
|
|
1065
|
-
|
|
1066
|
-
inline void Environment::SetMethodNoSideEffect(v8::Local<v8::Object> that,
|
|
1067
|
-
const char* name,
|
|
1068
|
-
v8::FunctionCallback callback) {
|
|
1069
|
-
v8::Local<v8::Context> context = isolate()->GetCurrentContext();
|
|
1070
|
-
v8::Local<v8::Function> function =
|
|
1071
|
-
NewFunctionTemplate(callback, v8::Local<v8::Signature>(),
|
|
1072
|
-
v8::ConstructorBehavior::kThrow,
|
|
1073
|
-
v8::SideEffectType::kHasNoSideEffect)
|
|
1074
|
-
->GetFunction(context)
|
|
1075
|
-
.ToLocalChecked();
|
|
1076
|
-
// kInternalized strings are created in the old space.
|
|
1077
|
-
const v8::NewStringType type = v8::NewStringType::kInternalized;
|
|
1078
|
-
v8::Local<v8::String> name_string =
|
|
1079
|
-
v8::String::NewFromUtf8(isolate(), name, type).ToLocalChecked();
|
|
1080
|
-
that->Set(context, name_string, function).Check();
|
|
1081
|
-
function->SetName(name_string); // NODE_SET_METHOD() compatibility.
|
|
1082
|
-
}
|
|
1083
|
-
|
|
1084
|
-
inline void Environment::SetProtoMethod(v8::Local<v8::FunctionTemplate> that,
|
|
1085
|
-
const char* name,
|
|
1086
|
-
v8::FunctionCallback callback) {
|
|
1087
|
-
v8::Local<v8::Signature> signature = v8::Signature::New(isolate(), that);
|
|
1088
|
-
v8::Local<v8::FunctionTemplate> t =
|
|
1089
|
-
NewFunctionTemplate(callback, signature, v8::ConstructorBehavior::kThrow,
|
|
1090
|
-
v8::SideEffectType::kHasSideEffect);
|
|
1091
|
-
// kInternalized strings are created in the old space.
|
|
1092
|
-
const v8::NewStringType type = v8::NewStringType::kInternalized;
|
|
1093
|
-
v8::Local<v8::String> name_string =
|
|
1094
|
-
v8::String::NewFromUtf8(isolate(), name, type).ToLocalChecked();
|
|
1095
|
-
that->PrototypeTemplate()->Set(name_string, t);
|
|
1096
|
-
t->SetClassName(name_string); // NODE_SET_PROTOTYPE_METHOD() compatibility.
|
|
1097
|
-
}
|
|
1098
|
-
|
|
1099
|
-
inline void Environment::SetProtoMethodNoSideEffect(
|
|
1100
|
-
v8::Local<v8::FunctionTemplate> that,
|
|
1101
|
-
const char* name,
|
|
1102
|
-
v8::FunctionCallback callback) {
|
|
1103
|
-
v8::Local<v8::Signature> signature = v8::Signature::New(isolate(), that);
|
|
1104
|
-
v8::Local<v8::FunctionTemplate> t =
|
|
1105
|
-
NewFunctionTemplate(callback, signature, v8::ConstructorBehavior::kThrow,
|
|
1106
|
-
v8::SideEffectType::kHasNoSideEffect);
|
|
1107
|
-
// kInternalized strings are created in the old space.
|
|
1108
|
-
const v8::NewStringType type = v8::NewStringType::kInternalized;
|
|
1109
|
-
v8::Local<v8::String> name_string =
|
|
1110
|
-
v8::String::NewFromUtf8(isolate(), name, type).ToLocalChecked();
|
|
1111
|
-
that->PrototypeTemplate()->Set(name_string, t);
|
|
1112
|
-
t->SetClassName(name_string); // NODE_SET_PROTOTYPE_METHOD() compatibility.
|
|
1113
|
-
}
|
|
1114
|
-
|
|
1115
|
-
inline void Environment::SetInstanceMethod(v8::Local<v8::FunctionTemplate> that,
|
|
1116
|
-
const char* name,
|
|
1117
|
-
v8::FunctionCallback callback) {
|
|
1118
|
-
v8::Local<v8::Signature> signature = v8::Signature::New(isolate(), that);
|
|
1119
|
-
v8::Local<v8::FunctionTemplate> t =
|
|
1120
|
-
NewFunctionTemplate(callback, signature, v8::ConstructorBehavior::kThrow,
|
|
1121
|
-
v8::SideEffectType::kHasSideEffect);
|
|
1122
|
-
// kInternalized strings are created in the old space.
|
|
1123
|
-
const v8::NewStringType type = v8::NewStringType::kInternalized;
|
|
1124
|
-
v8::Local<v8::String> name_string =
|
|
1125
|
-
v8::String::NewFromUtf8(isolate(), name, type).ToLocalChecked();
|
|
1126
|
-
that->InstanceTemplate()->Set(name_string, t);
|
|
1127
|
-
t->SetClassName(name_string);
|
|
1128
|
-
}
|
|
1129
|
-
|
|
1130
|
-
inline void Environment::SetConstructorFunction(
|
|
1131
|
-
v8::Local<v8::Object> that,
|
|
1132
|
-
const char* name,
|
|
1133
|
-
v8::Local<v8::FunctionTemplate> tmpl,
|
|
1134
|
-
SetConstructorFunctionFlag flag) {
|
|
1135
|
-
SetConstructorFunction(that, OneByteString(isolate(), name), tmpl, flag);
|
|
1136
|
-
}
|
|
1137
|
-
|
|
1138
|
-
inline void Environment::SetConstructorFunction(
|
|
1139
|
-
v8::Local<v8::Object> that,
|
|
1140
|
-
v8::Local<v8::String> name,
|
|
1141
|
-
v8::Local<v8::FunctionTemplate> tmpl,
|
|
1142
|
-
SetConstructorFunctionFlag flag) {
|
|
1143
|
-
if (LIKELY(flag == SetConstructorFunctionFlag::SET_CLASS_NAME))
|
|
1144
|
-
tmpl->SetClassName(name);
|
|
1145
|
-
that->Set(
|
|
1146
|
-
context(),
|
|
1147
|
-
name,
|
|
1148
|
-
tmpl->GetFunction(context()).ToLocalChecked()).Check();
|
|
1149
|
-
}
|
|
1150
|
-
|
|
1151
|
-
void Environment::AddCleanupHook(CleanupCallback fn, void* arg) {
|
|
1152
|
-
auto insertion_info = cleanup_hooks_.emplace(CleanupHookCallback {
|
|
1153
|
-
fn, arg, cleanup_hook_counter_++
|
|
1154
|
-
});
|
|
1155
|
-
// Make sure there was no existing element with these values.
|
|
1156
|
-
CHECK_EQ(insertion_info.second, true);
|
|
1157
|
-
}
|
|
1158
|
-
|
|
1159
|
-
void Environment::RemoveCleanupHook(CleanupCallback fn, void* arg) {
|
|
1160
|
-
CleanupHookCallback search { fn, arg, 0 };
|
|
1161
|
-
cleanup_hooks_.erase(search);
|
|
1162
|
-
}
|
|
1163
|
-
|
|
1164
|
-
size_t CleanupHookCallback::Hash::operator()(
|
|
1165
|
-
const CleanupHookCallback& cb) const {
|
|
1166
|
-
return std::hash<void*>()(cb.arg_);
|
|
1167
|
-
}
|
|
1168
|
-
|
|
1169
|
-
bool CleanupHookCallback::Equal::operator()(
|
|
1170
|
-
const CleanupHookCallback& a, const CleanupHookCallback& b) const {
|
|
1171
|
-
return a.fn_ == b.fn_ && a.arg_ == b.arg_;
|
|
1172
|
-
}
|
|
1173
|
-
|
|
1174
|
-
BaseObject* CleanupHookCallback::GetBaseObject() const {
|
|
1175
|
-
if (fn_ == BaseObject::DeleteMe)
|
|
1176
|
-
return static_cast<BaseObject*>(arg_);
|
|
1177
|
-
else
|
|
1178
|
-
return nullptr;
|
|
1179
|
-
}
|
|
1180
|
-
|
|
1181
|
-
template <typename T>
|
|
1182
|
-
void Environment::ForEachBaseObject(T&& iterator) {
|
|
1183
|
-
for (const auto& hook : cleanup_hooks_) {
|
|
1184
|
-
BaseObject* obj = hook.GetBaseObject();
|
|
1185
|
-
if (obj != nullptr)
|
|
1186
|
-
iterator(obj);
|
|
1187
|
-
}
|
|
1188
|
-
}
|
|
1189
|
-
|
|
1190
|
-
template <typename T>
|
|
1191
|
-
void Environment::ForEachBindingData(T&& iterator) {
|
|
1192
|
-
BindingDataStore* map = static_cast<BindingDataStore*>(
|
|
1193
|
-
context()->GetAlignedPointerFromEmbedderData(
|
|
1194
|
-
ContextEmbedderIndex::kBindingListIndex));
|
|
1195
|
-
DCHECK_NOT_NULL(map);
|
|
1196
|
-
for (auto& it : *map) {
|
|
1197
|
-
iterator(it.first, it.second);
|
|
1198
|
-
}
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
void Environment::modify_base_object_count(int64_t delta) {
|
|
1202
|
-
base_object_count_ += delta;
|
|
1203
|
-
}
|
|
1204
|
-
|
|
1205
|
-
int64_t Environment::base_object_created_after_bootstrap() const {
|
|
1206
|
-
return base_object_count_ - base_object_created_by_bootstrap_;
|
|
810
|
+
void Environment::AddCleanupHook(CleanupQueue::Callback fn, void* arg) {
|
|
811
|
+
cleanup_queue_.Add(fn, arg);
|
|
1207
812
|
}
|
|
1208
813
|
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
}
|
|
1212
|
-
|
|
1213
|
-
void Environment::set_main_utf16(std::unique_ptr<v8::String::Value> str) {
|
|
1214
|
-
CHECK(!main_utf16_);
|
|
1215
|
-
main_utf16_ = std::move(str);
|
|
814
|
+
void Environment::RemoveCleanupHook(CleanupQueue::Callback fn, void* arg) {
|
|
815
|
+
cleanup_queue_.Remove(fn, arg);
|
|
1216
816
|
}
|
|
1217
817
|
|
|
1218
818
|
void Environment::set_process_exit_handler(
|
|
1219
|
-
std::function<void(Environment*,
|
|
819
|
+
std::function<void(Environment*, ExitCode)>&& handler) {
|
|
1220
820
|
process_exit_handler_ = std::move(handler);
|
|
1221
821
|
}
|
|
1222
822
|
|
|
1223
823
|
#define VP(PropertyName, StringValue) V(v8::Private, PropertyName)
|
|
1224
824
|
#define VY(PropertyName, StringValue) V(v8::Symbol, PropertyName)
|
|
1225
825
|
#define VS(PropertyName, StringValue) V(v8::String, PropertyName)
|
|
826
|
+
#define VR(PropertyName, TypeName) V(v8::Private, per_realm_##PropertyName)
|
|
1226
827
|
#define V(TypeName, PropertyName) \
|
|
1227
828
|
inline \
|
|
1228
829
|
v8::Local<TypeName> IsolateData::PropertyName() const { \
|
|
@@ -1231,11 +832,26 @@ void Environment::set_process_exit_handler(
|
|
|
1231
832
|
PER_ISOLATE_PRIVATE_SYMBOL_PROPERTIES(VP)
|
|
1232
833
|
PER_ISOLATE_SYMBOL_PROPERTIES(VY)
|
|
1233
834
|
PER_ISOLATE_STRING_PROPERTIES(VS)
|
|
835
|
+
PER_REALM_STRONG_PERSISTENT_VALUES(VR)
|
|
1234
836
|
#undef V
|
|
837
|
+
#undef VR
|
|
1235
838
|
#undef VS
|
|
1236
839
|
#undef VY
|
|
1237
840
|
#undef VP
|
|
1238
841
|
|
|
842
|
+
#define VM(PropertyName) V(PropertyName##_binding_template, v8::ObjectTemplate)
|
|
843
|
+
#define V(PropertyName, TypeName) \
|
|
844
|
+
inline v8::Local<TypeName> IsolateData::PropertyName() const { \
|
|
845
|
+
return PropertyName##_.Get(isolate_); \
|
|
846
|
+
} \
|
|
847
|
+
inline void IsolateData::set_##PropertyName(v8::Local<TypeName> value) { \
|
|
848
|
+
PropertyName##_.Set(isolate_, value); \
|
|
849
|
+
}
|
|
850
|
+
PER_ISOLATE_TEMPLATE_PROPERTIES(V)
|
|
851
|
+
NODE_BINDINGS_WITH_PER_ISOLATE_INIT(VM)
|
|
852
|
+
#undef V
|
|
853
|
+
#undef VM
|
|
854
|
+
|
|
1239
855
|
#define VP(PropertyName, StringValue) V(v8::Private, PropertyName)
|
|
1240
856
|
#define VY(PropertyName, StringValue) V(v8::Symbol, PropertyName)
|
|
1241
857
|
#define VS(PropertyName, StringValue) V(v8::String, PropertyName)
|
|
@@ -1251,19 +867,61 @@ void Environment::set_process_exit_handler(
|
|
|
1251
867
|
#undef VY
|
|
1252
868
|
#undef VP
|
|
1253
869
|
|
|
1254
|
-
#define V(PropertyName, TypeName)
|
|
1255
|
-
inline v8::Local<TypeName> Environment::PropertyName() const {
|
|
1256
|
-
return
|
|
1257
|
-
}
|
|
1258
|
-
inline void Environment::set_
|
|
1259
|
-
PropertyName
|
|
870
|
+
#define V(PropertyName, TypeName) \
|
|
871
|
+
inline v8::Local<TypeName> Environment::PropertyName() const { \
|
|
872
|
+
return isolate_data()->PropertyName(); \
|
|
873
|
+
} \
|
|
874
|
+
inline void Environment::set_##PropertyName(v8::Local<TypeName> value) { \
|
|
875
|
+
DCHECK(isolate_data()->PropertyName().IsEmpty()); \
|
|
876
|
+
isolate_data()->set_##PropertyName(value); \
|
|
1260
877
|
}
|
|
1261
|
-
|
|
1262
|
-
|
|
878
|
+
PER_ISOLATE_TEMPLATE_PROPERTIES(V)
|
|
879
|
+
#undef V
|
|
880
|
+
|
|
881
|
+
#define V(PropertyName, TypeName) \
|
|
882
|
+
inline v8::Local<TypeName> Environment::PropertyName() const { \
|
|
883
|
+
DCHECK_NOT_NULL(principal_realm_); \
|
|
884
|
+
return principal_realm_->PropertyName(); \
|
|
885
|
+
} \
|
|
886
|
+
inline void Environment::set_##PropertyName(v8::Local<TypeName> value) { \
|
|
887
|
+
DCHECK_NOT_NULL(principal_realm_); \
|
|
888
|
+
principal_realm_->set_##PropertyName(value); \
|
|
889
|
+
}
|
|
890
|
+
PER_REALM_STRONG_PERSISTENT_VALUES(V)
|
|
1263
891
|
#undef V
|
|
1264
892
|
|
|
1265
893
|
v8::Local<v8::Context> Environment::context() const {
|
|
1266
|
-
return
|
|
894
|
+
return principal_realm()->context();
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
Realm* Environment::principal_realm() const {
|
|
898
|
+
return principal_realm_.get();
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
inline void Environment::set_heap_snapshot_near_heap_limit(uint32_t limit) {
|
|
902
|
+
heap_snapshot_near_heap_limit_ = limit;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
inline bool Environment::is_in_heapsnapshot_heap_limit_callback() const {
|
|
906
|
+
return is_in_heapsnapshot_heap_limit_callback_;
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
inline bool Environment::report_exclude_env() const {
|
|
910
|
+
return options_->report_exclude_env;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
inline void Environment::AddHeapSnapshotNearHeapLimitCallback() {
|
|
914
|
+
DCHECK(!heapsnapshot_near_heap_limit_callback_added_);
|
|
915
|
+
heapsnapshot_near_heap_limit_callback_added_ = true;
|
|
916
|
+
isolate_->AddNearHeapLimitCallback(Environment::NearHeapLimitCallback, this);
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
inline void Environment::RemoveHeapSnapshotNearHeapLimitCallback(
|
|
920
|
+
size_t heap_limit) {
|
|
921
|
+
DCHECK(heapsnapshot_near_heap_limit_callback_added_);
|
|
922
|
+
heapsnapshot_near_heap_limit_callback_added_ = false;
|
|
923
|
+
isolate_->RemoveNearHeapLimitCallback(Environment::NearHeapLimitCallback,
|
|
924
|
+
heap_limit);
|
|
1267
925
|
}
|
|
1268
926
|
|
|
1269
927
|
} // namespace node
|