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