Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Shelley Vohr <shelley.vohr@gmail.com>
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 bcef04f980d1b1f010c5349ecbfca8080f39b308..6861c28eb6deea72e844b04048d88ca726385c7f 100644
--- a/src/node_builtins.cc
+++ b/src/node_builtins.cc
@@ -482,6 +482,18 @@ MaybeLocal<Value> BuiltinLoader::CompileAndCall(Local<Context> context,
return fn->Call(context, undefined, argc, argv);
}
+MaybeLocal<Function> BuiltinLoader::LookupAndCompile(
+ Local<Context> context,
+ const char* id,
+ std::vector<Local<String>>* parameters,
+ Realm* optional_realm) {
+ Isolate* isolate = context->GetIsolate();
+
+ MaybeLocal<Function> maybe = LookupAndCompileInternal(
+ context, id, parameters, optional_realm);
+ return maybe;
+}
bool BuiltinLoader::CompileAllBuiltins(Local<Context> context) {
std::vector<std::string_view> 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<v8::Function> LookupAndCompile(
+ v8::Local<v8::Context> context,
+ std::vector<v8::Local<v8::String>>* parameters,
+ Realm* optional_realm);
v8::MaybeLocal<v8::Value> CompileAndCall(v8::Local<v8::Context> context,
int argc,
@@ -109,6 +115,7 @@ class NODE_EXTERN_PRIVATE BuiltinLoader {
Realm* realm);
// Returns config.gypi as a JSON string
v8::Local<v8::String> GetConfigString(v8::Isolate* isolate);
bool Exists(const char* id);