v8/test/inspector/runtime/es6-module-expected.txt
Rob Paveza 5e1f856d18 Add support for source hashing in stack traces.
This change adds support for computing SHA-256 hashes in the stack
output of errors by adding a function to the prototype of the
`CallSite` object, passed to `Error.prepareStackTrace`. Additionally,
it updates the `hash` property from `Debugger.scriptParsed` and
`Debugger.scriptFailedToParse` to be SHA-256 instead of the
proprietary hash it is today.

It is intended to be an advancement in indexing source maps to
support improved tooling, especially for post-hoc or in-production
diagnostics scenarios.

The explainer can be found here:
https://docs.google.com/document/d/13hNeeLC2Ve_FVieNndZUUUP15x2O4ltvjnGWwOsMlrU/edit?usp=sharing

Change-Id: Ifbbed4b22c8256e74e6d79974d2dd1e444143eda
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3229957
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Auto-Submit: Robert Paveza <Rob.Paveza@microsoft.com>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80320}
2022-05-03 00:57:46 +00:00

265 lines
7.4 KiB
Plaintext

Checks basic ES6 modules support.
{
method : Debugger.scriptParsed
params : {
embedderName : module1
endColumn : 17
endLine : 5
executionContextId : <executionContextId>
hasSourceURL : false
hash : 691860c2718c7dc1093d2933a3a71fe62c25948d592f2cadeee30f2f130c0a00
isLiveEdit : false
isModule : true
length : 83
scriptId : <scriptId>
scriptLanguage : JavaScript
sourceMapURL :
startColumn : 0
startLine : 0
url : module1
}
}
{
method : Debugger.scriptParsed
params : {
embedderName : module2
endColumn : 17
endLine : 5
executionContextId : <executionContextId>
hasSourceURL : false
hash : 406cbebea0b200671431320fca58b34225270aa55c47756656a50ef999b24825
isLiveEdit : false
isModule : true
length : 84
scriptId : <scriptId>
scriptLanguage : JavaScript
sourceMapURL :
startColumn : 0
startLine : 0
url : module2
}
}
{
method : Debugger.scriptParsed
params : {
embedderName : module3
endColumn : 0
endLine : 11
executionContextId : <executionContextId>
hasSourceURL : false
hash : d719e141b8fa8c07426816ce46ddf65ed0474667b2588300d3e9ec491017e989
isLiveEdit : false
isModule : true
length : 286
scriptId : <scriptId>
scriptLanguage : JavaScript
sourceMapURL :
startColumn : 0
startLine : 0
url : module3
}
}
console.log(module1)
foo (module1:2:10)
(anonymous) (module3:5:12)
console.log(42)
(anonymous) (module3:5:8)
console.log(module2)
foo (module2:2:10)
(anonymous) (module3:6:12)
console.log(239)
(anonymous) (module3:6:8)
{
method : Debugger.paused
params : {
callFrames : [
[0] : {
callFrameId : <callFrameId>
canBeRestarted : false
functionLocation : {
columnNumber : 0
lineNumber : 0
scriptId : <scriptId>
}
functionName :
location : {
columnNumber : 0
lineNumber : 9
scriptId : <scriptId>
}
scopeChain : [
[0] : {
endLocation : {
columnNumber : 0
lineNumber : 11
scriptId : <scriptId>
}
object : {
className : Object
description : Object
objectId : <objectId>
type : object
}
startLocation : {
columnNumber : 0
lineNumber : 0
scriptId : <scriptId>
}
type : module
}
[1] : {
object : {
className : global
description : global
objectId : <objectId>
type : object
}
type : global
}
]
this : {
type : undefined
}
url :
}
]
hitBreakpoints : [
]
reason : other
}
}
{
id : <messageId>
result : {
result : [
[0] : {
configurable : true
enumerable : true
isOwn : true
name : foo1
value : {
className : Function
description : function foo() { console.log('module1'); return 42; }
objectId : <objectId>
type : function
}
writable : true
}
[1] : {
configurable : true
enumerable : true
isOwn : true
name : foo2
value : {
className : Function
description : function foo() { console.log('module2'); return 239; }
objectId : <objectId>
type : function
}
writable : true
}
[2] : {
configurable : true
enumerable : true
isOwn : true
name : foo3
value : {
className : Module
description : Module
objectId : <objectId>
type : object
}
writable : true
}
[3] : {
configurable : true
enumerable : true
isOwn : true
name : a1
value : {
description : 1
type : number
value : 1
}
writable : true
}
[4] : {
configurable : true
enumerable : true
isOwn : true
name : a2
value : {
description : 2
type : number
value : 2
}
writable : true
}
]
}
}
{
method : Debugger.scriptFailedToParse
params : {
embedderName : module4
endColumn : 1
endLine : 0
executionContextId : <executionContextId>
hasSourceURL : false
hash : d10b36aa74a59bcf4a88185837f658afaf3646eff2bb16c3928d0e9335e945d2
isModule : true
length : 1
scriptId : <scriptId>
scriptLanguage : JavaScript
sourceMapURL :
startColumn : 0
startLine : 0
url : module4
}
}
{
method : Runtime.exceptionThrown
params : {
exceptionDetails : {
columnNumber : 0
exception : {
className : SyntaxError
description : SyntaxError: Unexpected token '}'
objectId : <objectId>
preview : {
description : SyntaxError: Unexpected token '}'
overflow : false
properties : [
[0] : {
name : stack
type : string
value : SyntaxError: Unexpected token '}'
}
[1] : {
name : message
type : string
value : Unexpected token '}'
}
]
subtype : error
type : object
}
subtype : error
type : object
}
exceptionId : <exceptionId>
executionContextId : <executionContextId>
lineNumber : 0
scriptId : <scriptId>
text : Uncaught SyntaxError: Unexpected token '}'
url : module4
}
timestamp : <timestamp>
}
}
queryObjects returns Array(N)