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.
This commit is contained in:
Nayeem Rahman 2022-04-15 15:08:09 +01:00 committed by GitHub
parent b4af648c15
commit 8b31fc23cd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 290 additions and 478 deletions

View file

@ -222,10 +222,6 @@ delete Object.prototype.__proto__;
build.setBuildInfo(runtimeOptions.target);
util.setLogDebug(runtimeOptions.debugFlag, source);
const prepareStackTrace = core.createPrepareStackTrace(
// TODO(bartlomieju): a very crude way to disable
// source mapping of errors. This condition is true
// only for compiled standalone binaries.
runtimeOptions.applySourceMaps ? errorStack.opApplySourceMap : undefined,
errorStack.opFormatFileName,
);
// deno-lint-ignore prefer-primordials