| // 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. |
| |
| // Embed a user function in the snapshot and step through it. |
| |
| // Flags: --embed 'function c(f, ...args) { return f(...args); }' |
| // Flags: --no-turbo-rewrite-far-jumps |
| |
| let {session, contextGroup, Protocol} = InspectorTest.start('Tests that stepping works on snapshotted function'); |
| session.setupScriptMap(); |
| |
| contextGroup.addScript(` |
| function test() { |
| function f(x) { |
| return x * 2; |
| } |
| debugger; |
| c(f, 2); |
| } |
| //# sourceURL=test.js`); |
| |
| Protocol.Debugger.onPaused(message => { |
| InspectorTest.log("paused"); |
| var frames = message.params.callFrames; |
| session.logSourceLocation(frames[0].location); |
| Protocol.Debugger.stepInto(); |
| }) |
| |
| Protocol.Debugger.enable() |
| .then(() => Protocol.Runtime.evaluate({ expression: 'test()' })) |
| .then(InspectorTest.completeTest); |