| OLD | NEW |
| (Empty) |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 InspectorTest.evaluateInPage( | |
| 6 `function blackboxedBoo() | |
| 7 { | |
| 8 var a = 42; | |
| 9 var b = foo(); | |
| 10 return a + b; | |
| 11 } | |
| 12 //# sourceURL=blackboxed-script.js`); | |
| 13 | |
| 14 InspectorTest.evaluateInPage( | |
| 15 `function notBlackboxedFoo() | |
| 16 { | |
| 17 var a = 42; | |
| 18 var b = blackboxedBoo(); | |
| 19 return a + b; | |
| 20 } | |
| 21 | |
| 22 function blackboxedFoo() | |
| 23 { | |
| 24 var a = 42; | |
| 25 var b = notBlackboxedFoo(); | |
| 26 return a + b; | |
| 27 } | |
| 28 | |
| 29 function notBlackboxedBoo() | |
| 30 { | |
| 31 var a = 42; | |
| 32 var b = blackboxedFoo(); | |
| 33 return a + b; | |
| 34 } | |
| 35 //# sourceURL=mixed-source.js`); | |
| 36 | |
| 37 InspectorTest.evaluateInPage( | |
| 38 `function testFunction() | |
| 39 { | |
| 40 notBlackboxedBoo(); // for setup ranges and stepOut | |
| 41 notBlackboxedBoo(); // for stepIn | |
| 42 } | |
| 43 | |
| 44 function foo() | |
| 45 { | |
| 46 debugger; | |
| 47 return 239; | |
| 48 }`); | |
| 49 | |
| 50 InspectorTest.eventHandler["Debugger.paused"] = setBlackboxedScriptRanges; | |
| 51 InspectorTest.sendCommandOrDie("Debugger.enable", {}, callTestFunction); | |
| 52 | |
| 53 function callTestFunction(response) | |
| 54 { | |
| 55 InspectorTest.sendCommand("Runtime.evaluate", { expression: "setTimeout(testFu
nction, 0);"}); | |
| 56 } | |
| 57 | |
| 58 function setBlackboxedScriptRanges(response) | |
| 59 { | |
| 60 var callFrames = response.params.callFrames; | |
| 61 printCallFrames(callFrames); | |
| 62 InspectorTest.sendCommand("Debugger.setBlackboxedRanges", { | |
| 63 scriptId: callFrames[1].location.scriptId, | |
| 64 positions: [ { lineNumber: 0, columnNumber: 0 } ] // blackbox ranges for bla
ckboxed.js | |
| 65 }, setIncorrectRanges.bind(null, callFrames[2].location.scriptId)); | |
| 66 } | |
| 67 | |
| 68 var incorrectPositions = [ | |
| 69 [ { lineNumber: 0, columnNumber: 0 }, { lineNumber: 0, columnNumber: 0 } ], | |
| 70 [ { lineNumber: 0, columnNumber: 1 }, { lineNumber: 0, columnNumber: 0 } ], | |
| 71 [ { lineNumber: 0, columnNumber: -1 } ], | |
| 72 ]; | |
| 73 | |
| 74 function setIncorrectRanges(scriptId, response) | |
| 75 { | |
| 76 if (response.error) | |
| 77 InspectorTest.log(response.error.message); | |
| 78 var positions = incorrectPositions.shift(); | |
| 79 if (!positions) { | |
| 80 setMixedSourceRanges(scriptId); | |
| 81 return; | |
| 82 } | |
| 83 InspectorTest.log("Try to set positions: " + JSON.stringify(positions)); | |
| 84 InspectorTest.sendCommand("Debugger.setBlackboxedRanges", { | |
| 85 scriptId: scriptId, | |
| 86 positions: positions | |
| 87 }, setIncorrectRanges.bind(null, scriptId)); | |
| 88 } | |
| 89 | |
| 90 function setMixedSourceRanges(scriptId) | |
| 91 { | |
| 92 InspectorTest.eventHandler["Debugger.paused"] = runAction; | |
| 93 InspectorTest.sendCommandOrDie("Debugger.setBlackboxedRanges", { | |
| 94 scriptId: scriptId, | |
| 95 positions: [ { lineNumber: 8, columnNumber: 0 }, { lineNumber: 15, columnNum
ber: 0 } ] // blackbox ranges for mixed.js | |
| 96 }, runAction); | |
| 97 } | |
| 98 | |
| 99 var actions = [ "stepOut", "print", "stepOut", "print", "stepOut", "print", | |
| 100 "stepInto", "print", "stepOver", "stepInto", "print", "stepOver", "stepInto"
, "print", | |
| 101 "stepOver", "stepInto", "print" ]; | |
| 102 | |
| 103 function runAction(response) | |
| 104 { | |
| 105 var action = actions.shift(); | |
| 106 if (!action) | |
| 107 InspectorTest.completeTest(); | |
| 108 | |
| 109 if (action === "print") { | |
| 110 printCallFrames(response.params.callFrames); | |
| 111 runAction({}); | |
| 112 } else { | |
| 113 InspectorTest.log("action: " + action); | |
| 114 InspectorTest.sendCommandOrDie("Debugger." + action, {}); | |
| 115 } | |
| 116 } | |
| 117 | |
| 118 function printCallFrames(callFrames) | |
| 119 { | |
| 120 var topCallFrame = callFrames[0]; | |
| 121 if (topCallFrame.functionName.startsWith("blackboxed")) | |
| 122 InspectorTest.log("FAIL: blackboxed function in top call frame"); | |
| 123 for (var callFrame of callFrames) | |
| 124 InspectorTest.log(callFrame.functionName + ": " + callFrame.location.lineNum
ber + ":" + callFrame.location.columnNumber); | |
| 125 InspectorTest.log(""); | |
| 126 } | |
| OLD | NEW |