@kungfu-tech/libnode-win32-x64 0.0.0-bootstrap.0 → 22.22.3-kf.1
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/LICENSE +201 -0
- package/README.md +3 -0
- package/dist/node/include/acorn_version.h +6 -0
- package/dist/node/include/aliased_buffer-inl.h +244 -0
- package/dist/node/include/aliased_buffer.h +206 -0
- package/dist/node/include/aliased_struct-inl.h +54 -0
- package/dist/node/include/aliased_struct.h +63 -0
- package/dist/node/include/amaro_version.h +6 -0
- package/dist/node/include/async_context_frame.h +33 -0
- package/dist/node/include/async_wrap-inl.h +96 -0
- package/dist/node/include/async_wrap.h +243 -0
- package/dist/node/include/base_object-inl.h +335 -0
- package/dist/node/include/base_object.h +342 -0
- package/dist/node/include/base_object_types.h +74 -0
- package/dist/node/include/blob_serializer_deserializer-inl.h +385 -0
- package/dist/node/include/blob_serializer_deserializer.h +132 -0
- package/dist/node/include/callback_queue-inl.h +97 -0
- package/dist/node/include/callback_queue.h +79 -0
- package/dist/node/include/cares_wrap.h +447 -0
- package/dist/node/include/cjs_module_lexer_version.h +6 -0
- package/dist/node/include/cleanup_queue-inl.h +36 -0
- package/dist/node/include/cleanup_queue.h +79 -0
- package/dist/node/include/compile_cache.h +104 -0
- package/dist/node/include/connect_wrap.h +26 -0
- package/dist/node/include/connection_wrap.h +30 -0
- package/dist/node/include/cppgc/allocation.h +310 -0
- package/dist/node/include/cppgc/common.h +28 -0
- package/dist/node/include/cppgc/cross-thread-persistent.h +466 -0
- package/dist/node/include/cppgc/custom-space.h +97 -0
- package/dist/node/include/cppgc/default-platform.h +67 -0
- package/dist/node/include/cppgc/ephemeron-pair.h +30 -0
- package/dist/node/include/cppgc/explicit-management.h +100 -0
- package/dist/node/include/cppgc/garbage-collected.h +106 -0
- package/dist/node/include/cppgc/heap-consistency.h +309 -0
- package/dist/node/include/cppgc/heap-handle.h +48 -0
- package/dist/node/include/cppgc/heap-state.h +82 -0
- package/dist/node/include/cppgc/heap-statistics.h +120 -0
- package/dist/node/include/cppgc/heap.h +202 -0
- package/dist/node/include/cppgc/internal/api-constants.h +87 -0
- package/dist/node/include/cppgc/internal/atomic-entry-flag.h +48 -0
- package/dist/node/include/cppgc/internal/base-page-handle.h +45 -0
- package/dist/node/include/cppgc/internal/caged-heap-local-data.h +121 -0
- package/dist/node/include/cppgc/internal/caged-heap.h +68 -0
- package/dist/node/include/cppgc/internal/compiler-specific.h +38 -0
- package/dist/node/include/cppgc/internal/finalizer-trait.h +93 -0
- package/dist/node/include/cppgc/internal/gc-info.h +148 -0
- package/dist/node/include/cppgc/internal/logging.h +50 -0
- package/dist/node/include/cppgc/internal/member-storage.h +256 -0
- package/dist/node/include/cppgc/internal/name-trait.h +137 -0
- package/dist/node/include/cppgc/internal/persistent-node.h +214 -0
- package/dist/node/include/cppgc/internal/pointer-policies.h +243 -0
- package/dist/node/include/cppgc/internal/write-barrier.h +487 -0
- package/dist/node/include/cppgc/liveness-broker.h +78 -0
- package/dist/node/include/cppgc/macros.h +35 -0
- package/dist/node/include/cppgc/member.h +629 -0
- package/dist/node/include/cppgc/name-provider.h +65 -0
- package/dist/node/include/cppgc/object-size-trait.h +58 -0
- package/dist/node/include/cppgc/persistent.h +377 -0
- package/dist/node/include/cppgc/platform.h +163 -0
- package/dist/node/include/cppgc/prefinalizer.h +75 -0
- package/dist/node/include/cppgc/process-heap-statistics.h +36 -0
- package/dist/node/include/cppgc/sentinel-pointer.h +39 -0
- package/dist/node/include/cppgc/source-location.h +16 -0
- package/dist/node/include/cppgc/testing.h +106 -0
- package/dist/node/include/cppgc/trace-trait.h +128 -0
- package/dist/node/include/cppgc/type-traits.h +271 -0
- package/dist/node/include/cppgc/visitor.h +504 -0
- package/dist/node/include/crypto/crypto_aes.h +88 -0
- package/dist/node/include/crypto/crypto_bio.h +193 -0
- package/dist/node/include/crypto/crypto_cipher.h +293 -0
- package/dist/node/include/crypto/crypto_clienthello-inl.h +90 -0
- package/dist/node/include/crypto/crypto_clienthello.h +131 -0
- package/dist/node/include/crypto/crypto_common.h +64 -0
- package/dist/node/include/crypto/crypto_context.h +171 -0
- package/dist/node/include/crypto/crypto_dh.h +126 -0
- package/dist/node/include/crypto/crypto_dsa.h +52 -0
- package/dist/node/include/crypto/crypto_ec.h +164 -0
- package/dist/node/include/crypto/crypto_hash.h +91 -0
- package/dist/node/include/crypto/crypto_hkdf.h +61 -0
- package/dist/node/include/crypto/crypto_hmac.h +92 -0
- package/dist/node/include/crypto/crypto_keygen.h +299 -0
- package/dist/node/include/crypto/crypto_keys.h +392 -0
- package/dist/node/include/crypto/crypto_pbkdf2.h +74 -0
- package/dist/node/include/crypto/crypto_random.h +124 -0
- package/dist/node/include/crypto/crypto_rsa.h +136 -0
- package/dist/node/include/crypto/crypto_scrypt.h +85 -0
- package/dist/node/include/crypto/crypto_sig.h +165 -0
- package/dist/node/include/crypto/crypto_spkac.h +21 -0
- package/dist/node/include/crypto/crypto_timing.h +20 -0
- package/dist/node/include/crypto/crypto_tls.h +305 -0
- package/dist/node/include/crypto/crypto_util.h +725 -0
- package/dist/node/include/crypto/crypto_x509.h +140 -0
- package/dist/node/include/dataqueue/queue.h +306 -0
- package/dist/node/include/debug_utils-inl.h +278 -0
- package/dist/node/include/debug_utils.h +196 -0
- package/dist/node/include/diagnosticfilename-inl.h +33 -0
- package/dist/node/include/embedded_data.h +17 -0
- package/dist/node/include/encoding_binding.h +61 -0
- package/dist/node/include/env-inl.h +984 -0
- package/dist/node/include/env.h +1287 -0
- package/dist/node/include/env_properties.h +540 -0
- package/dist/node/include/handle_wrap.h +123 -0
- package/dist/node/include/histogram-inl.h +107 -0
- package/dist/node/include/histogram.h +279 -0
- package/dist/node/include/inspector/io_agent.h +30 -0
- package/dist/node/include/inspector/main_thread_interface.h +116 -0
- package/dist/node/include/inspector/network_agent.h +94 -0
- package/dist/node/include/inspector/network_inspector.h +45 -0
- package/dist/node/include/inspector/network_requests_buffer.h +195 -0
- package/dist/node/include/inspector/network_resource_manager.h +29 -0
- package/dist/node/include/inspector/node_json.h +24 -0
- package/dist/node/include/inspector/node_string.h +101 -0
- package/dist/node/include/inspector/protocol_helper.h +27 -0
- package/dist/node/include/inspector/runtime_agent.h +41 -0
- package/dist/node/include/inspector/target_agent.h +75 -0
- package/dist/node/include/inspector/tracing_agent.h +43 -0
- package/dist/node/include/inspector/worker_agent.h +40 -0
- package/dist/node/include/inspector/worker_inspector.h +124 -0
- package/dist/node/include/inspector_agent.h +165 -0
- package/dist/node/include/inspector_io.h +78 -0
- package/dist/node/include/inspector_profiler.h +149 -0
- package/dist/node/include/inspector_socket.h +60 -0
- package/dist/node/include/inspector_socket_server.h +110 -0
- package/dist/node/include/js_native_api.h +607 -0
- package/dist/node/include/js_native_api_types.h +226 -0
- package/dist/node/include/js_native_api_v8.h +485 -0
- package/dist/node/include/js_native_api_v8_internals.h +45 -0
- package/dist/node/include/js_stream.h +52 -0
- package/dist/node/include/json_utils.h +172 -0
- package/dist/node/include/large_pages/node_large_page.h +34 -0
- package/dist/node/include/libplatform/libplatform-export.h +29 -0
- package/dist/node/include/libplatform/libplatform.h +112 -0
- package/dist/node/include/libplatform/v8-tracing.h +333 -0
- package/dist/node/include/memory_tracker-inl.h +359 -0
- package/dist/node/include/memory_tracker.h +289 -0
- package/dist/node/include/module_wrap.h +216 -0
- package/dist/node/include/node.h +1593 -0
- package/dist/node/include/node_api.h +265 -0
- package/dist/node/include/node_api_internals.h +48 -0
- package/dist/node/include/node_api_types.h +56 -0
- package/dist/node/include/node_binding.h +161 -0
- package/dist/node/include/node_blob.h +159 -0
- package/dist/node/include/node_bob-inl.h +36 -0
- package/dist/node/include/node_bob.h +107 -0
- package/dist/node/include/node_buffer.h +92 -0
- package/dist/node/include/node_builtins.h +220 -0
- package/dist/node/include/node_config_file.h +46 -0
- package/dist/node/include/node_constants.h +82 -0
- package/dist/node/include/node_context_data.h +168 -0
- package/dist/node/include/node_contextify.h +204 -0
- package/dist/node/include/node_crypto.h +56 -0
- package/dist/node/include/node_debug.h +30 -0
- package/dist/node/include/node_dir.h +52 -0
- package/dist/node/include/node_dotenv.h +45 -0
- package/dist/node/include/node_errors.h +380 -0
- package/dist/node/include/node_exit_code.h +54 -0
- package/dist/node/include/node_external_reference.h +165 -0
- package/dist/node/include/node_file-inl.h +406 -0
- package/dist/node/include/node_file.h +537 -0
- package/dist/node/include/node_http2.h +1177 -0
- package/dist/node/include/node_http2_state.h +159 -0
- package/dist/node/include/node_http_common-inl.h +202 -0
- package/dist/node/include/node_http_common.h +535 -0
- package/dist/node/include/node_i18n.h +132 -0
- package/dist/node/include/node_internals.h +483 -0
- package/dist/node/include/node_main_instance.h +67 -0
- package/dist/node/include/node_mem-inl.h +113 -0
- package/dist/node/include/node_mem.h +45 -0
- package/dist/node/include/node_messaging.h +389 -0
- package/dist/node/include/node_metadata.h +164 -0
- package/dist/node/include/node_modules.h +91 -0
- package/dist/node/include/node_mutex.h +323 -0
- package/dist/node/include/node_object_wrap.h +132 -0
- package/dist/node/include/node_options-inl.h +490 -0
- package/dist/node/include/node_options.h +615 -0
- package/dist/node/include/node_perf.h +166 -0
- package/dist/node/include/node_perf_common.h +102 -0
- package/dist/node/include/node_platform.h +238 -0
- package/dist/node/include/node_process-inl.h +26 -0
- package/dist/node/include/node_process.h +112 -0
- package/dist/node/include/node_realm-inl.h +151 -0
- package/dist/node/include/node_realm.h +183 -0
- package/dist/node/include/node_report.h +43 -0
- package/dist/node/include/node_revert.h +82 -0
- package/dist/node/include/node_root_certs.h +3520 -0
- package/dist/node/include/node_sea.h +74 -0
- package/dist/node/include/node_shadow_realm.h +46 -0
- package/dist/node/include/node_snapshot_builder.h +57 -0
- package/dist/node/include/node_snapshotable.h +174 -0
- package/dist/node/include/node_sockaddr-inl.h +257 -0
- package/dist/node/include/node_sockaddr.h +394 -0
- package/dist/node/include/node_sqlite.h +270 -0
- package/dist/node/include/node_stat_watcher.h +73 -0
- package/dist/node/include/node_task_runner.h +92 -0
- package/dist/node/include/node_threadsafe_cow-inl.h +54 -0
- package/dist/node/include/node_threadsafe_cow.h +105 -0
- package/dist/node/include/node_union_bytes.h +81 -0
- package/dist/node/include/node_url.h +96 -0
- package/dist/node/include/node_v8.h +77 -0
- package/dist/node/include/node_v8_platform-inl.h +185 -0
- package/dist/node/include/node_version.h +110 -0
- package/dist/node/include/node_wasi.h +184 -0
- package/dist/node/include/node_wasm_web_api.h +55 -0
- package/dist/node/include/node_watchdog.h +154 -0
- package/dist/node/include/node_webstorage.h +60 -0
- package/dist/node/include/node_worker.h +158 -0
- package/dist/node/include/path.h +33 -0
- package/dist/node/include/permission/addon_permission.h +31 -0
- package/dist/node/include/permission/child_process_permission.h +31 -0
- package/dist/node/include/permission/fs_permission.h +167 -0
- package/dist/node/include/permission/inspector_permission.h +31 -0
- package/dist/node/include/permission/permission.h +138 -0
- package/dist/node/include/permission/permission_base.h +65 -0
- package/dist/node/include/permission/wasi_permission.h +31 -0
- package/dist/node/include/permission/worker_permission.h +31 -0
- package/dist/node/include/pipe_wrap.h +80 -0
- package/dist/node/include/quic/application.h +159 -0
- package/dist/node/include/quic/bindingdata.h +272 -0
- package/dist/node/include/quic/cid.h +127 -0
- package/dist/node/include/quic/data.h +148 -0
- package/dist/node/include/quic/defs.h +245 -0
- package/dist/node/include/quic/endpoint.h +458 -0
- package/dist/node/include/quic/http3.h +15 -0
- package/dist/node/include/quic/logstream.h +81 -0
- package/dist/node/include/quic/packet.h +152 -0
- package/dist/node/include/quic/preferredaddress.h +72 -0
- package/dist/node/include/quic/session.h +443 -0
- package/dist/node/include/quic/sessionticket.h +108 -0
- package/dist/node/include/quic/streams.h +232 -0
- package/dist/node/include/quic/tlscontext.h +227 -0
- package/dist/node/include/quic/tokens.h +256 -0
- package/dist/node/include/quic/transportparams.h +165 -0
- package/dist/node/include/req_wrap-inl.h +171 -0
- package/dist/node/include/req_wrap.h +77 -0
- package/dist/node/include/spawn_sync.h +243 -0
- package/dist/node/include/stream_base-inl.h +173 -0
- package/dist/node/include/stream_base.h +478 -0
- package/dist/node/include/stream_pipe.h +76 -0
- package/dist/node/include/stream_wrap.h +132 -0
- package/dist/node/include/string_bytes.h +113 -0
- package/dist/node/include/string_decoder-inl.h +31 -0
- package/dist/node/include/string_decoder.h +49 -0
- package/dist/node/include/tcp_wrap.h +105 -0
- package/dist/node/include/threadpoolwork-inl.h +70 -0
- package/dist/node/include/timer_wrap-inl.h +32 -0
- package/dist/node/include/timer_wrap.h +85 -0
- package/dist/node/include/timers.h +70 -0
- package/dist/node/include/tracing/agent.h +195 -0
- package/dist/node/include/tracing/node_trace_buffer.h +83 -0
- package/dist/node/include/tracing/node_trace_writer.h +75 -0
- package/dist/node/include/tracing/trace_event.h +722 -0
- package/dist/node/include/tracing/trace_event_common.h +1109 -0
- package/dist/node/include/tracing/traced_value.h +129 -0
- package/dist/node/include/tty_wrap.h +65 -0
- package/dist/node/include/udp_wrap.h +230 -0
- package/dist/node/include/undici_version.h +6 -0
- package/dist/node/include/util-inl.h +700 -0
- package/dist/node/include/util.h +1021 -0
- package/dist/node/include/uv/aix.h +32 -0
- package/dist/node/include/uv/bsd.h +34 -0
- package/dist/node/include/uv/darwin.h +61 -0
- package/dist/node/include/uv/errno.h +483 -0
- package/dist/node/include/uv/linux.h +34 -0
- package/dist/node/include/uv/os390.h +33 -0
- package/dist/node/include/uv/posix.h +31 -0
- package/dist/node/include/uv/sunos.h +44 -0
- package/dist/node/include/uv/threadpool.h +37 -0
- package/dist/node/include/uv/tree.h +521 -0
- package/dist/node/include/uv/unix.h +512 -0
- package/dist/node/include/uv/version.h +43 -0
- package/dist/node/include/uv/win.h +698 -0
- package/dist/node/include/uv.h +1990 -0
- package/dist/node/include/v8-array-buffer.h +525 -0
- package/dist/node/include/v8-callbacks.h +462 -0
- package/dist/node/include/v8-container.h +183 -0
- package/dist/node/include/v8-context.h +485 -0
- package/dist/node/include/v8-cppgc.h +245 -0
- package/dist/node/include/v8-data.h +80 -0
- package/dist/node/include/v8-date.h +48 -0
- package/dist/node/include/v8-debug.h +168 -0
- package/dist/node/include/v8-embedder-heap.h +82 -0
- package/dist/node/include/v8-embedder-state-scope.h +52 -0
- package/dist/node/include/v8-exception.h +223 -0
- package/dist/node/include/v8-extension.h +62 -0
- package/dist/node/include/v8-external.h +37 -0
- package/dist/node/include/v8-fast-api-calls.h +984 -0
- package/dist/node/include/v8-forward.h +82 -0
- package/dist/node/include/v8-function-callback.h +607 -0
- package/dist/node/include/v8-function.h +140 -0
- package/dist/node/include/v8-handle-base.h +137 -0
- package/dist/node/include/v8-initialization.h +289 -0
- package/dist/node/include/v8-inspector-protocol.h +13 -0
- package/dist/node/include/v8-inspector.h +419 -0
- package/dist/node/include/v8-internal.h +1397 -0
- package/dist/node/include/v8-isolate.h +1767 -0
- package/dist/node/include/v8-json.h +47 -0
- package/dist/node/include/v8-local-handle.h +758 -0
- package/dist/node/include/v8-locker.h +138 -0
- package/dist/node/include/v8-maybe.h +160 -0
- package/dist/node/include/v8-memory-span.h +198 -0
- package/dist/node/include/v8-message.h +233 -0
- package/dist/node/include/v8-metrics.h +264 -0
- package/dist/node/include/v8-microtask-queue.h +157 -0
- package/dist/node/include/v8-microtask.h +28 -0
- package/dist/node/include/v8-object.h +824 -0
- package/dist/node/include/v8-persistent-handle.h +582 -0
- package/dist/node/include/v8-platform.h +1358 -0
- package/dist/node/include/v8-primitive-object.h +118 -0
- package/dist/node/include/v8-primitive.h +877 -0
- package/dist/node/include/v8-profiler.h +1302 -0
- package/dist/node/include/v8-promise.h +174 -0
- package/dist/node/include/v8-proxy.h +50 -0
- package/dist/node/include/v8-regexp.h +106 -0
- package/dist/node/include/v8-script.h +904 -0
- package/dist/node/include/v8-snapshot.h +266 -0
- package/dist/node/include/v8-source-location.h +92 -0
- package/dist/node/include/v8-statistics.h +238 -0
- package/dist/node/include/v8-template.h +1297 -0
- package/dist/node/include/v8-traced-handle.h +432 -0
- package/dist/node/include/v8-typed-array.h +390 -0
- package/dist/node/include/v8-unwinder-state.h +31 -0
- package/dist/node/include/v8-unwinder.h +132 -0
- package/dist/node/include/v8-util.h +665 -0
- package/dist/node/include/v8-value-serializer-version.h +24 -0
- package/dist/node/include/v8-value-serializer.h +316 -0
- package/dist/node/include/v8-value.h +655 -0
- package/dist/node/include/v8-version-string.h +38 -0
- package/dist/node/include/v8-version.h +20 -0
- package/dist/node/include/v8-wasm-trap-handler-posix.h +31 -0
- package/dist/node/include/v8-wasm-trap-handler-win.h +28 -0
- package/dist/node/include/v8-wasm.h +201 -0
- package/dist/node/include/v8-weak-callback-info.h +80 -0
- package/dist/node/include/v8.h +88 -0
- package/dist/node/include/v8config.h +981 -0
- package/dist/node/include/zlib_version.h +6 -0
- package/dist/node/libnode.dll +0 -0
- package/dist/node/libnode.lib +0 -0
- package/dist/node/libnodebuildinfo.json +10 -0
- package/dist/node/link_node.lib +0 -0
- package/dist/node/link_node.node +0 -0
- package/index.js +5 -0
- package/libnode.release.json +8 -0
- package/package.json +29 -1
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
#ifndef SRC_MODULE_WRAP_H_
|
|
2
|
+
#define SRC_MODULE_WRAP_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <optional>
|
|
7
|
+
#include <string>
|
|
8
|
+
#include <unordered_map>
|
|
9
|
+
#include <vector>
|
|
10
|
+
#include "base_object.h"
|
|
11
|
+
#include "v8-script.h"
|
|
12
|
+
|
|
13
|
+
namespace node {
|
|
14
|
+
|
|
15
|
+
class IsolateData;
|
|
16
|
+
class Environment;
|
|
17
|
+
class ExternalReferenceRegistry;
|
|
18
|
+
|
|
19
|
+
namespace contextify {
|
|
20
|
+
class ContextifyContext;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
namespace loader {
|
|
24
|
+
|
|
25
|
+
enum ScriptType : int {
|
|
26
|
+
kScript,
|
|
27
|
+
kModule,
|
|
28
|
+
kFunction,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
enum HostDefinedOptions : int {
|
|
32
|
+
kID = 8,
|
|
33
|
+
kLength = 9,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* ModuleCacheKey is used to uniquely identify a module request
|
|
38
|
+
* in the module cache. It is a composition of the module specifier
|
|
39
|
+
* and the import attributes.
|
|
40
|
+
*/
|
|
41
|
+
struct ModuleCacheKey : public MemoryRetainer {
|
|
42
|
+
using ImportAttributeVector =
|
|
43
|
+
std::vector<std::pair<std::string, std::string>>;
|
|
44
|
+
|
|
45
|
+
std::string specifier;
|
|
46
|
+
ImportAttributeVector import_attributes;
|
|
47
|
+
// A hash of the specifier, and import attributes.
|
|
48
|
+
// This does not guarantee uniqueness, but is used to reduce
|
|
49
|
+
// the number of comparisons needed when checking for equality.
|
|
50
|
+
std::size_t hash;
|
|
51
|
+
|
|
52
|
+
SET_MEMORY_INFO_NAME(ModuleCacheKey)
|
|
53
|
+
SET_SELF_SIZE(ModuleCacheKey)
|
|
54
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
55
|
+
|
|
56
|
+
// Returns a string representation of the ModuleCacheKey.
|
|
57
|
+
std::string ToString() const;
|
|
58
|
+
|
|
59
|
+
template <int elements_per_attribute = 3>
|
|
60
|
+
static ModuleCacheKey From(v8::Local<v8::Context> context,
|
|
61
|
+
v8::Local<v8::String> specifier,
|
|
62
|
+
v8::Local<v8::FixedArray> import_attributes);
|
|
63
|
+
static ModuleCacheKey From(v8::Local<v8::Context> context,
|
|
64
|
+
v8::Local<v8::ModuleRequest> v8_request);
|
|
65
|
+
|
|
66
|
+
struct Hash {
|
|
67
|
+
std::size_t operator()(const ModuleCacheKey& request) const {
|
|
68
|
+
return request.hash;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Equality operator for ModuleCacheKey.
|
|
73
|
+
bool operator==(const ModuleCacheKey& other) const {
|
|
74
|
+
// Hash does not provide uniqueness guarantee, so ignore it.
|
|
75
|
+
return specifier == other.specifier &&
|
|
76
|
+
import_attributes == other.import_attributes;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
private:
|
|
80
|
+
// Use public ModuleCacheKey::From to create instances.
|
|
81
|
+
ModuleCacheKey(std::string specifier,
|
|
82
|
+
ImportAttributeVector import_attributes,
|
|
83
|
+
std::size_t hash)
|
|
84
|
+
: specifier(specifier),
|
|
85
|
+
import_attributes(import_attributes),
|
|
86
|
+
hash(hash) {}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
class ModuleWrap : public BaseObject {
|
|
90
|
+
using ResolveCache =
|
|
91
|
+
std::unordered_map<ModuleCacheKey, uint32_t, ModuleCacheKey::Hash>;
|
|
92
|
+
|
|
93
|
+
public:
|
|
94
|
+
enum InternalFields {
|
|
95
|
+
kModuleSlot = BaseObject::kInternalFieldCount,
|
|
96
|
+
kURLSlot,
|
|
97
|
+
kSyntheticEvaluationStepsSlot,
|
|
98
|
+
kContextObjectSlot, // Object whose creation context is the target Context
|
|
99
|
+
kLinkedRequestsSlot, // Array of linked requests
|
|
100
|
+
kInternalFieldCount
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
|
104
|
+
v8::Local<v8::ObjectTemplate> target);
|
|
105
|
+
static void CreatePerContextProperties(v8::Local<v8::Object> target,
|
|
106
|
+
v8::Local<v8::Value> unused,
|
|
107
|
+
v8::Local<v8::Context> context,
|
|
108
|
+
void* priv);
|
|
109
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
110
|
+
static void HostInitializeImportMetaObjectCallback(
|
|
111
|
+
v8::Local<v8::Context> context,
|
|
112
|
+
v8::Local<v8::Module> module,
|
|
113
|
+
v8::Local<v8::Object> meta);
|
|
114
|
+
|
|
115
|
+
static void HasTopLevelAwait(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
116
|
+
|
|
117
|
+
v8::Local<v8::Context> context() const;
|
|
118
|
+
v8::Maybe<bool> CheckUnsettledTopLevelAwait();
|
|
119
|
+
|
|
120
|
+
SET_MEMORY_INFO_NAME(ModuleWrap)
|
|
121
|
+
SET_SELF_SIZE(ModuleWrap)
|
|
122
|
+
SET_NO_MEMORY_INFO()
|
|
123
|
+
|
|
124
|
+
bool IsNotIndicativeOfMemoryLeakAtExit() const override {
|
|
125
|
+
// XXX: The garbage collection rules for ModuleWrap are *super* unclear.
|
|
126
|
+
// Do these objects ever get GC'd? Are we just okay with leaking them?
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
bool IsLinked() const { return linked_; }
|
|
131
|
+
|
|
132
|
+
ModuleWrap* GetLinkedRequest(uint32_t index);
|
|
133
|
+
|
|
134
|
+
static v8::Local<v8::PrimitiveArray> GetHostDefinedOptions(
|
|
135
|
+
v8::Isolate* isolate, v8::Local<v8::Symbol> symbol);
|
|
136
|
+
|
|
137
|
+
// When user_cached_data is not std::nullopt, use the code cache if it's not
|
|
138
|
+
// nullptr, otherwise don't use code cache.
|
|
139
|
+
// TODO(joyeecheung): when it is std::nullopt, use on-disk cache
|
|
140
|
+
// See: https://github.com/nodejs/node/issues/47472
|
|
141
|
+
static v8::MaybeLocal<v8::Module> CompileSourceTextModule(
|
|
142
|
+
Realm* realm,
|
|
143
|
+
v8::Local<v8::String> source_text,
|
|
144
|
+
v8::Local<v8::String> url,
|
|
145
|
+
int line_offset,
|
|
146
|
+
int column_offset,
|
|
147
|
+
v8::Local<v8::PrimitiveArray> host_defined_options,
|
|
148
|
+
std::optional<v8::ScriptCompiler::CachedData*> user_cached_data,
|
|
149
|
+
bool* cache_rejected);
|
|
150
|
+
|
|
151
|
+
static void CreateRequiredModuleFacade(
|
|
152
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
153
|
+
|
|
154
|
+
private:
|
|
155
|
+
ModuleWrap(Realm* realm,
|
|
156
|
+
v8::Local<v8::Object> object,
|
|
157
|
+
v8::Local<v8::Module> module,
|
|
158
|
+
v8::Local<v8::String> url,
|
|
159
|
+
v8::Local<v8::Object> context_object,
|
|
160
|
+
v8::Local<v8::Value> synthetic_evaluation_step);
|
|
161
|
+
~ModuleWrap() override;
|
|
162
|
+
|
|
163
|
+
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
164
|
+
static void GetModuleRequests(
|
|
165
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
166
|
+
static void InstantiateSync(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
167
|
+
static void EvaluateSync(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
168
|
+
static void GetNamespaceSync(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
169
|
+
|
|
170
|
+
static void Link(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
171
|
+
static void Instantiate(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
172
|
+
static void Evaluate(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
173
|
+
static void GetNamespace(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
174
|
+
static void IsGraphAsync(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
175
|
+
static void GetStatus(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
176
|
+
static void GetError(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
177
|
+
|
|
178
|
+
static void SetImportModuleDynamicallyCallback(
|
|
179
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
180
|
+
static void SetInitializeImportMetaObjectCallback(
|
|
181
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
182
|
+
static v8::MaybeLocal<v8::Value> SyntheticModuleEvaluationStepsCallback(
|
|
183
|
+
v8::Local<v8::Context> context, v8::Local<v8::Module> module);
|
|
184
|
+
static void SetSyntheticExport(
|
|
185
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
186
|
+
static void CreateCachedData(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
187
|
+
|
|
188
|
+
static v8::MaybeLocal<v8::Module> ResolveModuleCallback(
|
|
189
|
+
v8::Local<v8::Context> context,
|
|
190
|
+
v8::Local<v8::String> specifier,
|
|
191
|
+
v8::Local<v8::FixedArray> import_attributes,
|
|
192
|
+
v8::Local<v8::Module> referrer);
|
|
193
|
+
static ModuleWrap* GetFromModule(node::Environment*, v8::Local<v8::Module>);
|
|
194
|
+
|
|
195
|
+
// This method may throw a JavaScript exception, so the return type is
|
|
196
|
+
// wrapped in a Maybe.
|
|
197
|
+
static v8::Maybe<ModuleWrap*> ResolveModule(
|
|
198
|
+
v8::Local<v8::Context> context,
|
|
199
|
+
v8::Local<v8::String> specifier,
|
|
200
|
+
v8::Local<v8::FixedArray> import_attributes,
|
|
201
|
+
v8::Local<v8::Module> referrer);
|
|
202
|
+
|
|
203
|
+
v8::Global<v8::Module> module_;
|
|
204
|
+
ResolveCache resolve_cache_;
|
|
205
|
+
contextify::ContextifyContext* contextify_context_ = nullptr;
|
|
206
|
+
bool synthetic_ = false;
|
|
207
|
+
bool linked_ = false;
|
|
208
|
+
int module_hash_;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
} // namespace loader
|
|
212
|
+
} // namespace node
|
|
213
|
+
|
|
214
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
215
|
+
|
|
216
|
+
#endif // SRC_MODULE_WRAP_H_
|