@encharm/cws 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bindings/cws_linux_108.node +0 -0
- package/dist/bindings/cws_linux_64.node +0 -0
- package/dist/bindings/cws_linux_72.node +0 -0
- package/dist/bindings/cws_linux_79.node +0 -0
- package/dist/bindings/cws_linux_83.node +0 -0
- package/dist/bindings/cws_linux_93.node +0 -0
- package/dist/bindings/cws_win32_64.node +0 -0
- package/dist/bindings/cws_win32_72.node +0 -0
- package/dist/bindings/cws_win32_79.node +0 -0
- package/dist/bindings/cws_win32_83.node +0 -0
- package/dist/bindings/cws_win32_93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +24 -2
- package/src/HTTPSocket.cpp +1 -1
- package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
- package/src/headers/18/aliased_struct-inl.h +54 -0
- package/src/headers/18/aliased_struct.h +63 -0
- package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/async_wrap.h +26 -2
- package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
- package/src/headers/18/base64.h +69 -0
- package/src/headers/{12 → 18}/base_object-inl.h +46 -25
- package/src/headers/{12 → 18}/base_object.h +82 -17
- package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
- package/src/headers/{12 → 18}/callback_queue.h +13 -5
- package/src/headers/18/cares_wrap.h +523 -0
- package/src/headers/{12 → 18}/connect_wrap.h +0 -0
- package/src/headers/{12 → 18}/connection_wrap.h +0 -0
- package/src/headers/18/crypto/crypto_aes.h +89 -0
- package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
- package/src/headers/18/crypto/crypto_cipher.h +291 -0
- package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
- package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
- package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
- package/src/headers/18/crypto/crypto_context.h +147 -0
- package/src/headers/18/crypto/crypto_dh.h +156 -0
- package/src/headers/18/crypto/crypto_dsa.h +77 -0
- package/src/headers/18/crypto/crypto_ec.h +170 -0
- package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
- package/src/headers/18/crypto/crypto_hash.h +89 -0
- package/src/headers/18/crypto/crypto_hkdf.h +65 -0
- package/src/headers/18/crypto/crypto_hmac.h +94 -0
- package/src/headers/18/crypto/crypto_keygen.h +305 -0
- package/src/headers/18/crypto/crypto_keys.h +420 -0
- package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
- package/src/headers/18/crypto/crypto_random.h +130 -0
- package/src/headers/18/crypto/crypto_rsa.h +141 -0
- package/src/headers/18/crypto/crypto_scrypt.h +87 -0
- package/src/headers/18/crypto/crypto_sig.h +168 -0
- package/src/headers/18/crypto/crypto_spkac.h +21 -0
- package/src/headers/18/crypto/crypto_timing.h +20 -0
- package/src/headers/{13/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
- package/src/headers/18/crypto/crypto_util.h +791 -0
- package/src/headers/18/crypto/crypto_x509.h +143 -0
- package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
- package/src/headers/{13 → 18}/debug_utils.h +7 -4
- package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
- package/src/headers/{12 → 18}/env-inl.h +397 -304
- package/src/headers/{12 → 18}/env.h +397 -172
- package/src/headers/{12 → 18}/handle_wrap.h +7 -3
- package/src/headers/18/histogram-inl.h +107 -0
- package/src/headers/18/histogram.h +239 -0
- package/src/headers/{13 → 18}/inspector_agent.h +4 -7
- package/src/headers/{12 → 18}/inspector_io.h +0 -0
- package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
- package/src/headers/{12 → 18}/inspector_socket.h +0 -0
- package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
- package/src/headers/18/js_native_api.h +571 -0
- package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
- package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
- package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
- package/src/headers/{12 → 18}/js_stream.h +0 -0
- package/src/headers/{12 → 18}/json_utils.h +0 -0
- package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
- package/src/headers/{13 → 18}/memory_tracker.h +0 -7
- package/src/headers/{13 → 18}/module_wrap.h +24 -7
- package/src/headers/{13 → 18}/node.h +329 -68
- package/src/headers/18/node_api.h +288 -0
- package/src/headers/18/node_api_internals.h +38 -0
- package/src/headers/{12 → 18}/node_api_types.h +12 -9
- package/src/headers/{12 → 18}/node_binding.h +0 -0
- package/src/headers/18/node_blob.h +191 -0
- package/src/headers/18/node_bob-inl.h +37 -0
- package/src/headers/18/node_bob.h +111 -0
- package/src/headers/{13 → 18}/node_buffer.h +0 -0
- package/src/headers/{13 → 18}/node_constants.h +5 -1
- package/src/headers/{12 → 18}/node_context_data.h +5 -0
- package/src/headers/{12 → 18}/node_contextify.h +37 -2
- package/src/headers/{10/node_win32_perfctr_provider.h → 18/node_crypto.h} +30 -31
- package/src/headers/{12 → 18}/node_dir.h +0 -0
- package/src/headers/{12 → 18}/node_dtrace.h +0 -0
- package/src/headers/{12 → 18}/node_errors.h +90 -24
- package/src/headers/18/node_external_reference.h +145 -0
- package/src/headers/{13 → 18}/node_file-inl.h +38 -21
- package/src/headers/{12 → 18}/node_file.h +74 -13
- package/src/headers/{13 → 18}/node_http2.h +365 -269
- package/src/headers/{12 → 18}/node_http2_state.h +40 -50
- package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
- package/src/headers/{13 → 18}/node_http_common.h +24 -20
- package/src/headers/{13 → 18}/node_i18n.h +2 -1
- package/src/headers/{12 → 18}/node_internals.h +39 -41
- package/src/headers/{13 → 18}/node_main_instance.h +15 -18
- package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
- package/src/headers/{12 → 18}/node_mem.h +1 -1
- package/src/headers/{13 → 18}/node_messaging.h +170 -23
- package/src/headers/{12 → 18}/node_metadata.h +17 -4
- package/src/headers/{12 → 18}/node_mutex.h +77 -1
- package/src/headers/{12 → 18}/node_native_module.h +11 -1
- package/src/headers/{13 → 18}/node_native_module_env.h +14 -8
- package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
- package/src/headers/{13 → 18}/node_options-inl.h +51 -21
- package/src/headers/{13 → 18}/node_options.h +46 -14
- package/src/headers/18/node_perf.h +168 -0
- package/src/headers/{12 → 18}/node_perf_common.h +16 -22
- package/src/headers/{12 → 18}/node_platform.h +21 -16
- package/src/headers/18/node_process-inl.h +26 -0
- package/src/headers/18/node_process.h +97 -0
- package/src/headers/{13 → 18}/node_report.h +2 -2
- package/src/headers/{13 → 18}/node_revert.h +10 -0
- package/src/headers/{12 → 18}/node_root_certs.h +439 -651
- package/src/headers/18/node_snapshot_builder.h +43 -0
- package/src/headers/18/node_snapshotable.h +130 -0
- package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
- package/src/headers/18/node_sockaddr.h +405 -0
- package/src/headers/{12 → 18}/node_stat_watcher.h +7 -1
- package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
- package/src/headers/{13 → 18}/node_url.h +18 -1
- package/src/headers/18/node_v8.h +41 -0
- package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
- package/src/headers/{13 → 18}/node_version.h +7 -7
- package/src/headers/{12 → 18}/node_wasi.h +0 -0
- package/src/headers/18/node_wasm_web_api.h +55 -0
- package/src/headers/{13 → 18}/node_watchdog.h +0 -0
- package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
- package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
- package/src/headers/{13 → 18}/node_worker.h +24 -17
- package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
- package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/req_wrap.h +1 -1
- package/src/headers/{12 → 18}/spawn_sync.h +0 -0
- package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
- package/src/headers/{13 → 18}/stream_base.h +29 -3
- package/src/headers/{13 → 18}/stream_pipe.h +8 -3
- package/src/headers/{12 → 18}/stream_wrap.h +4 -1
- package/src/headers/{13 → 18}/string_bytes.h +0 -7
- package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
- package/src/headers/{10 → 18}/string_decoder.h +0 -0
- package/src/headers/{13 → 18}/string_search.h +2 -2
- package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
- package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
- package/src/headers/18/timer_wrap-inl.h +32 -0
- package/src/headers/18/timer_wrap.h +85 -0
- package/src/headers/{13 → 18}/tracing/agent.h +1 -1
- package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
- package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
- package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
- package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
- package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
- package/src/headers/{13 → 18}/tty_wrap.h +2 -1
- package/src/headers/{13 → 18}/udp_wrap.h +5 -0
- package/src/headers/{13 → 18}/util-inl.h +69 -15
- package/src/headers/{13 → 18}/util.h +93 -31
- package/src/headers/18/v8-fast-api-calls.h +939 -0
- package/src/headers/{12 → 18}/v8abbr.h +2 -2
- package/src/headers/10/aliased_buffer.h +0 -241
- package/src/headers/10/async_wrap-inl.h +0 -106
- package/src/headers/10/async_wrap.h +0 -218
- package/src/headers/10/base64.h +0 -197
- package/src/headers/10/base_object-inl.h +0 -132
- package/src/headers/10/base_object.h +0 -115
- package/src/headers/10/connect_wrap.h +0 -28
- package/src/headers/10/connection_wrap.h +0 -30
- package/src/headers/10/debug_utils.h +0 -128
- package/src/headers/10/env-inl.h +0 -906
- package/src/headers/10/env.h +0 -1046
- package/src/headers/10/handle_wrap.h +0 -114
- package/src/headers/10/inspector_agent.h +0 -137
- package/src/headers/10/inspector_io.h +0 -97
- package/src/headers/10/inspector_socket.h +0 -59
- package/src/headers/10/inspector_socket_server.h +0 -104
- package/src/headers/10/js_stream.h +0 -57
- package/src/headers/10/memory_tracker-inl.h +0 -318
- package/src/headers/10/memory_tracker.h +0 -246
- package/src/headers/10/module_wrap.h +0 -100
- package/src/headers/10/node.h +0 -863
- package/src/headers/10/node_api.h +0 -752
- package/src/headers/10/node_api_types.h +0 -171
- package/src/headers/10/node_buffer.h +0 -90
- package/src/headers/10/node_code_cache.h +0 -17
- package/src/headers/10/node_constants.h +0 -74
- package/src/headers/10/node_context_data.h +0 -39
- package/src/headers/10/node_contextify.h +0 -141
- package/src/headers/10/node_counters.h +0 -59
- package/src/headers/10/node_crypto.h +0 -699
- package/src/headers/10/node_crypto_bio.h +0 -177
- package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
- package/src/headers/10/node_crypto_clienthello.h +0 -131
- package/src/headers/10/node_crypto_groups.h +0 -416
- package/src/headers/10/node_dtrace.h +0 -84
- package/src/headers/10/node_errors.h +0 -118
- package/src/headers/10/node_file.h +0 -373
- package/src/headers/10/node_http2.h +0 -1304
- package/src/headers/10/node_http2_state.h +0 -158
- package/src/headers/10/node_i18n.h +0 -69
- package/src/headers/10/node_internals.h +0 -952
- package/src/headers/10/node_javascript.h +0 -41
- package/src/headers/10/node_messaging.h +0 -219
- package/src/headers/10/node_mutex.h +0 -191
- package/src/headers/10/node_object_wrap.h +0 -130
- package/src/headers/10/node_options-inl.h +0 -444
- package/src/headers/10/node_options.h +0 -397
- package/src/headers/10/node_perf.h +0 -134
- package/src/headers/10/node_perf_common.h +0 -96
- package/src/headers/10/node_persistent.h +0 -30
- package/src/headers/10/node_platform.h +0 -170
- package/src/headers/10/node_revert.h +0 -75
- package/src/headers/10/node_root_certs.h +0 -3393
- package/src/headers/10/node_stat_watcher.h +0 -65
- package/src/headers/10/node_url.h +0 -193
- package/src/headers/10/node_version.h +0 -120
- package/src/headers/10/node_watchdog.h +0 -114
- package/src/headers/10/node_worker.h +0 -94
- package/src/headers/10/pipe_wrap.h +0 -76
- package/src/headers/10/req_wrap-inl.h +0 -166
- package/src/headers/10/req_wrap.h +0 -61
- package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
- package/src/headers/10/spawn_sync.h +0 -240
- package/src/headers/10/stream_base-inl.h +0 -458
- package/src/headers/10/stream_base.h +0 -378
- package/src/headers/10/stream_pipe.h +0 -72
- package/src/headers/10/stream_wrap.h +0 -130
- package/src/headers/10/string_bytes.h +0 -126
- package/src/headers/10/string_decoder-inl.h +0 -38
- package/src/headers/10/string_search.h +0 -620
- package/src/headers/10/tcp_wrap.h +0 -99
- package/src/headers/10/tls_wrap.h +0 -195
- package/src/headers/10/tracing/agent.h +0 -178
- package/src/headers/10/tracing/node_trace_buffer.h +0 -83
- package/src/headers/10/tracing/node_trace_writer.h +0 -75
- package/src/headers/10/tracing/trace_event.h +0 -706
- package/src/headers/10/tracing/trace_event_common.h +0 -1102
- package/src/headers/10/tracing/traced_value.h +0 -68
- package/src/headers/10/tty_wrap.h +0 -63
- package/src/headers/10/udp_wrap.h +0 -102
- package/src/headers/10/util-inl.h +0 -459
- package/src/headers/10/util.h +0 -508
- package/src/headers/10/v8abbr.h +0 -121
- package/src/headers/12/aliased_buffer.h +0 -263
- package/src/headers/12/debug_utils.h +0 -181
- package/src/headers/12/histogram-inl.h +0 -83
- package/src/headers/12/histogram.h +0 -98
- package/src/headers/12/http_parser_adaptor.h +0 -24
- package/src/headers/12/inspector_agent.h +0 -147
- package/src/headers/12/inspector_profiler.h +0 -137
- package/src/headers/12/js_native_api.h +0 -541
- package/src/headers/12/js_native_api_types.h +0 -139
- package/src/headers/12/memory_tracker-inl.h +0 -339
- package/src/headers/12/memory_tracker.h +0 -283
- package/src/headers/12/module_wrap.h +0 -99
- package/src/headers/12/node.h +0 -887
- package/src/headers/12/node_api.h +0 -239
- package/src/headers/12/node_buffer.h +0 -92
- package/src/headers/12/node_constants.h +0 -80
- package/src/headers/12/node_crypto.h +0 -800
- package/src/headers/12/node_crypto_bio.h +0 -195
- package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/12/node_crypto_clienthello.h +0 -132
- package/src/headers/12/node_file-inl.h +0 -289
- package/src/headers/12/node_http2.h +0 -1311
- package/src/headers/12/node_http_parser_impl.h +0 -994
- package/src/headers/12/node_i18n.h +0 -144
- package/src/headers/12/node_main_instance.h +0 -97
- package/src/headers/12/node_messaging.h +0 -227
- package/src/headers/12/node_native_module_env.h +0 -65
- package/src/headers/12/node_options-inl.h +0 -447
- package/src/headers/12/node_options.h +0 -479
- package/src/headers/12/node_perf.h +0 -181
- package/src/headers/12/node_process.h +0 -41
- package/src/headers/12/node_report.h +0 -47
- package/src/headers/12/node_revert.h +0 -78
- package/src/headers/12/node_sockaddr.h +0 -123
- package/src/headers/12/node_url.h +0 -188
- package/src/headers/12/node_version.h +0 -98
- package/src/headers/12/node_watchdog.h +0 -152
- package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/12/node_win32_etw_provider.h +0 -99
- package/src/headers/12/node_worker.h +0 -142
- package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
- package/src/headers/12/stream_base-inl.h +0 -323
- package/src/headers/12/stream_base.h +0 -431
- package/src/headers/12/stream_pipe.h +0 -72
- package/src/headers/12/string_bytes.h +0 -142
- package/src/headers/12/string_decoder.h +0 -50
- package/src/headers/12/string_search.h +0 -638
- package/src/headers/12/tls_wrap.h +0 -221
- package/src/headers/12/tracing/agent.h +0 -195
- package/src/headers/12/tracing/trace_event.h +0 -710
- package/src/headers/12/tty_wrap.h +0 -64
- package/src/headers/12/udp_wrap.h +0 -222
- package/src/headers/12/util-inl.h +0 -529
- package/src/headers/12/util.h +0 -765
- package/src/headers/13/async_wrap-inl.h +0 -94
- package/src/headers/13/async_wrap.h +0 -224
- package/src/headers/13/base64.h +0 -197
- package/src/headers/13/base_object-inl.h +0 -353
- package/src/headers/13/base_object.h +0 -229
- package/src/headers/13/connect_wrap.h +0 -26
- package/src/headers/13/connection_wrap.h +0 -30
- package/src/headers/13/debug_utils-inl.h +0 -223
- package/src/headers/13/diagnosticfilename-inl.h +0 -33
- package/src/headers/13/env-inl.h +0 -1293
- package/src/headers/13/env.h +0 -1469
- package/src/headers/13/handle_wrap.h +0 -117
- package/src/headers/13/histogram-inl.h +0 -83
- package/src/headers/13/histogram.h +0 -98
- package/src/headers/13/inspector_io.h +0 -78
- package/src/headers/13/inspector_socket.h +0 -60
- package/src/headers/13/inspector_socket_server.h +0 -110
- package/src/headers/13/js_native_api.h +0 -541
- package/src/headers/13/js_native_api_v8.h +0 -303
- package/src/headers/13/js_native_api_v8_internals.h +0 -38
- package/src/headers/13/js_stream.h +0 -52
- package/src/headers/13/json_utils.h +0 -160
- package/src/headers/13/node_api.h +0 -239
- package/src/headers/13/node_api_types.h +0 -44
- package/src/headers/13/node_binding.h +0 -99
- package/src/headers/13/node_context_data.h +0 -39
- package/src/headers/13/node_contextify.h +0 -161
- package/src/headers/13/node_crypto.h +0 -800
- package/src/headers/13/node_crypto_common.h +0 -138
- package/src/headers/13/node_crypto_groups.h +0 -415
- package/src/headers/13/node_dir.h +0 -52
- package/src/headers/13/node_dtrace.h +0 -86
- package/src/headers/13/node_errors.h +0 -210
- package/src/headers/13/node_file.h +0 -364
- package/src/headers/13/node_http2_state.h +0 -144
- package/src/headers/13/node_internals.h +0 -405
- package/src/headers/13/node_mem-inl.h +0 -112
- package/src/headers/13/node_mem.h +0 -41
- package/src/headers/13/node_metadata.h +0 -109
- package/src/headers/13/node_mutex.h +0 -247
- package/src/headers/13/node_native_module.h +0 -99
- package/src/headers/13/node_object_wrap.h +0 -132
- package/src/headers/13/node_perf.h +0 -181
- package/src/headers/13/node_perf_common.h +0 -97
- package/src/headers/13/node_platform.h +0 -190
- package/src/headers/13/node_process.h +0 -41
- package/src/headers/13/node_root_certs.h +0 -3424
- package/src/headers/13/node_sockaddr-inl.h +0 -170
- package/src/headers/13/node_sockaddr.h +0 -123
- package/src/headers/13/node_stat_watcher.h +0 -66
- package/src/headers/13/node_union_bytes.h +0 -103
- package/src/headers/13/node_v8_platform-inl.h +0 -184
- package/src/headers/13/node_wasi.h +0 -108
- package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/13/node_win32_etw_provider.h +0 -99
- package/src/headers/13/pipe_wrap.h +0 -78
- package/src/headers/13/req_wrap-inl.h +0 -170
- package/src/headers/13/req_wrap.h +0 -77
- package/src/headers/13/spawn_sync.h +0 -242
- package/src/headers/13/stream_wrap.h +0 -130
- package/src/headers/13/string_decoder-inl.h +0 -37
- package/src/headers/13/string_decoder.h +0 -50
- package/src/headers/13/tcp_wrap.h +0 -101
- package/src/headers/13/threadpoolwork-inl.h +0 -57
- package/src/headers/13/tracing/node_trace_buffer.h +0 -83
- package/src/headers/13/tracing/node_trace_writer.h +0 -75
- package/src/headers/13/tracing/trace_event_common.h +0 -1109
- package/src/headers/13/tracing/traced_value.h +0 -70
- package/src/headers/13/v8abbr.h +0 -124
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
// Copyright Joyent, Inc. and other Node contributors.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4
|
-
// copy of this software and associated documentation files (the
|
|
5
|
-
// "Software"), to deal in the Software without restriction, including
|
|
6
|
-
// without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
8
|
-
// persons to whom the Software is furnished to do so, subject to the
|
|
9
|
-
// following conditions:
|
|
10
|
-
//
|
|
11
|
-
// The above copyright notice and this permission notice shall be included
|
|
12
|
-
// in all copies or substantial portions of the Software.
|
|
13
|
-
//
|
|
14
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15
|
-
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
17
|
-
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
18
|
-
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
19
|
-
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
20
|
-
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
-
|
|
22
|
-
#ifndef SRC_NODE_I18N_H_
|
|
23
|
-
#define SRC_NODE_I18N_H_
|
|
24
|
-
|
|
25
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
|
-
|
|
27
|
-
#if defined(NODE_HAVE_I18N_SUPPORT)
|
|
28
|
-
|
|
29
|
-
#include "base_object.h"
|
|
30
|
-
#include "env.h"
|
|
31
|
-
#include "util.h"
|
|
32
|
-
#include "v8.h"
|
|
33
|
-
|
|
34
|
-
#include <unicode/ucnv.h>
|
|
35
|
-
|
|
36
|
-
#include <string>
|
|
37
|
-
|
|
38
|
-
namespace node {
|
|
39
|
-
|
|
40
|
-
namespace i18n {
|
|
41
|
-
|
|
42
|
-
bool InitializeICUDirectory(const std::string& path);
|
|
43
|
-
|
|
44
|
-
enum idna_mode {
|
|
45
|
-
// Default mode for maximum compatibility.
|
|
46
|
-
IDNA_DEFAULT,
|
|
47
|
-
// Ignore all errors in IDNA conversion, if possible.
|
|
48
|
-
IDNA_LENIENT,
|
|
49
|
-
// Enforce STD3 rules (UseSTD3ASCIIRules) and DNS length restrictions
|
|
50
|
-
// (VerifyDnsLength). Corresponds to `beStrict` flag in the "domain to ASCII"
|
|
51
|
-
// algorithm.
|
|
52
|
-
IDNA_STRICT
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
// Implements the WHATWG URL Standard "domain to ASCII" algorithm.
|
|
56
|
-
// https://url.spec.whatwg.org/#concept-domain-to-ascii
|
|
57
|
-
int32_t ToASCII(MaybeStackBuffer<char>* buf,
|
|
58
|
-
const char* input,
|
|
59
|
-
size_t length,
|
|
60
|
-
enum idna_mode mode = IDNA_DEFAULT);
|
|
61
|
-
|
|
62
|
-
// Implements the WHATWG URL Standard "domain to Unicode" algorithm.
|
|
63
|
-
// https://url.spec.whatwg.org/#concept-domain-to-unicode
|
|
64
|
-
int32_t ToUnicode(MaybeStackBuffer<char>* buf,
|
|
65
|
-
const char* input,
|
|
66
|
-
size_t length);
|
|
67
|
-
|
|
68
|
-
struct ConverterDeleter {
|
|
69
|
-
void operator()(UConverter* pointer) const { ucnv_close(pointer); }
|
|
70
|
-
};
|
|
71
|
-
using ConverterPointer = std::unique_ptr<UConverter, ConverterDeleter>;
|
|
72
|
-
|
|
73
|
-
class Converter {
|
|
74
|
-
public:
|
|
75
|
-
explicit Converter(const char* name, const char* sub = nullptr);
|
|
76
|
-
explicit Converter(UConverter* converter, const char* sub = nullptr);
|
|
77
|
-
|
|
78
|
-
UConverter* conv() const { return conv_.get(); }
|
|
79
|
-
|
|
80
|
-
size_t max_char_size() const;
|
|
81
|
-
size_t min_char_size() const;
|
|
82
|
-
void reset();
|
|
83
|
-
void set_subst_chars(const char* sub = nullptr);
|
|
84
|
-
|
|
85
|
-
private:
|
|
86
|
-
ConverterPointer conv_;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
class ConverterObject : public BaseObject, Converter {
|
|
90
|
-
public:
|
|
91
|
-
enum ConverterFlags {
|
|
92
|
-
CONVERTER_FLAGS_FLUSH = 0x1,
|
|
93
|
-
CONVERTER_FLAGS_FATAL = 0x2,
|
|
94
|
-
CONVERTER_FLAGS_IGNORE_BOM = 0x4,
|
|
95
|
-
CONVERTER_FLAGS_UNICODE = 0x8,
|
|
96
|
-
CONVERTER_FLAGS_BOM_SEEN = 0x10,
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
static void Create(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
100
|
-
static void Decode(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
101
|
-
static void Has(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
102
|
-
|
|
103
|
-
SET_NO_MEMORY_INFO()
|
|
104
|
-
SET_MEMORY_INFO_NAME(ConverterObject)
|
|
105
|
-
SET_SELF_SIZE(ConverterObject)
|
|
106
|
-
|
|
107
|
-
protected:
|
|
108
|
-
ConverterObject(Environment* env,
|
|
109
|
-
v8::Local<v8::Object> wrap,
|
|
110
|
-
UConverter* converter,
|
|
111
|
-
int flags,
|
|
112
|
-
const char* sub = nullptr);
|
|
113
|
-
|
|
114
|
-
void set_bom_seen(bool seen) {
|
|
115
|
-
if (seen)
|
|
116
|
-
flags_ |= CONVERTER_FLAGS_BOM_SEEN;
|
|
117
|
-
else
|
|
118
|
-
flags_ &= ~CONVERTER_FLAGS_BOM_SEEN;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
bool bom_seen() const {
|
|
122
|
-
return (flags_ & CONVERTER_FLAGS_BOM_SEEN) == CONVERTER_FLAGS_BOM_SEEN;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
bool unicode() const {
|
|
126
|
-
return (flags_ & CONVERTER_FLAGS_UNICODE) == CONVERTER_FLAGS_UNICODE;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
bool ignore_bom() const {
|
|
130
|
-
return (flags_ & CONVERTER_FLAGS_IGNORE_BOM) == CONVERTER_FLAGS_IGNORE_BOM;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
private:
|
|
134
|
-
int flags_ = 0;
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
} // namespace i18n
|
|
138
|
-
} // namespace node
|
|
139
|
-
|
|
140
|
-
#endif // NODE_HAVE_I18N_SUPPORT
|
|
141
|
-
|
|
142
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
143
|
-
|
|
144
|
-
#endif // SRC_NODE_I18N_H_
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_MAIN_INSTANCE_H_
|
|
2
|
-
#define SRC_NODE_MAIN_INSTANCE_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include <cstddef>
|
|
7
|
-
#include <memory>
|
|
8
|
-
|
|
9
|
-
#include "node.h"
|
|
10
|
-
#include "util.h"
|
|
11
|
-
#include "uv.h"
|
|
12
|
-
#include "v8.h"
|
|
13
|
-
|
|
14
|
-
namespace node {
|
|
15
|
-
|
|
16
|
-
// TODO(joyeecheung): align this with the Worker/WorkerThreadData class.
|
|
17
|
-
// We may be able to create an abstract class to reuse some of the routines.
|
|
18
|
-
class NodeMainInstance {
|
|
19
|
-
public:
|
|
20
|
-
// To create a main instance that does not own the isolate,
|
|
21
|
-
// The caller needs to do:
|
|
22
|
-
//
|
|
23
|
-
// Isolate* isolate = Isolate::Allocate();
|
|
24
|
-
// platform->RegisterIsolate(isolate, loop);
|
|
25
|
-
// isolate->Initialize(...);
|
|
26
|
-
// isolate->Enter();
|
|
27
|
-
// std::unique_ptr<NodeMainInstance> main_instance =
|
|
28
|
-
// NodeMainInstance::Create(isolate, loop, args, exec_args);
|
|
29
|
-
//
|
|
30
|
-
// When tearing it down:
|
|
31
|
-
//
|
|
32
|
-
// main_instance->Cleanup(); // While the isolate is entered
|
|
33
|
-
// isolate->Exit();
|
|
34
|
-
// isolate->Dispose();
|
|
35
|
-
// platform->UnregisterIsolate(isolate);
|
|
36
|
-
//
|
|
37
|
-
// After calling Dispose() the main_instance is no longer accessible.
|
|
38
|
-
static std::unique_ptr<NodeMainInstance> Create(
|
|
39
|
-
v8::Isolate* isolate,
|
|
40
|
-
uv_loop_t* event_loop,
|
|
41
|
-
MultiIsolatePlatform* platform,
|
|
42
|
-
const std::vector<std::string>& args,
|
|
43
|
-
const std::vector<std::string>& exec_args);
|
|
44
|
-
|
|
45
|
-
void Dispose();
|
|
46
|
-
|
|
47
|
-
// Create a main instance that owns the isolate
|
|
48
|
-
NodeMainInstance(
|
|
49
|
-
v8::Isolate::CreateParams* params,
|
|
50
|
-
uv_loop_t* event_loop,
|
|
51
|
-
MultiIsolatePlatform* platform,
|
|
52
|
-
const std::vector<std::string>& args,
|
|
53
|
-
const std::vector<std::string>& exec_args,
|
|
54
|
-
const std::vector<size_t>* per_isolate_data_indexes = nullptr);
|
|
55
|
-
~NodeMainInstance();
|
|
56
|
-
|
|
57
|
-
// Start running the Node.js instances, return the exit code when finished.
|
|
58
|
-
int Run();
|
|
59
|
-
|
|
60
|
-
IsolateData* isolate_data() { return isolate_data_.get(); }
|
|
61
|
-
|
|
62
|
-
// TODO(joyeecheung): align this with the CreateEnvironment exposed in node.h
|
|
63
|
-
// and the environment creation routine in workers somehow.
|
|
64
|
-
std::unique_ptr<Environment> CreateMainEnvironment(int* exit_code);
|
|
65
|
-
|
|
66
|
-
// If nullptr is returned, the binary is not built with embedded
|
|
67
|
-
// snapshot.
|
|
68
|
-
static const std::vector<size_t>* GetIsolateDataIndexes();
|
|
69
|
-
static v8::StartupData* GetEmbeddedSnapshotBlob();
|
|
70
|
-
|
|
71
|
-
static const size_t kNodeContextIndex = 0;
|
|
72
|
-
NodeMainInstance(const NodeMainInstance&) = delete;
|
|
73
|
-
NodeMainInstance& operator=(const NodeMainInstance&) = delete;
|
|
74
|
-
NodeMainInstance(NodeMainInstance&&) = delete;
|
|
75
|
-
NodeMainInstance& operator=(NodeMainInstance&&) = delete;
|
|
76
|
-
|
|
77
|
-
private:
|
|
78
|
-
NodeMainInstance(v8::Isolate* isolate,
|
|
79
|
-
uv_loop_t* event_loop,
|
|
80
|
-
MultiIsolatePlatform* platform,
|
|
81
|
-
const std::vector<std::string>& args,
|
|
82
|
-
const std::vector<std::string>& exec_args);
|
|
83
|
-
|
|
84
|
-
std::vector<std::string> args_;
|
|
85
|
-
std::vector<std::string> exec_args_;
|
|
86
|
-
std::unique_ptr<ArrayBufferAllocator> array_buffer_allocator_;
|
|
87
|
-
v8::Isolate* isolate_;
|
|
88
|
-
MultiIsolatePlatform* platform_;
|
|
89
|
-
std::unique_ptr<IsolateData> isolate_data_;
|
|
90
|
-
bool owns_isolate_ = false;
|
|
91
|
-
bool deserialize_mode_ = false;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
} // namespace node
|
|
95
|
-
|
|
96
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
97
|
-
#endif // SRC_NODE_MAIN_INSTANCE_H_
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_MESSAGING_H_
|
|
2
|
-
#define SRC_NODE_MESSAGING_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "env.h"
|
|
7
|
-
#include "node_mutex.h"
|
|
8
|
-
#include "sharedarraybuffer_metadata.h"
|
|
9
|
-
#include <list>
|
|
10
|
-
|
|
11
|
-
namespace node {
|
|
12
|
-
namespace worker {
|
|
13
|
-
|
|
14
|
-
class MessagePortData;
|
|
15
|
-
class MessagePort;
|
|
16
|
-
|
|
17
|
-
typedef MaybeStackBuffer<v8::Local<v8::Value>, 8> TransferList;
|
|
18
|
-
|
|
19
|
-
// Represents a single communication message.
|
|
20
|
-
class Message : public MemoryRetainer {
|
|
21
|
-
public:
|
|
22
|
-
// Create a Message with a specific underlying payload, in the format of the
|
|
23
|
-
// V8 ValueSerializer API. If `payload` is empty, this message indicates
|
|
24
|
-
// that the receiving message port should close itself.
|
|
25
|
-
explicit Message(MallocedBuffer<char>&& payload = MallocedBuffer<char>());
|
|
26
|
-
|
|
27
|
-
Message(Message&& other) = default;
|
|
28
|
-
Message& operator=(Message&& other) = default;
|
|
29
|
-
Message& operator=(const Message&) = delete;
|
|
30
|
-
Message(const Message&) = delete;
|
|
31
|
-
|
|
32
|
-
// Whether this is a message indicating that the port is to be closed.
|
|
33
|
-
// This is the last message to be received by a MessagePort.
|
|
34
|
-
bool IsCloseMessage() const;
|
|
35
|
-
|
|
36
|
-
// Deserialize the contained JS value. May only be called once, and only
|
|
37
|
-
// after Serialize() has been called (e.g. by another thread).
|
|
38
|
-
v8::MaybeLocal<v8::Value> Deserialize(Environment* env,
|
|
39
|
-
v8::Local<v8::Context> context);
|
|
40
|
-
|
|
41
|
-
// Serialize a JS value, and optionally transfer objects, into this message.
|
|
42
|
-
// The Message object retains ownership of all transferred objects until
|
|
43
|
-
// deserialization.
|
|
44
|
-
// The source_port parameter, if provided, will make Serialize() throw a
|
|
45
|
-
// "DataCloneError" DOMException if source_port is found in transfer_list.
|
|
46
|
-
v8::Maybe<bool> Serialize(Environment* env,
|
|
47
|
-
v8::Local<v8::Context> context,
|
|
48
|
-
v8::Local<v8::Value> input,
|
|
49
|
-
const TransferList& transfer_list,
|
|
50
|
-
v8::Local<v8::Object> source_port =
|
|
51
|
-
v8::Local<v8::Object>());
|
|
52
|
-
|
|
53
|
-
// Internal method of Message that is called when a new SharedArrayBuffer
|
|
54
|
-
// object is encountered in the incoming value's structure.
|
|
55
|
-
void AddSharedArrayBuffer(const SharedArrayBufferMetadataReference& ref);
|
|
56
|
-
// Internal method of Message that is called once serialization finishes
|
|
57
|
-
// and that transfers ownership of `data` to this message.
|
|
58
|
-
void AddMessagePort(std::unique_ptr<MessagePortData>&& data);
|
|
59
|
-
// Internal method of Message that is called when a new WebAssembly.Module
|
|
60
|
-
// object is encountered in the incoming value's structure.
|
|
61
|
-
uint32_t AddWASMModule(v8::WasmModuleObject::TransferrableModule&& mod);
|
|
62
|
-
|
|
63
|
-
// The MessagePorts that will be transferred, as recorded by Serialize().
|
|
64
|
-
// Used for warning user about posting the target MessagePort to itself,
|
|
65
|
-
// which will as a side effect destroy the communication channel.
|
|
66
|
-
const std::vector<std::unique_ptr<MessagePortData>>& message_ports() const {
|
|
67
|
-
return message_ports_;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
71
|
-
|
|
72
|
-
SET_MEMORY_INFO_NAME(Message)
|
|
73
|
-
SET_SELF_SIZE(Message)
|
|
74
|
-
|
|
75
|
-
private:
|
|
76
|
-
MallocedBuffer<char> main_message_buf_;
|
|
77
|
-
std::vector<MallocedBuffer<char>> array_buffer_contents_;
|
|
78
|
-
std::vector<SharedArrayBufferMetadataReference> shared_array_buffers_;
|
|
79
|
-
std::vector<std::unique_ptr<MessagePortData>> message_ports_;
|
|
80
|
-
std::vector<v8::WasmModuleObject::TransferrableModule> wasm_modules_;
|
|
81
|
-
|
|
82
|
-
friend class MessagePort;
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
// This contains all data for a `MessagePort` instance that is not tied to
|
|
86
|
-
// a specific Environment/Isolate/event loop, for easier transfer between those.
|
|
87
|
-
class MessagePortData : public MemoryRetainer {
|
|
88
|
-
public:
|
|
89
|
-
explicit MessagePortData(MessagePort* owner);
|
|
90
|
-
~MessagePortData() override;
|
|
91
|
-
|
|
92
|
-
MessagePortData(MessagePortData&& other) = delete;
|
|
93
|
-
MessagePortData& operator=(MessagePortData&& other) = delete;
|
|
94
|
-
MessagePortData(const MessagePortData& other) = delete;
|
|
95
|
-
MessagePortData& operator=(const MessagePortData& other) = delete;
|
|
96
|
-
|
|
97
|
-
// Add a message to the incoming queue and notify the receiver.
|
|
98
|
-
// This may be called from any thread.
|
|
99
|
-
void AddToIncomingQueue(Message&& message);
|
|
100
|
-
|
|
101
|
-
// Turns `a` and `b` into siblings, i.e. connects the sending side of one
|
|
102
|
-
// to the receiving side of the other. This is not thread-safe.
|
|
103
|
-
static void Entangle(MessagePortData* a, MessagePortData* b);
|
|
104
|
-
|
|
105
|
-
// Removes any possible sibling. This is thread-safe (it acquires both
|
|
106
|
-
// `sibling_mutex_` and `mutex_`), and has to be because it is called once
|
|
107
|
-
// the corresponding JS handle handle wants to close
|
|
108
|
-
// which can happen on either side of a worker.
|
|
109
|
-
void Disentangle();
|
|
110
|
-
|
|
111
|
-
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
112
|
-
|
|
113
|
-
SET_MEMORY_INFO_NAME(MessagePortData)
|
|
114
|
-
SET_SELF_SIZE(MessagePortData)
|
|
115
|
-
|
|
116
|
-
private:
|
|
117
|
-
// This mutex protects all fields below it, with the exception of
|
|
118
|
-
// sibling_.
|
|
119
|
-
mutable Mutex mutex_;
|
|
120
|
-
std::list<Message> incoming_messages_;
|
|
121
|
-
MessagePort* owner_ = nullptr;
|
|
122
|
-
// This mutex protects the sibling_ field and is shared between two entangled
|
|
123
|
-
// MessagePorts. If both mutexes are acquired, this one needs to be
|
|
124
|
-
// acquired first.
|
|
125
|
-
std::shared_ptr<Mutex> sibling_mutex_ = std::make_shared<Mutex>();
|
|
126
|
-
MessagePortData* sibling_ = nullptr;
|
|
127
|
-
|
|
128
|
-
friend class MessagePort;
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
// A message port that receives messages from other threads, including
|
|
132
|
-
// the uv_async_t handle that is used to notify the current event loop of
|
|
133
|
-
// new incoming messages.
|
|
134
|
-
class MessagePort : public HandleWrap {
|
|
135
|
-
private:
|
|
136
|
-
// Create a new MessagePort. The `context` argument specifies the Context
|
|
137
|
-
// instance that is used for creating the values emitted from this port.
|
|
138
|
-
// This is called by MessagePort::New(), which is the public API used for
|
|
139
|
-
// creating MessagePort instances.
|
|
140
|
-
MessagePort(Environment* env,
|
|
141
|
-
v8::Local<v8::Context> context,
|
|
142
|
-
v8::Local<v8::Object> wrap);
|
|
143
|
-
|
|
144
|
-
public:
|
|
145
|
-
~MessagePort() override;
|
|
146
|
-
|
|
147
|
-
// Create a new message port instance, optionally over an existing
|
|
148
|
-
// `MessagePortData` object.
|
|
149
|
-
static MessagePort* New(Environment* env,
|
|
150
|
-
v8::Local<v8::Context> context,
|
|
151
|
-
std::unique_ptr<MessagePortData> data = nullptr);
|
|
152
|
-
|
|
153
|
-
// Send a message, i.e. deliver it into the sibling's incoming queue.
|
|
154
|
-
// If this port is closed, or if there is no sibling, this message is
|
|
155
|
-
// serialized with transfers, then silently discarded.
|
|
156
|
-
v8::Maybe<bool> PostMessage(Environment* env,
|
|
157
|
-
v8::Local<v8::Value> message,
|
|
158
|
-
const TransferList& transfer);
|
|
159
|
-
|
|
160
|
-
// Start processing messages on this port as a receiving end.
|
|
161
|
-
void Start();
|
|
162
|
-
// Stop processing messages on this port as a receiving end.
|
|
163
|
-
void Stop();
|
|
164
|
-
|
|
165
|
-
/* constructor */
|
|
166
|
-
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
167
|
-
/* prototype methods */
|
|
168
|
-
static void PostMessage(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
169
|
-
static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
170
|
-
static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
171
|
-
static void Drain(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
172
|
-
static void ReceiveMessage(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
173
|
-
|
|
174
|
-
/* static */
|
|
175
|
-
static void MoveToContext(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
176
|
-
|
|
177
|
-
// Turns `a` and `b` into siblings, i.e. connects the sending side of one
|
|
178
|
-
// to the receiving side of the other. This is not thread-safe.
|
|
179
|
-
static void Entangle(MessagePort* a, MessagePort* b);
|
|
180
|
-
static void Entangle(MessagePort* a, MessagePortData* b);
|
|
181
|
-
|
|
182
|
-
// Detach this port's data for transferring. After this, the MessagePortData
|
|
183
|
-
// is no longer associated with this handle, although it can still receive
|
|
184
|
-
// messages.
|
|
185
|
-
std::unique_ptr<MessagePortData> Detach();
|
|
186
|
-
|
|
187
|
-
void Close(
|
|
188
|
-
v8::Local<v8::Value> close_callback = v8::Local<v8::Value>()) override;
|
|
189
|
-
|
|
190
|
-
// Returns true if either data_ has been freed, or if the handle is being
|
|
191
|
-
// closed. Equivalent to the [[Detached]] internal slot in the HTML Standard.
|
|
192
|
-
//
|
|
193
|
-
// If checking if a JavaScript MessagePort object is detached, this method
|
|
194
|
-
// alone is often not enough, since the backing C++ MessagePort object may
|
|
195
|
-
// have been deleted already. For all intents and purposes, an object with a
|
|
196
|
-
// NULL pointer to the C++ MessagePort object is also detached.
|
|
197
|
-
inline bool IsDetached() const;
|
|
198
|
-
|
|
199
|
-
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
200
|
-
SET_MEMORY_INFO_NAME(MessagePort)
|
|
201
|
-
SET_SELF_SIZE(MessagePort)
|
|
202
|
-
|
|
203
|
-
private:
|
|
204
|
-
void OnClose() override;
|
|
205
|
-
void OnMessage();
|
|
206
|
-
void TriggerAsync();
|
|
207
|
-
v8::MaybeLocal<v8::Value> ReceiveMessage(v8::Local<v8::Context> context,
|
|
208
|
-
bool only_if_receiving);
|
|
209
|
-
|
|
210
|
-
std::unique_ptr<MessagePortData> data_ = nullptr;
|
|
211
|
-
bool receiving_messages_ = false;
|
|
212
|
-
uv_async_t async_;
|
|
213
|
-
v8::Global<v8::Function> emit_message_fn_;
|
|
214
|
-
|
|
215
|
-
friend class MessagePortData;
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
v8::Local<v8::FunctionTemplate> GetMessagePortConstructorTemplate(
|
|
219
|
-
Environment* env);
|
|
220
|
-
|
|
221
|
-
} // namespace worker
|
|
222
|
-
} // namespace node
|
|
223
|
-
|
|
224
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
#endif // SRC_NODE_MESSAGING_H_
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_NATIVE_MODULE_ENV_H_
|
|
2
|
-
#define SRC_NODE_NATIVE_MODULE_ENV_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "node_native_module.h"
|
|
7
|
-
|
|
8
|
-
namespace node {
|
|
9
|
-
class Environment;
|
|
10
|
-
|
|
11
|
-
namespace native_module {
|
|
12
|
-
|
|
13
|
-
extern const bool has_code_cache;
|
|
14
|
-
|
|
15
|
-
class NativeModuleEnv {
|
|
16
|
-
public:
|
|
17
|
-
static void Initialize(v8::Local<v8::Object> target,
|
|
18
|
-
v8::Local<v8::Value> unused,
|
|
19
|
-
v8::Local<v8::Context> context,
|
|
20
|
-
void* priv);
|
|
21
|
-
|
|
22
|
-
static v8::MaybeLocal<v8::Function> LookupAndCompile(
|
|
23
|
-
v8::Local<v8::Context> context,
|
|
24
|
-
const char* id,
|
|
25
|
-
std::vector<v8::Local<v8::String>>* parameters,
|
|
26
|
-
Environment* optional_env);
|
|
27
|
-
|
|
28
|
-
static v8::Local<v8::Object> GetSourceObject(v8::Local<v8::Context> context);
|
|
29
|
-
// Returns config.gypi as a JSON string
|
|
30
|
-
static v8::Local<v8::String> GetConfigString(v8::Isolate* isolate);
|
|
31
|
-
static bool Exists(const char* id);
|
|
32
|
-
|
|
33
|
-
// Loads data into NativeModuleLoader::.instance.code_cache_
|
|
34
|
-
// Generated by mkcodecache as node_code_cache.cc when
|
|
35
|
-
// the build is configured with --code-cache-path=.... They are noops
|
|
36
|
-
// in node_code_cache_stub.cc
|
|
37
|
-
static void InitializeCodeCache();
|
|
38
|
-
|
|
39
|
-
private:
|
|
40
|
-
static void RecordResult(const char* id,
|
|
41
|
-
NativeModuleLoader::Result result,
|
|
42
|
-
Environment* env);
|
|
43
|
-
static void GetModuleCategories(
|
|
44
|
-
v8::Local<v8::Name> property,
|
|
45
|
-
const v8::PropertyCallbackInfo<v8::Value>& info);
|
|
46
|
-
static void GetCacheUsage(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
47
|
-
// Passing ids of builtin module source code into JS land as
|
|
48
|
-
// internalBinding('native_module').moduleIds
|
|
49
|
-
static void ModuleIdsGetter(v8::Local<v8::Name> property,
|
|
50
|
-
const v8::PropertyCallbackInfo<v8::Value>& info);
|
|
51
|
-
// Passing config.gypi into JS land as internalBinding('native_module').config
|
|
52
|
-
static void ConfigStringGetter(
|
|
53
|
-
v8::Local<v8::Name> property,
|
|
54
|
-
const v8::PropertyCallbackInfo<v8::Value>& info);
|
|
55
|
-
// Compile a specific native module as a function
|
|
56
|
-
static void CompileFunction(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
} // namespace native_module
|
|
60
|
-
|
|
61
|
-
} // namespace node
|
|
62
|
-
|
|
63
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
64
|
-
|
|
65
|
-
#endif // SRC_NODE_NATIVE_MODULE_ENV_H_
|