diff options
Diffstat (limited to 'cli/ops.rs')
-rw-r--r-- | cli/ops.rs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/cli/ops.rs b/cli/ops.rs index d75e7bd20..d5da90567 100644 --- a/cli/ops.rs +++ b/cli/ops.rs @@ -2095,9 +2095,21 @@ fn op_create_worker( let parent_state = state.clone(); + let mut module_specifier = ModuleSpecifier::resolve_url_or_path(specifier)?; + + let mut child_argv = parent_state.argv.clone(); + + if !has_source_code { + if let Some(module) = state.main_module() { + module_specifier = + ModuleSpecifier::resolve_import(specifier, &module.to_string())?; + child_argv[1] = module_specifier.to_string(); + } + } + let child_state = ThreadSafeState::new( parent_state.flags.clone(), - parent_state.argv.clone(), + child_argv, op_selector_std, parent_state.progress.clone(), include_deno_namespace, @@ -2134,8 +2146,6 @@ fn op_create_worker( return ok_buf(exec_cb(worker)); } - let module_specifier = ModuleSpecifier::resolve_url_or_path(specifier)?; - let op = worker .execute_mod_async(&module_specifier, false) .and_then(move |()| Ok(exec_cb(worker))); |