| // 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. |
| |
| // Flags: --allow-natives-syntax |
| |
| let {session, contextGroup, Protocol} = InspectorTest.start( |
| 'Checks pause inside blackboxed optimized function call.'); |
| |
| contextGroup.addScript(` |
| function foo() { |
| return 1 + bar(); |
| } |
| //# sourceURL=framework.js |
| `); |
| |
| contextGroup.addScript(` |
| function bar() { |
| return 2; |
| } |
| %PrepareFunctionForOptimization(foo); |
| foo(); |
| foo(); |
| %OptimizeFunctionOnNextCall(foo); |
| foo(); |
| //# sourceURL=test.js |
| `); |
| |
| (async function test(){ |
| Protocol.Debugger.enable(); |
| Protocol.Debugger.setBlackboxPatterns({patterns: ['framework\.js']}); |
| Protocol.Runtime.evaluate({expression: ` |
| inspector.callWithScheduledBreak(foo, 'break', ''); |
| //# sourceURL=expr.js |
| `}); |
| const {params:{callFrames}} = await Protocol.Debugger.oncePaused(); |
| session.logCallFrames(callFrames); |
| InspectorTest.completeTest(); |
| })(); |