| // 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. |
| |
| let {session, contextGroup, Protocol} = InspectorTest.start('Checks possible break locations.'); |
| |
| session.setupScriptMap(); |
| Protocol.Debugger.onPaused(message => { |
| var frames = message.params.callFrames; |
| if (frames.length === 1) { |
| Protocol.Debugger.stepInto(); |
| return; |
| } |
| var scriptId = frames[0].location.scriptId; |
| InspectorTest.log('break at:'); |
| session.logSourceLocation(frames[0].location) |
| .then(() => Protocol.Debugger.stepInto()); |
| }); |
| |
| contextGroup.loadScript('test/inspector/debugger/resources/break-locations.js'); |
| |
| Protocol.Debugger.enable(); |
| Protocol.Runtime.evaluate({ expression: 'Object.keys(this).filter(name => name.indexOf(\'test\') === 0)', returnByValue: true }) |
| .then(runTests); |
| |
| function runTests(message) { |
| var tests = message.result.result.value; |
| InspectorTest.runTestSuite(tests.map(test => eval(`(function ${test}(next) { |
| Protocol.Runtime.evaluate({ expression: 'debugger; ${test}()', awaitPromise: ${test.indexOf('testPromise') === 0}}) |
| .then(next); |
| })`))); |
| } |