refactor: move CompileAndCall to a helper (#20675)
This commit is contained in:
parent
5abce7ec08
commit
db4d01c517
8 changed files with 86 additions and 76 deletions
|
@ -28,7 +28,6 @@ chore_prevent_warn_non_context-aware_native_modules_being_loaded.patch
|
|||
chore_allow_the_node_entrypoint_to_be_a_builtin_module.patch
|
||||
inherit_electron_crashpad_pipe_name_in_child_process.patch
|
||||
fixme_revert_crypto_add_support_for_rsa-pss_keys.patch
|
||||
chore_re-add_compileandcall_this_should_be_added_as_a_helper_in.patch
|
||||
fix_extern_the_nativemoduleenv_and_options_parser_for_debug_builds.patch
|
||||
chore_read_nobrowserglobals_from_global_not_process.patch
|
||||
chore_split_createenvironment_into_createenvironment_and.patch
|
||||
|
|
|
@ -1,55 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Attard <sattard@slack-corp.com>
|
||||
Date: Fri, 28 Jun 2019 17:13:54 -0700
|
||||
Subject: chore: re-add CompileAndCall, this should be added as a helper in
|
||||
electron
|
||||
|
||||
diff --git a/src/node_native_module_env.cc b/src/node_native_module_env.cc
|
||||
index 31536000fc8d2f9ce9589ef8e31cb55439fbd28d..6cb49b3b6def15a38ce1ba51da11af2567cb84ec 100644
|
||||
--- a/src/node_native_module_env.cc
|
||||
+++ b/src/node_native_module_env.cc
|
||||
@@ -151,6 +151,22 @@ MaybeLocal<Function> NativeModuleEnv::LookupAndCompile(
|
||||
return maybe;
|
||||
}
|
||||
|
||||
+MaybeLocal<Value> NativeModuleEnv::CompileAndCall(
|
||||
+ Local<Context> context,
|
||||
+ const char* id,
|
||||
+ std::vector<Local<String>>* parameters,
|
||||
+ std::vector<Local<Value>>* arguments,
|
||||
+ Environment* optional_env) {
|
||||
+ Isolate* isolate = context->GetIsolate();
|
||||
+ MaybeLocal<Function> compiled = LookupAndCompile(context, id, parameters, optional_env);
|
||||
+ if (compiled.IsEmpty()) {
|
||||
+ return MaybeLocal<Value>();
|
||||
+ }
|
||||
+ Local<Function> fn = compiled.ToLocalChecked().As<Function>();
|
||||
+ return fn->Call(
|
||||
+ context, v8::Null(isolate), arguments->size(), arguments->data());
|
||||
+}
|
||||
+
|
||||
// TODO(joyeecheung): It is somewhat confusing that Class::Initialize
|
||||
// is used to initialize to the binding, but it is the current convention.
|
||||
// Rename this across the code base to something that makes more sense.
|
||||
diff --git a/src/node_native_module_env.h b/src/node_native_module_env.h
|
||||
index f662c67be50d404ee5b6cf6e2b8dd5991c59e723..b91a5059cd1f19d87e5876c372f3ded60681a5df 100644
|
||||
--- a/src/node_native_module_env.h
|
||||
+++ b/src/node_native_module_env.h
|
||||
@@ -24,6 +24,17 @@ class NativeModuleEnv {
|
||||
const char* id,
|
||||
std::vector<v8::Local<v8::String>>* parameters,
|
||||
Environment* optional_env);
|
||||
+ // Run a script with JS source bundled inside the binary as if it's wrapped
|
||||
+ // in a function called with a null receiver and arguments specified in C++.
|
||||
+ // The returned value is empty if an exception is encountered.
|
||||
+ // JS code run with this method can assume that their top-level
|
||||
+ // declarations won't affect the global scope.
|
||||
+ static v8::MaybeLocal<v8::Value> CompileAndCall(
|
||||
+ v8::Local<v8::Context> context,
|
||||
+ const char* id,
|
||||
+ std::vector<v8::Local<v8::String>>* parameters,
|
||||
+ std::vector<v8::Local<v8::Value>>* arguments,
|
||||
+ Environment* optional_env);
|
||||
|
||||
static v8::Local<v8::Object> GetSourceObject(v8::Local<v8::Context> context);
|
||||
// Returns config.gypi as a JSON string
|
Loading…
Add table
Add a link
Reference in a new issue