diff options
Diffstat (limited to 'cli/isolate.rs')
-rw-r--r-- | cli/isolate.rs | 11 |
1 files changed, 10 insertions, 1 deletions
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)?; |