summaryrefslogtreecommitdiff
path: root/cli/worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/worker.rs')
-rw-r--r--cli/worker.rs32
1 files changed, 22 insertions, 10 deletions
diff --git a/cli/worker.rs b/cli/worker.rs
index 68f0a2210..3068ab1f7 100644
--- a/cli/worker.rs
+++ b/cli/worker.rs
@@ -15,6 +15,7 @@ use deno_core::error::AnyError;
use deno_core::futures::future::poll_fn;
use deno_core::futures::future::FutureExt;
use deno_core::url::Url;
+use deno_core::JsErrorCreateFn;
use deno_core::JsRuntime;
use deno_core::ModuleId;
use deno_core::ModuleLoader;
@@ -48,7 +49,21 @@ impl MainWorker {
let module_loader =
CliModuleLoader::new(program_state.maybe_import_map.clone());
- Self::from_options(program_state, main_module, permissions, module_loader)
+ let global_state_ = program_state.clone();
+
+ let js_error_create_fn = Box::new(move |core_js_error| {
+ let source_mapped_error =
+ apply_source_map(&core_js_error, global_state_.clone());
+ PrettyJsError::create(source_mapped_error)
+ });
+
+ Self::from_options(
+ program_state,
+ main_module,
+ permissions,
+ module_loader,
+ Some(js_error_create_fn),
+ )
}
pub fn from_options(
@@ -56,19 +71,16 @@ impl MainWorker {
main_module: ModuleSpecifier,
permissions: Permissions,
module_loader: Rc<dyn ModuleLoader>,
+ js_error_create_fn: Option<Box<JsErrorCreateFn>>,
) -> Self {
- let global_state_ = program_state.clone();
-
- let js_error_create_fn = Box::new(move |core_js_error| {
- let source_mapped_error =
- apply_source_map(&core_js_error, global_state_.clone());
- PrettyJsError::create(source_mapped_error)
- });
+ // TODO(bartlomieju): this is hacky way to not apply source
+ // maps in JS
+ let apply_source_maps = js_error_create_fn.is_some();
let mut js_runtime = JsRuntime::new(RuntimeOptions {
module_loader: Some(module_loader),
startup_snapshot: Some(js::deno_isolate_init()),
- js_error_create_fn: Some(js_error_create_fn),
+ js_error_create_fn,
get_error_class_fn: Some(&crate::errors::get_error_class_name),
..Default::default()
});
@@ -105,7 +117,7 @@ impl MainWorker {
op_state.put::<Permissions>(permissions);
}
- ops::runtime::init(js_runtime, main_module);
+ ops::runtime::init(js_runtime, main_module, apply_source_maps);
ops::fetch::init(js_runtime, program_state.flags.ca_file.as_deref());
ops::timers::init(js_runtime);
ops::worker_host::init(js_runtime, None);