diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2022-04-15 15:08:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-15 16:08:09 +0200 |
commit | 8b31fc23cd80de9baa62535e95367da7a21c9cfd (patch) | |
tree | 994748bd06ed5b4953929392107b6beaa1c1c337 /cli/main.rs | |
parent | b4af648c1515a8e79d7a5d1b14d8a4ba9d966a72 (diff) |
refactor: Move source map lookups to core (#14274)
The following transformations gradually faced by "JsError" have all been
moved up front to "JsError::from_v8_exception()":
- finding the first non-"deno:" source line;
- moving "JsError::script_resource_name" etc. into the first error stack
in case of syntax errors;
- source mapping "JsError::script_resource_name" etc. when wrapping
the error even though the frame locations are source mapped earlier;
- removing "JsError::{script_resource_name,line_number,start_column,end_column}"
entirely in favour of "js_error.frames.get(0)".
We also no longer pass a js-side callback to "core/02_error.js" from cli.
I avoided doing this on previous occasions because the source map lookups
were in an awkward place.
Diffstat (limited to 'cli/main.rs')
-rw-r--r-- | cli/main.rs | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/cli/main.rs b/cli/main.rs index 689d5c634..320e4e8c3 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -29,7 +29,6 @@ mod module_loader; mod ops; mod proc_state; mod resolver; -mod source_maps; mod standalone; mod text_encoding; mod tools; @@ -71,7 +70,6 @@ use crate::module_loader::CliModuleLoader; use crate::proc_state::ProcState; use crate::resolver::ImportMapResolver; use crate::resolver::JsxResolver; -use crate::source_maps::apply_source_map; use deno_ast::MediaType; use deno_core::error::generic_error; use deno_core::error::AnyError; @@ -127,13 +125,6 @@ fn create_web_worker_preload_module_callback( fn create_web_worker_callback(ps: ProcState) -> Arc<CreateWebWorkerCb> { Arc::new(move |args| { - let global_state_ = ps.clone(); - let js_error_create_fn = Rc::new(move |core_js_error| { - let source_mapped_error = - apply_source_map(&core_js_error, global_state_.clone()); - PrettyJsError::create(source_mapped_error) - }); - let maybe_inspector_server = ps.maybe_inspector_server.clone(); let module_loader = CliModuleLoader::new_for_worker( @@ -149,7 +140,6 @@ fn create_web_worker_callback(ps: ProcState) -> Arc<CreateWebWorkerCb> { let options = WebWorkerOptions { bootstrap: BootstrapOptions { args: ps.flags.argv.clone(), - apply_source_maps: true, cpu_count: std::thread::available_parallelism() .map(|p| p.get()) .unwrap_or(1), @@ -176,7 +166,8 @@ fn create_web_worker_callback(ps: ProcState) -> Arc<CreateWebWorkerCb> { module_loader, create_web_worker_cb, preload_module_cb, - js_error_create_fn: Some(js_error_create_fn), + source_map_getter: Some(Box::new(ps.clone())), + js_error_create_fn: Some(Rc::new(PrettyJsError::create)), use_deno_namespace: args.use_deno_namespace, worker_type: args.worker_type, maybe_inspector_server, @@ -206,14 +197,6 @@ pub fn create_main_worker( ) -> MainWorker { let module_loader = CliModuleLoader::new(ps.clone()); - let global_state_ = ps.clone(); - - let js_error_create_fn = Rc::new(move |core_js_error| { - let source_mapped_error = - apply_source_map(&core_js_error, global_state_.clone()); - PrettyJsError::create(source_mapped_error) - }); - let maybe_inspector_server = ps.maybe_inspector_server.clone(); let should_break_on_first_statement = ps.flags.inspect_brk.is_some(); @@ -252,7 +235,6 @@ pub fn create_main_worker( let options = WorkerOptions { bootstrap: BootstrapOptions { - apply_source_maps: true, args: ps.flags.argv.clone(), cpu_count: std::thread::available_parallelism() .map(|p| p.get()) @@ -274,7 +256,8 @@ pub fn create_main_worker( root_cert_store: ps.root_cert_store.clone(), user_agent: version::get_user_agent(), seed: ps.flags.seed, - js_error_create_fn: Some(js_error_create_fn), + source_map_getter: Some(Box::new(ps.clone())), + js_error_create_fn: Some(Rc::new(PrettyJsError::create)), create_web_worker_cb, web_worker_preload_module_cb, maybe_inspector_server, @@ -1168,7 +1151,7 @@ async fn run_command( run_flags: RunFlags, ) -> Result<i32, AnyError> { if !flags.has_check_flag && flags.type_check_mode == TypeCheckMode::All { - info!("{} In future releases `deno run` will not automatically type check without the --check flag. + info!("{} In future releases `deno run` will not automatically type check without the --check flag. To opt into this new behavior now, specify DENO_FUTURE_CHECK=1.", colors::yellow("Warning")); } |