| Index: test/inspector/debugger/framework-precise-ranges.js
|
| diff --git a/test/inspector/debugger/framework-precise-ranges.js b/test/inspector/debugger/framework-precise-ranges.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cae0747b690ad7d13474d2fc9af4d69a702fde0b
|
| --- /dev/null
|
| +++ b/test/inspector/debugger/framework-precise-ranges.js
|
| @@ -0,0 +1,78 @@
|
| +// 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.
|
| +
|
| +print('Checks framework debugging with blackboxed ranges.');
|
| +
|
| +InspectorTest.addScript(
|
| + `
|
| +function foo() {
|
| + return boo();
|
| +}
|
| +function boo() {
|
| + return 42;
|
| +}
|
| +function testFunction() {
|
| + foo();
|
| +}
|
| +//# sourceURL=test.js`,
|
| + 7, 26);
|
| +
|
| +InspectorTest.setupScriptMap();
|
| +Protocol.Debugger.onPaused(message => {
|
| + InspectorTest.logCallFrames(message.params.callFrames);
|
| + InspectorTest.log('');
|
| + Protocol.Debugger.stepInto();
|
| +});
|
| +var scriptId;
|
| +Protocol.Debugger.onScriptParsed(message => {
|
| + if (message.params.url === 'test.js') {
|
| + scriptId = message.params.scriptId;
|
| + }
|
| +});
|
| +
|
| +Protocol.Debugger.enable()
|
| + .then(() => Protocol.Debugger.setBlackboxPatterns({patterns: ['expr\.js']}))
|
| + .then(() => InspectorTest.runTestSuite(testSuite));
|
| +
|
| +var testSuite = [
|
| + function testEntireScript(next) {
|
| + testPositions([position(0, 0)]).then(next);
|
| + },
|
| + function testFooNotBlackboxed(next) {
|
| + testPositions([position(11, 0)]).then(next);
|
| + },
|
| + function testFooBlackboxed(next) {
|
| + testPositions([position(8, 0), position(10, 3)]).then(next);
|
| + },
|
| + function testBooPartiallyBlackboxed1(next) {
|
| + // first line is not blackboxed, second and third - blackboxed.
|
| + testPositions([position(12, 0)]).then(next);
|
| + },
|
| + function testBooPartiallyBlackboxed2(next) {
|
| + // first line is blackboxed, second - not, third - blackboxed.
|
| + testPositions([
|
| + position(11, 0), position(12, 0), position(13, 0)
|
| + ]).then(next);
|
| + },
|
| + function testBooPartiallyBlackboxed3(next) {
|
| + // first line is blackboxed, second and third - not.
|
| + testPositions([
|
| + position(11, 0), position(12, 0), position(14, 0)
|
| + ]).then(next);
|
| + }
|
| +];
|
| +
|
| +function testPositions(positions) {
|
| + schedulePauseOnNextStatement('', '');
|
| + return Protocol.Debugger
|
| + .setBlackboxedRanges({scriptId: scriptId, positions: positions})
|
| + .then(InspectorTest.logMessage)
|
| + .then(
|
| + () => Protocol.Runtime.evaluate(
|
| + {expression: 'testFunction()//# sourceURL=expr.js'}));
|
| +}
|
| +
|
| +function position(line, column) {
|
| + return {lineNumber: line, columnNumber: column};
|
| +}
|
|
|