Skip to content

Commit

Permalink
refactor(runtime): split up MainWorker and WebWorker's `preload_m…
Browse files Browse the repository at this point in the history
…odule` method into two separate methods (denoland#15451)
  • Loading branch information
dsherret committed Aug 10, 2022
1 parent 578f12d commit 321a42d
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 37 deletions.
2 changes: 1 addition & 1 deletion cli/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ async fn install_command(
Default::default(),
);
// First, fetch and compile the module; this step ensures that the module exists.
worker.preload_module(&main_module, true).await?;
worker.preload_main_module(&main_module).await?;
tools::installer::install(flags, install_flags)?;
Ok(0)
}
Expand Down
36 changes: 19 additions & 17 deletions runtime/web_worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -514,24 +514,26 @@ impl WebWorker {
Ok(())
}

/// Loads and instantiates specified JavaScript module
/// as "main" or "side" module.
pub async fn preload_module(
/// Loads and instantiates specified JavaScript module as "main" module.
pub async fn preload_main_module(
&mut self,
module_specifier: &ModuleSpecifier,
main: bool,
) -> Result<ModuleId, AnyError> {
if main {
self
.js_runtime
.load_main_module(module_specifier, None)
.await
} else {
self
.js_runtime
.load_side_module(module_specifier, None)
.await
}
self
.js_runtime
.load_main_module(module_specifier, None)
.await
}

/// Loads and instantiates specified JavaScript module as "side" module.
pub async fn preload_side_module(
&mut self,
module_specifier: &ModuleSpecifier,
) -> Result<ModuleId, AnyError> {
self
.js_runtime
.load_side_module(module_specifier, None)
.await
}

/// Loads, instantiates and executes specified JavaScript module.
Expand All @@ -542,7 +544,7 @@ impl WebWorker {
&mut self,
module_specifier: &ModuleSpecifier,
) -> Result<(), AnyError> {
let id = self.preload_module(module_specifier, false).await?;
let id = self.preload_side_module(module_specifier).await?;
let mut receiver = self.js_runtime.mod_evaluate(id);
tokio::select! {
biased;
Expand Down Expand Up @@ -700,7 +702,7 @@ pub fn run_web_worker(
} else {
// TODO(bartlomieju): add "type": "classic", ie. ability to load
// script instead of module
match worker.preload_module(&specifier, true).await {
match worker.preload_main_module(&specifier).await {
Ok(id) => {
worker.start_polling_for_messages();
worker.execute_main_module(id).await
Expand Down
39 changes: 20 additions & 19 deletions runtime/worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -217,31 +217,34 @@ impl MainWorker {
Ok(())
}

/// Loads and instantiates specified JavaScript module
/// as "main" or "side" module.
pub async fn preload_module(
/// Loads and instantiates specified JavaScript module as "main" module.
pub async fn preload_main_module(
&mut self,
module_specifier: &ModuleSpecifier,
main: bool,
) -> Result<ModuleId, AnyError> {
if main {
self
.js_runtime
.load_main_module(module_specifier, None)
.await
} else {
self
.js_runtime
.load_side_module(module_specifier, None)
.await
}
self
.js_runtime
.load_main_module(module_specifier, None)
.await
}

/// Loads and instantiates specified JavaScript module as "side" module.
pub async fn preload_side_module(
&mut self,
module_specifier: &ModuleSpecifier,
) -> Result<ModuleId, AnyError> {
self
.js_runtime
.load_side_module(module_specifier, None)
.await
}

/// Executes specified JavaScript module.
pub async fn evaluate_module(
&mut self,
id: ModuleId,
) -> Result<(), AnyError> {
self.wait_for_inspector_session();
let mut receiver = self.js_runtime.mod_evaluate(id);
tokio::select! {
// Not using biased mode leads to non-determinism for relatively simple
Expand All @@ -266,8 +269,7 @@ impl MainWorker {
&mut self,
module_specifier: &ModuleSpecifier,
) -> Result<(), AnyError> {
let id = self.preload_module(module_specifier, false).await?;
self.wait_for_inspector_session();
let id = self.preload_side_module(module_specifier).await?;
self.evaluate_module(id).await
}

Expand All @@ -278,8 +280,7 @@ impl MainWorker {
&mut self,
module_specifier: &ModuleSpecifier,
) -> Result<(), AnyError> {
let id = self.preload_module(module_specifier, true).await?;
self.wait_for_inspector_session();
let id = self.preload_main_module(module_specifier).await?;
self.evaluate_module(id).await
}

Expand Down

0 comments on commit 321a42d

Please sign in to comment.