| 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 |