| // Copyright 2019 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| const {session, Protocol} = |
| InspectorTest.start('Checks that Debugger.restartFrame works'); |
| |
| session.setupScriptMap(); |
| |
| (async function test() { |
| Protocol.Debugger.enable(); |
| const evalPromise = Protocol.Runtime.evaluate({ |
| expression: 'function foo() { debugger; }; foo();' |
| }); |
| InspectorTest.log('Paused at debugger:'); |
| const { params: { callFrames: before } } = |
| await Protocol.Debugger.oncePaused(); |
| await session.logSourceLocation(before[0].location); |
| InspectorTest.log('Call restart and dump location of restart:'); |
| const { result: { callFrames: restart }} = |
| await Protocol.Debugger.restartFrame({ |
| callFrameId: before[0].callFrameId |
| }); |
| await session.logSourceLocation(restart[0].location); |
| InspectorTest.log('Location after restart:'); |
| Protocol.Debugger.resume(); |
| const { params: { callFrames: after } } = |
| await Protocol.Debugger.oncePaused(); |
| await session.logSourceLocation(after[0].location); |
| Protocol.Debugger.resume(); |
| await evalPromise; |
| InspectorTest.completeTest(); |
| })() |