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