summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/cli_behavior.rs5
-rw-r--r--cli/compiler.rs5
-rw-r--r--cli/isolate.rs11
-rw-r--r--cli/isolate_state.rs14
-rw-r--r--cli/startup_data.rs6
5 files changed, 13 insertions, 28 deletions
diff --git a/cli/cli_behavior.rs b/cli/cli_behavior.rs
index a297bdef9..c077d1ad1 100644
--- a/cli/cli_behavior.rs
+++ b/cli/cli_behavior.rs
@@ -2,7 +2,6 @@
use crate::isolate_state::*;
use crate::ops;
use deno_core::deno_buf;
-use deno_core::deno_mod;
use deno_core::Behavior;
use deno_core::Op;
use deno_core::StartupData;
@@ -43,10 +42,6 @@ impl Behavior for CliBehavior {
self.startup_data.take()
}
- fn resolve(&mut self, specifier: &str, referrer: deno_mod) -> deno_mod {
- self.state_resolve(specifier, referrer)
- }
-
fn dispatch(
&mut self,
control: &[u8],
diff --git a/cli/compiler.rs b/cli/compiler.rs
index e90a10c16..0452e08a9 100644
--- a/cli/compiler.rs
+++ b/cli/compiler.rs
@@ -9,7 +9,6 @@ use crate::startup_data;
use crate::workers;
use crate::workers::WorkerBehavior;
use deno_core::deno_buf;
-use deno_core::deno_mod;
use deno_core::Behavior;
use deno_core::Buf;
use deno_core::Op;
@@ -51,10 +50,6 @@ impl Behavior for CompilerBehavior {
Some(startup_data::compiler_isolate_init())
}
- fn resolve(&mut self, specifier: &str, referrer: deno_mod) -> deno_mod {
- self.state_resolve(specifier, referrer)
- }
-
fn dispatch(
&mut self,
control: &[u8],
diff --git a/cli/isolate.rs b/cli/isolate.rs
index d0c113da0..fad1f5ab5 100644
--- a/cli/isolate.rs
+++ b/cli/isolate.rs
@@ -14,6 +14,7 @@ use deno_core::Behavior;
use deno_core::JSError;
use futures::Async;
use futures::Future;
+use std::sync::atomic::Ordering;
use std::sync::Arc;
pub trait DenoBehavior: Behavior + IsolateStateContainer + Send {}
@@ -122,9 +123,17 @@ impl<B: DenoBehavior> Isolate<B> {
self.mod_load_deps(id)?;
+ let state = self.state.clone();
+
+ let mut resolve = move |specifier: &str, referrer: deno_mod| -> deno_mod {
+ state.metrics.resolve_count.fetch_add(1, Ordering::Relaxed);
+ let mut modules = state.modules.lock().unwrap();
+ modules.resolve_cb(&state.dir, specifier, referrer)
+ };
+
self
.inner
- .mod_instantiate(id)
+ .mod_instantiate(id, &mut resolve)
.map_err(RustOrJsError::from)?;
if !is_prefetch {
self.inner.mod_evaluate(id).map_err(RustOrJsError::from)?;
diff --git a/cli/isolate_state.rs b/cli/isolate_state.rs
index 6435b2e8b..4de074c06 100644
--- a/cli/isolate_state.rs
+++ b/cli/isolate_state.rs
@@ -5,7 +5,6 @@ use crate::flags;
use crate::global_timer::GlobalTimer;
use crate::modules::Modules;
use crate::permissions::DenoPermissions;
-use deno_core::deno_mod;
use deno_core::Buf;
use futures::sync::mpsc as async_mpsc;
use std;
@@ -144,16 +143,3 @@ impl IsolateState {
pub trait IsolateStateContainer {
fn state(&self) -> Arc<IsolateState>;
}
-
-/// Provides state_resolve function for IsolateStateContainer implementors
-pub trait IsolateStateModuleResolution: IsolateStateContainer {
- fn state_resolve(&mut self, specifier: &str, referrer: deno_mod) -> deno_mod {
- let state = self.state();
- state.metrics.resolve_count.fetch_add(1, Ordering::Relaxed);
- let mut modules = state.modules.lock().unwrap();
- modules.resolve_cb(&state.dir, specifier, referrer)
- }
-}
-
-// Auto implementation for all IsolateStateContainer implementors
-impl<T> IsolateStateModuleResolution for T where T: IsolateStateContainer {}
diff --git a/cli/startup_data.rs b/cli/startup_data.rs
index 29ae4db7d..5ef74de06 100644
--- a/cli/startup_data.rs
+++ b/cli/startup_data.rs
@@ -1,6 +1,6 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
use deno_core::deno_buf;
-use deno_core::{StartupData, StartupScript};
+use deno_core::{Script, StartupData};
pub fn deno_isolate_init() -> StartupData {
if cfg!(feature = "no-snapshot-init") {
@@ -11,7 +11,7 @@ pub fn deno_isolate_init() -> StartupData {
#[cfg(feature = "check-only")]
let source_bytes = vec![];
- StartupData::Script(StartupScript {
+ StartupData::Script(Script {
filename: "gen/bundle/main.js".to_string(),
source: std::str::from_utf8(source_bytes).unwrap().to_string(),
})
@@ -38,7 +38,7 @@ pub fn compiler_isolate_init() -> StartupData {
#[cfg(feature = "check-only")]
let source_bytes = vec![];
- StartupData::Script(StartupScript {
+ StartupData::Script(Script {
filename: "gen/bundle/compiler.js".to_string(),
source: std::str::from_utf8(source_bytes).unwrap().to_string(),
})