mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 18:38:33 +00:00
refactor(ext/node): make initialization functions sync (#18282)
These functions don't need to be async, as they are only calling synchronous JavaScript code. As a follow up, all 3 functions should be merge together - this will reduce roundtrips for calling V8 from Rust, which is somewhat expensive
This commit is contained in:
parent
090169cfbc
commit
aba5329aec
3 changed files with 13 additions and 21 deletions
|
@ -383,12 +383,12 @@ deno_core::extension!(deno_node_loading,
|
|||
},
|
||||
);
|
||||
|
||||
pub async fn initialize_runtime(
|
||||
pub fn initialize_runtime(
|
||||
js_runtime: &mut JsRuntime,
|
||||
uses_local_node_modules_dir: bool,
|
||||
) -> Result<(), AnyError> {
|
||||
let source_code = &format!(
|
||||
r#"(async function loadBuiltinNodeModules(nodeGlobalThisName, usesLocalNodeModulesDir) {{
|
||||
r#"(function loadBuiltinNodeModules(nodeGlobalThisName, usesLocalNodeModulesDir) {{
|
||||
Deno[Deno.internal].node.initialize(Deno[Deno.internal].nodeModuleAll, nodeGlobalThisName);
|
||||
if (usesLocalNodeModulesDir) {{
|
||||
Deno[Deno.internal].require.setUsesLocalNodeModulesDir();
|
||||
|
@ -398,9 +398,7 @@ pub async fn initialize_runtime(
|
|||
uses_local_node_modules_dir,
|
||||
);
|
||||
|
||||
let value =
|
||||
js_runtime.execute_script(&located_script_name!(), source_code)?;
|
||||
js_runtime.resolve_value(value).await?;
|
||||
js_runtime.execute_script(&located_script_name!(), source_code)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -430,13 +428,13 @@ pub fn load_cjs_module(
|
|||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn initialize_binary_command(
|
||||
pub fn initialize_binary_command(
|
||||
js_runtime: &mut JsRuntime,
|
||||
binary_name: &str,
|
||||
) -> Result<(), AnyError> {
|
||||
// overwrite what's done in deno_std in order to set the binary arg name
|
||||
let source_code = &format!(
|
||||
r#"(async function initializeBinaryCommand(binaryName) {{
|
||||
r#"(function initializeBinaryCommand(binaryName) {{
|
||||
const process = Deno[Deno.internal].node.globalThis.process;
|
||||
Object.defineProperty(process.argv, "0", {{
|
||||
get: () => binaryName,
|
||||
|
@ -444,8 +442,6 @@ pub async fn initialize_binary_command(
|
|||
}})('{binary_name}');"#,
|
||||
);
|
||||
|
||||
let value =
|
||||
js_runtime.execute_script(&located_script_name!(), source_code)?;
|
||||
js_runtime.resolve_value(value).await?;
|
||||
js_runtime.execute_script(&located_script_name!(), source_code)?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue