@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
|
@@ -1,451 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_JS_NATIVE_API_V8_H_
|
|
2
|
-
#define SRC_JS_NATIVE_API_V8_H_
|
|
3
|
-
|
|
4
|
-
// This file needs to be compatible with C compilers.
|
|
5
|
-
#include <string.h> // NOLINT(modernize-deprecated-headers)
|
|
6
|
-
#include "js_native_api_types.h"
|
|
7
|
-
#include "js_native_api_v8_internals.h"
|
|
8
|
-
|
|
9
|
-
static napi_status napi_clear_last_error(napi_env env);
|
|
10
|
-
|
|
11
|
-
namespace v8impl {
|
|
12
|
-
|
|
13
|
-
class RefTracker {
|
|
14
|
-
public:
|
|
15
|
-
RefTracker() {}
|
|
16
|
-
virtual ~RefTracker() {}
|
|
17
|
-
virtual void Finalize(bool isEnvTeardown) {}
|
|
18
|
-
|
|
19
|
-
typedef RefTracker RefList;
|
|
20
|
-
|
|
21
|
-
inline void Link(RefList* list) {
|
|
22
|
-
prev_ = list;
|
|
23
|
-
next_ = list->next_;
|
|
24
|
-
if (next_ != nullptr) {
|
|
25
|
-
next_->prev_ = this;
|
|
26
|
-
}
|
|
27
|
-
list->next_ = this;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
inline void Unlink() {
|
|
31
|
-
if (prev_ != nullptr) {
|
|
32
|
-
prev_->next_ = next_;
|
|
33
|
-
}
|
|
34
|
-
if (next_ != nullptr) {
|
|
35
|
-
next_->prev_ = prev_;
|
|
36
|
-
}
|
|
37
|
-
prev_ = nullptr;
|
|
38
|
-
next_ = nullptr;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
static void FinalizeAll(RefList* list) {
|
|
42
|
-
while (list->next_ != nullptr) {
|
|
43
|
-
list->next_->Finalize(true);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
private:
|
|
48
|
-
RefList* next_ = nullptr;
|
|
49
|
-
RefList* prev_ = nullptr;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
} // end of namespace v8impl
|
|
53
|
-
|
|
54
|
-
struct napi_env__ {
|
|
55
|
-
explicit napi_env__(v8::Local<v8::Context> context)
|
|
56
|
-
: isolate(context->GetIsolate()),
|
|
57
|
-
context_persistent(isolate, context) {
|
|
58
|
-
CHECK_EQ(isolate, context->GetIsolate());
|
|
59
|
-
}
|
|
60
|
-
virtual ~napi_env__() {
|
|
61
|
-
// First we must finalize those references that have `napi_finalizer`
|
|
62
|
-
// callbacks. The reason is that addons might store other references which
|
|
63
|
-
// they delete during their `napi_finalizer` callbacks. If we deleted such
|
|
64
|
-
// references here first, they would be doubly deleted when the
|
|
65
|
-
// `napi_finalizer` deleted them subsequently.
|
|
66
|
-
v8impl::RefTracker::FinalizeAll(&finalizing_reflist);
|
|
67
|
-
v8impl::RefTracker::FinalizeAll(&reflist);
|
|
68
|
-
}
|
|
69
|
-
v8::Isolate* const isolate; // Shortcut for context()->GetIsolate()
|
|
70
|
-
v8impl::Persistent<v8::Context> context_persistent;
|
|
71
|
-
|
|
72
|
-
inline v8::Local<v8::Context> context() const {
|
|
73
|
-
return v8impl::PersistentToLocal::Strong(context_persistent);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
inline void Ref() { refs++; }
|
|
77
|
-
inline void Unref() { if ( --refs == 0) delete this; }
|
|
78
|
-
|
|
79
|
-
virtual bool can_call_into_js() const { return true; }
|
|
80
|
-
virtual v8::Maybe<bool> mark_arraybuffer_as_untransferable(
|
|
81
|
-
v8::Local<v8::ArrayBuffer> ab) const {
|
|
82
|
-
return v8::Just(true);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
static inline void
|
|
86
|
-
HandleThrow(napi_env env, v8::Local<v8::Value> value) {
|
|
87
|
-
env->isolate->ThrowException(value);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
template <typename T, typename U = decltype(HandleThrow)>
|
|
91
|
-
inline void CallIntoModule(T&& call, U&& handle_exception = HandleThrow) {
|
|
92
|
-
int open_handle_scopes_before = open_handle_scopes;
|
|
93
|
-
int open_callback_scopes_before = open_callback_scopes;
|
|
94
|
-
napi_clear_last_error(this);
|
|
95
|
-
call(this);
|
|
96
|
-
CHECK_EQ(open_handle_scopes, open_handle_scopes_before);
|
|
97
|
-
CHECK_EQ(open_callback_scopes, open_callback_scopes_before);
|
|
98
|
-
if (!last_exception.IsEmpty()) {
|
|
99
|
-
handle_exception(this, last_exception.Get(this->isolate));
|
|
100
|
-
last_exception.Reset();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
virtual void CallFinalizer(napi_finalize cb, void* data, void* hint) {
|
|
105
|
-
v8::HandleScope handle_scope(isolate);
|
|
106
|
-
CallIntoModule([&](napi_env env) {
|
|
107
|
-
cb(env, data, hint);
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
v8impl::Persistent<v8::Value> last_exception;
|
|
112
|
-
|
|
113
|
-
// We store references in two different lists, depending on whether they have
|
|
114
|
-
// `napi_finalizer` callbacks, because we must first finalize the ones that
|
|
115
|
-
// have such a callback. See `~napi_env__()` above for details.
|
|
116
|
-
v8impl::RefTracker::RefList reflist;
|
|
117
|
-
v8impl::RefTracker::RefList finalizing_reflist;
|
|
118
|
-
napi_extended_error_info last_error;
|
|
119
|
-
int open_handle_scopes = 0;
|
|
120
|
-
int open_callback_scopes = 0;
|
|
121
|
-
int refs = 1;
|
|
122
|
-
void* instance_data = nullptr;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
// This class is used to keep a napi_env live in a way that
|
|
126
|
-
// is exception safe versus calling Ref/Unref directly
|
|
127
|
-
class EnvRefHolder {
|
|
128
|
-
public:
|
|
129
|
-
explicit EnvRefHolder(napi_env env) : _env(env) {
|
|
130
|
-
_env->Ref();
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
explicit EnvRefHolder(const EnvRefHolder& other): _env(other.env()) {
|
|
134
|
-
_env->Ref();
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
EnvRefHolder(EnvRefHolder&& other) {
|
|
138
|
-
_env = other._env;
|
|
139
|
-
other._env = nullptr;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
~EnvRefHolder() {
|
|
143
|
-
if (_env != nullptr) {
|
|
144
|
-
_env->Unref();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
napi_env env(void) const {
|
|
149
|
-
return _env;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
private:
|
|
153
|
-
napi_env _env;
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
static inline napi_status napi_clear_last_error(napi_env env) {
|
|
157
|
-
env->last_error.error_code = napi_ok;
|
|
158
|
-
|
|
159
|
-
// TODO(boingoing): Should this be a callback?
|
|
160
|
-
env->last_error.engine_error_code = 0;
|
|
161
|
-
env->last_error.engine_reserved = nullptr;
|
|
162
|
-
return napi_ok;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
static inline
|
|
166
|
-
napi_status napi_set_last_error(napi_env env, napi_status error_code,
|
|
167
|
-
uint32_t engine_error_code = 0,
|
|
168
|
-
void* engine_reserved = nullptr) {
|
|
169
|
-
env->last_error.error_code = error_code;
|
|
170
|
-
env->last_error.engine_error_code = engine_error_code;
|
|
171
|
-
env->last_error.engine_reserved = engine_reserved;
|
|
172
|
-
return error_code;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
#define RETURN_STATUS_IF_FALSE(env, condition, status) \
|
|
176
|
-
do { \
|
|
177
|
-
if (!(condition)) { \
|
|
178
|
-
return napi_set_last_error((env), (status)); \
|
|
179
|
-
} \
|
|
180
|
-
} while (0)
|
|
181
|
-
|
|
182
|
-
#define RETURN_STATUS_IF_FALSE_WITH_PREAMBLE(env, condition, status) \
|
|
183
|
-
do { \
|
|
184
|
-
if (!(condition)) { \
|
|
185
|
-
return napi_set_last_error( \
|
|
186
|
-
(env), try_catch.HasCaught() ? napi_pending_exception : (status)); \
|
|
187
|
-
} \
|
|
188
|
-
} while (0)
|
|
189
|
-
|
|
190
|
-
#define CHECK_ENV(env) \
|
|
191
|
-
do { \
|
|
192
|
-
if ((env) == nullptr) { \
|
|
193
|
-
return napi_invalid_arg; \
|
|
194
|
-
} \
|
|
195
|
-
} while (0)
|
|
196
|
-
|
|
197
|
-
#define CHECK_ARG(env, arg) \
|
|
198
|
-
RETURN_STATUS_IF_FALSE((env), ((arg) != nullptr), napi_invalid_arg)
|
|
199
|
-
|
|
200
|
-
#define CHECK_ARG_WITH_PREAMBLE(env, arg) \
|
|
201
|
-
RETURN_STATUS_IF_FALSE_WITH_PREAMBLE((env), \
|
|
202
|
-
((arg) != nullptr), \
|
|
203
|
-
napi_invalid_arg)
|
|
204
|
-
|
|
205
|
-
#define CHECK_MAYBE_EMPTY(env, maybe, status) \
|
|
206
|
-
RETURN_STATUS_IF_FALSE((env), !((maybe).IsEmpty()), (status))
|
|
207
|
-
|
|
208
|
-
#define CHECK_MAYBE_EMPTY_WITH_PREAMBLE(env, maybe, status) \
|
|
209
|
-
RETURN_STATUS_IF_FALSE_WITH_PREAMBLE((env), !((maybe).IsEmpty()), (status))
|
|
210
|
-
|
|
211
|
-
// NAPI_PREAMBLE is not wrapped in do..while: try_catch must have function scope
|
|
212
|
-
#define NAPI_PREAMBLE(env) \
|
|
213
|
-
CHECK_ENV((env)); \
|
|
214
|
-
RETURN_STATUS_IF_FALSE((env), \
|
|
215
|
-
(env)->last_exception.IsEmpty() && (env)->can_call_into_js(), \
|
|
216
|
-
napi_pending_exception); \
|
|
217
|
-
napi_clear_last_error((env)); \
|
|
218
|
-
v8impl::TryCatch try_catch((env))
|
|
219
|
-
|
|
220
|
-
#define CHECK_TO_TYPE(env, type, context, result, src, status) \
|
|
221
|
-
do { \
|
|
222
|
-
CHECK_ARG((env), (src)); \
|
|
223
|
-
auto maybe = v8impl::V8LocalValueFromJsValue((src))->To##type((context)); \
|
|
224
|
-
CHECK_MAYBE_EMPTY((env), maybe, (status)); \
|
|
225
|
-
(result) = maybe.ToLocalChecked(); \
|
|
226
|
-
} while (0)
|
|
227
|
-
|
|
228
|
-
#define CHECK_TO_TYPE_WITH_PREAMBLE(env, type, context, result, src, status) \
|
|
229
|
-
do { \
|
|
230
|
-
CHECK_ARG_WITH_PREAMBLE((env), (src)); \
|
|
231
|
-
auto maybe = v8impl::V8LocalValueFromJsValue((src))->To##type((context)); \
|
|
232
|
-
CHECK_MAYBE_EMPTY_WITH_PREAMBLE((env), maybe, (status)); \
|
|
233
|
-
(result) = maybe.ToLocalChecked(); \
|
|
234
|
-
} while (0)
|
|
235
|
-
|
|
236
|
-
#define CHECK_TO_FUNCTION(env, result, src) \
|
|
237
|
-
do { \
|
|
238
|
-
CHECK_ARG((env), (src)); \
|
|
239
|
-
v8::Local<v8::Value> v8value = v8impl::V8LocalValueFromJsValue((src)); \
|
|
240
|
-
RETURN_STATUS_IF_FALSE((env), v8value->IsFunction(), napi_invalid_arg); \
|
|
241
|
-
(result) = v8value.As<v8::Function>(); \
|
|
242
|
-
} while (0)
|
|
243
|
-
|
|
244
|
-
#define CHECK_TO_OBJECT(env, context, result, src) \
|
|
245
|
-
CHECK_TO_TYPE((env), Object, (context), (result), (src), napi_object_expected)
|
|
246
|
-
|
|
247
|
-
#define CHECK_TO_OBJECT_WITH_PREAMBLE(env, context, result, src) \
|
|
248
|
-
CHECK_TO_TYPE_WITH_PREAMBLE((env), \
|
|
249
|
-
Object, \
|
|
250
|
-
(context), \
|
|
251
|
-
(result), \
|
|
252
|
-
(src), \
|
|
253
|
-
napi_object_expected)
|
|
254
|
-
|
|
255
|
-
#define CHECK_TO_STRING(env, context, result, src) \
|
|
256
|
-
CHECK_TO_TYPE((env), String, (context), (result), (src), napi_string_expected)
|
|
257
|
-
|
|
258
|
-
#define GET_RETURN_STATUS(env) \
|
|
259
|
-
(!try_catch.HasCaught() ? napi_ok \
|
|
260
|
-
: napi_set_last_error((env), napi_pending_exception))
|
|
261
|
-
|
|
262
|
-
#define THROW_RANGE_ERROR_IF_FALSE(env, condition, error, message) \
|
|
263
|
-
do { \
|
|
264
|
-
if (!(condition)) { \
|
|
265
|
-
napi_throw_range_error((env), (error), (message)); \
|
|
266
|
-
return napi_set_last_error((env), napi_generic_failure); \
|
|
267
|
-
} \
|
|
268
|
-
} while (0)
|
|
269
|
-
|
|
270
|
-
#define RETURN_STATUS_IF_FALSE_WITH_PREAMBLE(env, condition, status) \
|
|
271
|
-
do { \
|
|
272
|
-
if (!(condition)) { \
|
|
273
|
-
return napi_set_last_error( \
|
|
274
|
-
(env), try_catch.HasCaught() ? napi_pending_exception : (status)); \
|
|
275
|
-
} \
|
|
276
|
-
} while (0)
|
|
277
|
-
|
|
278
|
-
#define CHECK_MAYBE_EMPTY_WITH_PREAMBLE(env, maybe, status) \
|
|
279
|
-
RETURN_STATUS_IF_FALSE_WITH_PREAMBLE((env), !((maybe).IsEmpty()), (status))
|
|
280
|
-
|
|
281
|
-
namespace v8impl {
|
|
282
|
-
|
|
283
|
-
//=== Conversion between V8 Handles and napi_value ========================
|
|
284
|
-
|
|
285
|
-
// This asserts v8::Local<> will always be implemented with a single
|
|
286
|
-
// pointer field so that we can pass it around as a void*.
|
|
287
|
-
static_assert(sizeof(v8::Local<v8::Value>) == sizeof(napi_value),
|
|
288
|
-
"Cannot convert between v8::Local<v8::Value> and napi_value");
|
|
289
|
-
|
|
290
|
-
inline napi_value JsValueFromV8LocalValue(v8::Local<v8::Value> local) {
|
|
291
|
-
return reinterpret_cast<napi_value>(*local);
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
inline v8::Local<v8::Value> V8LocalValueFromJsValue(napi_value v) {
|
|
295
|
-
v8::Local<v8::Value> local;
|
|
296
|
-
memcpy(static_cast<void*>(&local), &v, sizeof(v));
|
|
297
|
-
return local;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
// Adapter for napi_finalize callbacks.
|
|
301
|
-
class Finalizer {
|
|
302
|
-
public:
|
|
303
|
-
// Some Finalizers are run during shutdown when the napi_env is destroyed,
|
|
304
|
-
// and some need to keep an explicit reference to the napi_env because they
|
|
305
|
-
// are run independently.
|
|
306
|
-
enum EnvReferenceMode {
|
|
307
|
-
kNoEnvReference,
|
|
308
|
-
kKeepEnvReference
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
protected:
|
|
312
|
-
Finalizer(napi_env env,
|
|
313
|
-
napi_finalize finalize_callback,
|
|
314
|
-
void* finalize_data,
|
|
315
|
-
void* finalize_hint,
|
|
316
|
-
EnvReferenceMode refmode = kNoEnvReference)
|
|
317
|
-
: _env(env),
|
|
318
|
-
_finalize_callback(finalize_callback),
|
|
319
|
-
_finalize_data(finalize_data),
|
|
320
|
-
_finalize_hint(finalize_hint),
|
|
321
|
-
_has_env_reference(refmode == kKeepEnvReference) {
|
|
322
|
-
if (_has_env_reference)
|
|
323
|
-
_env->Ref();
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
~Finalizer() {
|
|
327
|
-
if (_has_env_reference)
|
|
328
|
-
_env->Unref();
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
public:
|
|
332
|
-
static Finalizer* New(napi_env env,
|
|
333
|
-
napi_finalize finalize_callback = nullptr,
|
|
334
|
-
void* finalize_data = nullptr,
|
|
335
|
-
void* finalize_hint = nullptr,
|
|
336
|
-
EnvReferenceMode refmode = kNoEnvReference) {
|
|
337
|
-
return new Finalizer(
|
|
338
|
-
env, finalize_callback, finalize_data, finalize_hint, refmode);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
static void Delete(Finalizer* finalizer) {
|
|
342
|
-
delete finalizer;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
protected:
|
|
346
|
-
napi_env _env;
|
|
347
|
-
napi_finalize _finalize_callback;
|
|
348
|
-
void* _finalize_data;
|
|
349
|
-
void* _finalize_hint;
|
|
350
|
-
bool _finalize_ran = false;
|
|
351
|
-
bool _has_env_reference = false;
|
|
352
|
-
};
|
|
353
|
-
|
|
354
|
-
class TryCatch : public v8::TryCatch {
|
|
355
|
-
public:
|
|
356
|
-
explicit TryCatch(napi_env env)
|
|
357
|
-
: v8::TryCatch(env->isolate), _env(env) {}
|
|
358
|
-
|
|
359
|
-
~TryCatch() {
|
|
360
|
-
if (HasCaught()) {
|
|
361
|
-
_env->last_exception.Reset(_env->isolate, Exception());
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
private:
|
|
366
|
-
napi_env _env;
|
|
367
|
-
};
|
|
368
|
-
|
|
369
|
-
// Wrapper around v8impl::Persistent that implements reference counting.
|
|
370
|
-
class RefBase : protected Finalizer, RefTracker {
|
|
371
|
-
protected:
|
|
372
|
-
RefBase(napi_env env,
|
|
373
|
-
uint32_t initial_refcount,
|
|
374
|
-
bool delete_self,
|
|
375
|
-
napi_finalize finalize_callback,
|
|
376
|
-
void* finalize_data,
|
|
377
|
-
void* finalize_hint);
|
|
378
|
-
|
|
379
|
-
public:
|
|
380
|
-
static RefBase* New(napi_env env,
|
|
381
|
-
uint32_t initial_refcount,
|
|
382
|
-
bool delete_self,
|
|
383
|
-
napi_finalize finalize_callback,
|
|
384
|
-
void* finalize_data,
|
|
385
|
-
void* finalize_hint);
|
|
386
|
-
|
|
387
|
-
static inline void Delete(RefBase* reference);
|
|
388
|
-
|
|
389
|
-
virtual ~RefBase();
|
|
390
|
-
void* Data();
|
|
391
|
-
uint32_t Ref();
|
|
392
|
-
uint32_t Unref();
|
|
393
|
-
uint32_t RefCount();
|
|
394
|
-
|
|
395
|
-
protected:
|
|
396
|
-
void Finalize(bool is_env_teardown = false) override;
|
|
397
|
-
|
|
398
|
-
private:
|
|
399
|
-
uint32_t _refcount;
|
|
400
|
-
bool _delete_self;
|
|
401
|
-
};
|
|
402
|
-
|
|
403
|
-
class Reference : public RefBase {
|
|
404
|
-
using SecondPassCallParameterRef = Reference*;
|
|
405
|
-
|
|
406
|
-
protected:
|
|
407
|
-
template <typename... Args>
|
|
408
|
-
Reference(napi_env env, v8::Local<v8::Value> value, Args&&... args);
|
|
409
|
-
|
|
410
|
-
public:
|
|
411
|
-
static Reference* New(napi_env env,
|
|
412
|
-
v8::Local<v8::Value> value,
|
|
413
|
-
uint32_t initial_refcount,
|
|
414
|
-
bool delete_self,
|
|
415
|
-
napi_finalize finalize_callback = nullptr,
|
|
416
|
-
void* finalize_data = nullptr,
|
|
417
|
-
void* finalize_hint = nullptr);
|
|
418
|
-
|
|
419
|
-
virtual ~Reference();
|
|
420
|
-
uint32_t Ref();
|
|
421
|
-
uint32_t Unref();
|
|
422
|
-
v8::Local<v8::Value> Get();
|
|
423
|
-
|
|
424
|
-
protected:
|
|
425
|
-
void Finalize(bool is_env_teardown = false) override;
|
|
426
|
-
|
|
427
|
-
private:
|
|
428
|
-
void ClearWeak();
|
|
429
|
-
void SetWeak();
|
|
430
|
-
|
|
431
|
-
static void FinalizeCallback(
|
|
432
|
-
const v8::WeakCallbackInfo<SecondPassCallParameterRef>& data);
|
|
433
|
-
static void SecondPassCallback(
|
|
434
|
-
const v8::WeakCallbackInfo<SecondPassCallParameterRef>& data);
|
|
435
|
-
|
|
436
|
-
v8impl::Persistent<v8::Value> _persistent;
|
|
437
|
-
SecondPassCallParameterRef* _secondPassParameter;
|
|
438
|
-
bool _secondPassScheduled;
|
|
439
|
-
|
|
440
|
-
FRIEND_TEST(JsNativeApiV8Test, Reference);
|
|
441
|
-
};
|
|
442
|
-
|
|
443
|
-
} // end of namespace v8impl
|
|
444
|
-
|
|
445
|
-
#define STATUS_CALL(call) \
|
|
446
|
-
do { \
|
|
447
|
-
napi_status status = (call); \
|
|
448
|
-
if (status != napi_ok) return status; \
|
|
449
|
-
} while (0)
|
|
450
|
-
|
|
451
|
-
#endif // SRC_JS_NATIVE_API_V8_H_
|