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 print('Checks Debugger.getPossibleBreakpoints with ignoreNestedFunctions'); | 5 print('Checks Debugger.getPossibleBreakpoints with ignoreNestedFunctions'); |
6 | 6 |
7 var source = ` | 7 var source = ` |
8 function test() { | 8 function test() { |
9 Array.from([1,2]).map(() => 1).filter(() => true); | 9 Array.from([1,2]).map(() => 1).filter(() => true); |
10 function nested1() { | 10 function nested1() { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 } | 58 } |
59 ]; | 59 ]; |
60 | 60 |
61 function location(lineNumber, columnNumber) { | 61 function location(lineNumber, columnNumber) { |
62 return { lineNumber: lineNumber, columnNumber: columnNumber, scriptId: scriptI
d }; | 62 return { lineNumber: lineNumber, columnNumber: columnNumber, scriptId: scriptI
d }; |
63 } | 63 } |
64 | 64 |
65 function setAllBreakpoints(message) { | 65 function setAllBreakpoints(message) { |
66 var promises = []; | 66 var promises = []; |
67 for (var location of message.result.locations) | 67 for (var location of message.result.locations) |
68 promises.push(Protocol.Debugger.setBreakpoint({ location: location }).then(c
heckBreakpoint)); | 68 promises.push(Protocol.Debugger.setBreakpoint({ location: location.location
}).then(checkBreakpoint)); |
69 return Promise.all(promises); | 69 return Promise.all(promises); |
70 } | 70 } |
71 | 71 |
72 function checkBreakpoint(message) { | 72 function checkBreakpoint(message) { |
73 if (message.error) { | 73 if (message.error) { |
74 InspectorTest.log('FAIL: error in setBreakpoint'); | 74 InspectorTest.log('FAIL: error in setBreakpoint'); |
75 InspectorTest.logMessage(message); | 75 InspectorTest.logMessage(message); |
76 return; | 76 return; |
77 } | 77 } |
78 var id_data = message.result.breakpointId.split(':'); | 78 var id_data = message.result.breakpointId.split(':'); |
79 if (parseInt(id_data[1]) !== message.result.actualLocation.lineNumber || parse
Int(id_data[2]) !== message.result.actualLocation.columnNumber) { | 79 if (parseInt(id_data[1]) !== message.result.actualLocation.lineNumber || parse
Int(id_data[2]) !== message.result.actualLocation.columnNumber) { |
80 InspectorTest.log('FAIL: possible breakpoint was resolved in another locatio
n'); | 80 InspectorTest.log('FAIL: possible breakpoint was resolved in another locatio
n'); |
81 } | 81 } |
82 } | 82 } |
83 | 83 |
84 function dumpAllLocations(message) { | 84 function dumpAllLocations(message) { |
85 if (message.error) { | 85 if (message.error) { |
86 InspectorTest.logMessage(message); | 86 InspectorTest.logMessage(message); |
87 return; | 87 return; |
88 } | 88 } |
89 | 89 |
90 var sourceLines = source.split('\n') | 90 var sourceLines = source.split('\n') |
91 var lineOffsets = Array(sourceLines.length).fill(0); | 91 var lineOffsets = Array(sourceLines.length).fill(0); |
92 for (var location of message.result.locations) { | 92 for (var location of message.result.locations) { |
93 var lineNumber = location.lineNumber; | 93 var lineNumber = location.location.lineNumber; |
94 var columnNumber = location.columnNumber; | 94 var columnNumber = location.location.columnNumber; |
95 var line = sourceLines[lineNumber] || ''; | 95 var line = sourceLines[lineNumber] || ''; |
96 var offset = lineOffsets[lineNumber]; | 96 var offset = lineOffsets[lineNumber]; |
97 line = line.slice(0, columnNumber + offset) + '#' + line.slice(columnNumber
+ offset); | 97 line = line.slice(0, columnNumber + offset) + '#' + line.slice(columnNumber
+ offset); |
98 ++lineOffsets[lineNumber]; | 98 ++lineOffsets[lineNumber]; |
99 sourceLines[lineNumber] = line; | 99 sourceLines[lineNumber] = line; |
100 } | 100 } |
101 InspectorTest.log(sourceLines.join('\n')); | 101 InspectorTest.log(sourceLines.join('\n')); |
102 return message; | 102 return message; |
103 } | 103 } |
104 | 104 |
105 function dumpBreakLocationInSourceAndResume(message) { | 105 function dumpBreakLocationInSourceAndResume(message) { |
106 InspectorTest.logCallFrames([ message.params.callFrames[0] ]); | 106 InspectorTest.logCallFrames([ message.params.callFrames[0] ]); |
107 | 107 |
108 var location = message.params.callFrames[0].location; | 108 var location = message.params.callFrames[0].location; |
109 var sourceLines = source.split('\n') | 109 var sourceLines = source.split('\n') |
110 | 110 |
111 var lineNumber = location.lineNumber | 111 var lineNumber = location.lineNumber |
112 var columnNumber = location.columnNumber; | 112 var columnNumber = location.columnNumber; |
113 | 113 |
114 var line = sourceLines[lineNumber]; | 114 var line = sourceLines[lineNumber]; |
115 line = line.slice(0, columnNumber) + '^' + line.slice(columnNumber); | 115 line = line.slice(0, columnNumber) + '^' + line.slice(columnNumber); |
116 sourceLines[lineNumber] = line; | 116 sourceLines[lineNumber] = line; |
117 InspectorTest.log(sourceLines.join('\n')); | 117 InspectorTest.log(sourceLines.join('\n')); |
118 InspectorTest.log(''); | 118 InspectorTest.log(''); |
119 Protocol.Debugger.resume(); | 119 Protocol.Debugger.resume(); |
120 } | 120 } |
OLD | NEW |