// 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; }