ec41a70e38
Doc: https://bit.ly/revive-restart-frame Context: https://crrev.com/c/3582395 (whole feature) This CL adds a new optional flag `canBeRestarted` to every call frame in Debugger.paused events. As the name suggests, the flag indicates whether we can restart a particular frame through Debugger.restartFrame once implemented. We are not able to safely restart all frames: * We don't support WASM frames * We don't support frames where resumable functions (async fns, generators) and embedder C++ frames are between the top-most frame and the to-be-restarted frame. Note that from a CDP perspective the flag doesn't actually guarantee a successful restart. CDP clients can issue CDP commands between the Debugger.paused event and before a user decides to restart a frame, which can potentially mess with the stack. The `canBeRestarted` flag tests are folded into the Debugger.restartFrame tests. As the feature is not yet fully implemented we short-circuit most of the tests for now and only run them up until the first Debugger.restartFrame call fails (except "fails-for-resumables.js"). This means the tests exercise the `canBeRestarted` flag, but not the restarting functionality itself. R=bmeurer@chromium.org, kimanh@chromium.org Bug: chromium:1303521 Change-Id: I01ab46dc3557ab8383960969fbe03e00604cc5e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596160 Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/main@{#80046}
145 lines
3.7 KiB
Plaintext
145 lines
3.7 KiB
Plaintext
Test private class fields in scopes
|
|
|
|
Running test: testScopesPaused
|
|
[
|
|
[0] : {
|
|
callFrameId : <callFrameId>
|
|
canBeRestarted : true
|
|
functionLocation : {
|
|
columnNumber : 16
|
|
lineNumber : 4
|
|
scriptId : <scriptId>
|
|
}
|
|
functionName : A
|
|
location : {
|
|
columnNumber : 6
|
|
lineNumber : 5
|
|
scriptId : <scriptId>
|
|
}
|
|
scopeChain : [
|
|
[0] : {
|
|
endLocation : {
|
|
columnNumber : 5
|
|
lineNumber : 6
|
|
scriptId : <scriptId>
|
|
}
|
|
name : A
|
|
object : {
|
|
className : Object
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
startLocation : {
|
|
columnNumber : 16
|
|
lineNumber : 4
|
|
scriptId : <scriptId>
|
|
}
|
|
type : local
|
|
}
|
|
[1] : {
|
|
object : {
|
|
className : global
|
|
description : global
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
type : global
|
|
}
|
|
]
|
|
this : {
|
|
className : A
|
|
description : A
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
url :
|
|
}
|
|
[1] : {
|
|
callFrameId : <callFrameId>
|
|
canBeRestarted : true
|
|
functionLocation : {
|
|
columnNumber : 12
|
|
lineNumber : 1
|
|
scriptId : <scriptId>
|
|
}
|
|
functionName : run
|
|
location : {
|
|
columnNumber : 2
|
|
lineNumber : 8
|
|
scriptId : <scriptId>
|
|
}
|
|
scopeChain : [
|
|
[0] : {
|
|
endLocation : {
|
|
columnNumber : 1
|
|
lineNumber : 9
|
|
scriptId : <scriptId>
|
|
}
|
|
name : run
|
|
object : {
|
|
className : Object
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
startLocation : {
|
|
columnNumber : 12
|
|
lineNumber : 1
|
|
scriptId : <scriptId>
|
|
}
|
|
type : local
|
|
}
|
|
[1] : {
|
|
object : {
|
|
className : global
|
|
description : global
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
type : global
|
|
}
|
|
]
|
|
this : {
|
|
className : global
|
|
description : global
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
url :
|
|
}
|
|
[2] : {
|
|
callFrameId : <callFrameId>
|
|
canBeRestarted : true
|
|
functionLocation : {
|
|
columnNumber : 0
|
|
lineNumber : 0
|
|
scriptId : <scriptId>
|
|
}
|
|
functionName :
|
|
location : {
|
|
columnNumber : 0
|
|
lineNumber : 0
|
|
scriptId : <scriptId>
|
|
}
|
|
scopeChain : [
|
|
[0] : {
|
|
object : {
|
|
className : global
|
|
description : global
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
type : global
|
|
}
|
|
]
|
|
this : {
|
|
className : global
|
|
description : global
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
url :
|
|
}
|
|
]
|