From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 13 Oct 2022 17:10:01 +0200 Subject: fix: expose LookupAndCompile with parameters Node.js removed custom parameters from the public version of LookupAndCompile, which we use in Electron. This patch re-exposes a wrapper to allow custom parameters. This should be upstreamed. diff --git a/src/node_builtins.cc b/src/node_builtins.cc index f3cda64beaa1403cb33f1b0bd8089f3dfcbfc8b9..77386bd234d0b49b122f1de3d27b1a92da5d0ea4 100644 --- a/src/node_builtins.cc +++ b/src/node_builtins.cc @@ -482,6 +482,18 @@ MaybeLocal BuiltinLoader::CompileAndCall(Local context, return fn->Call(context, undefined, argc, argv); } +MaybeLocal BuiltinLoader::LookupAndCompile( + Local context, + const char* id, + std::vector>* parameters, + Realm* optional_realm) { + Isolate* isolate = context->GetIsolate(); + + MaybeLocal maybe = LookupAndCompileInternal( + context, id, parameters, optional_realm); + return maybe; +} + bool BuiltinLoader::CompileAllBuiltins(Local context) { std::vector ids = GetBuiltinIds(); bool all_succeeded = true; diff --git a/src/node_builtins.h b/src/node_builtins.h index 11d10f52b7c492bfae4bc58b39c20a693762a72d..b995e15fcd795f310126a38ec652efcd9fd36945 100644 --- a/src/node_builtins.h +++ b/src/node_builtins.h @@ -99,6 +99,12 @@ class NODE_EXTERN_PRIVATE BuiltinLoader { const char* id, Realm* optional_realm); + v8::MaybeLocal LookupAndCompile( + v8::Local context, + const char* id, + std::vector>* parameters, + Realm* optional_realm); + v8::MaybeLocal CompileAndCall(v8::Local context, const char* id, int argc, @@ -109,6 +115,7 @@ class NODE_EXTERN_PRIVATE BuiltinLoader { const char* id, Realm* realm); + // Returns config.gypi as a JSON string v8::Local GetConfigString(v8::Isolate* isolate); bool Exists(const char* id);