bootstrap: support module_wrap binding in snapshot

PR-URL: https://github.com/nodejs/node/pull/45849
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
This commit is contained in:
Joyee Cheung 2022-12-13 21:59:14 +01:00
parent 4166d40d08
commit 579235747e
No known key found for this signature in database
GPG Key ID: 92B78A53C8303B8D
3 changed files with 23 additions and 0 deletions

View File

@ -4,6 +4,7 @@
#include "memory_tracker-inl.h"
#include "node_contextify.h"
#include "node_errors.h"
#include "node_external_reference.h"
#include "node_internals.h"
#include "node_process-inl.h"
#include "node_url.h"
@ -811,8 +812,27 @@ void ModuleWrap::Initialize(Local<Object> target,
#undef V
}
void ModuleWrap::RegisterExternalReferences(
ExternalReferenceRegistry* registry) {
registry->Register(New);
registry->Register(Link);
registry->Register(Instantiate);
registry->Register(Evaluate);
registry->Register(SetSyntheticExport);
registry->Register(CreateCachedData);
registry->Register(GetNamespace);
registry->Register(GetStatus);
registry->Register(GetError);
registry->Register(GetStaticDependencySpecifiers);
registry->Register(SetImportModuleDynamicallyCallback);
registry->Register(SetInitializeImportMetaObjectCallback);
}
} // namespace loader
} // namespace node
NODE_BINDING_CONTEXT_AWARE_INTERNAL(module_wrap,
node::loader::ModuleWrap::Initialize)
NODE_BINDING_EXTERNAL_REFERENCE(
module_wrap, node::loader::ModuleWrap::RegisterExternalReferences)

View File

@ -11,6 +11,7 @@
namespace node {
class Environment;
class ExternalReferenceRegistry;
namespace contextify {
class ContextifyContext;
@ -44,6 +45,7 @@ class ModuleWrap : public BaseObject {
v8::Local<v8::Value> unused,
v8::Local<v8::Context> context,
void* priv);
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
static void HostInitializeImportMetaObjectCallback(
v8::Local<v8::Context> context,
v8::Local<v8::Module> module,

View File

@ -74,6 +74,7 @@ class ExternalReferenceRegistry {
V(heap_utils) \
V(messaging) \
V(mksnapshot) \
V(module_wrap) \
V(options) \
V(os) \
V(performance) \