// Copyright 2018 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. let {session, contextGroup, Protocol} = InspectorTest.start('Set breakpoint before function call.'); contextGroup.addScript(` function static() { console.log("> static"); // Break } function install() { eval("this.dynamic = function dynamic() { \\n" + " console.log(\\"> dynamic\\"); // Break\\n" + "}\\n" + "//# sourceURL=dynamicScript"); } install(); //# sourceURL=staticScript`); (async function test() { session.setupScriptMap(); Protocol.Debugger.enable(); await session.logSourceLocation((await Protocol.Debugger.setBreakpointByUrl({ url: 'dynamicScript', lineNumber: 1 })).result.locations[0]); await session.logSourceLocation((await Protocol.Debugger.setBreakpointByUrl({ url: 'staticScript', lineNumber: 2 })).result.locations[0]); Protocol.Runtime.evaluate({ expression: 'dynamic(); static();' }); { const { params:{ callFrames:[{location}] } } = await Protocol.Debugger.oncePaused(); InspectorTest.log('Paused at:'); await session.logSourceLocation(location); } { InspectorTest.log('Resume..'); Protocol.Debugger.resume(); const { params:{ callFrames:[{location}] } } = await Protocol.Debugger.oncePaused(); InspectorTest.log('Paused at:'); await session.logSourceLocation(location); } InspectorTest.completeTest(); })();