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