| // Copyright 2017 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. | |
| InspectorTest.log('Checks stepping with more then one context group.'); | |
| var contextGroup1 = new InspectorTest.ContextGroup(); | |
| var session1 = contextGroup1.connect(); | |
| session1.setupScriptMap(); | |
| let contextGroup2 = new InspectorTest.ContextGroup(); | |
| let session2 = contextGroup2.connect(); | |
| session2.setupScriptMap(); | |
| (async function test() { | |
| await session1.Protocol.Debugger.enable(); | |
| await session2.Protocol.Debugger.enable({}); | |
| session1.Protocol.Runtime.evaluate({expression: 'debugger'}); | |
| session2.Protocol.Runtime.evaluate({expression: 'setTimeout(() => { debugger }, 0)'}); | |
| session1.Protocol.Runtime.evaluate({expression: 'setTimeout(() => 42, 0)'}); | |
| await waitPauseAndDumpLocation(session1); | |
| session1.Protocol.Debugger.stepOver(); | |
| await session1.Protocol.Debugger.oncePaused(); | |
| session1.Protocol.Debugger.stepOver(); | |
| await waitPauseAndDumpLocation(session1); | |
| await session2.Protocol.Debugger.disable({}); | |
| await session1.Protocol.Debugger.disable(); | |
| InspectorTest.completeTest(); | |
| })(); | |
| async function waitPauseAndDumpLocation(session) { | |
| var message = await session.Protocol.Debugger.oncePaused(); | |
| InspectorTest.log('paused at:'); | |
| await session.logSourceLocation(message.params.callFrames[0].location); | |
| return message; | |
| } |