Chromium Code Reviews| 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 = {}; | 5 InspectorTest = {}; |
| 6 InspectorTest._dispatchTable = new Map(); | 6 InspectorTest._dispatchTable = new Map(); |
| 7 InspectorTest._requestId = 0; | 7 InspectorTest._requestId = 0; |
| 8 InspectorTest._dumpInspectorProtocolMessages = false; | 8 InspectorTest._dumpInspectorProtocolMessages = false; |
| 9 InspectorTest._eventHandler = {}; | 9 InspectorTest._eventHandler = {}; |
| 10 | 10 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 131 { | 131 { |
| 132 for (var frame of callFrames) { | 132 for (var frame of callFrames) { |
| 133 var functionName = frame.functionName || '(anonymous)'; | 133 var functionName = frame.functionName || '(anonymous)'; |
| 134 var url = frame.url ? frame.url : InspectorTest._scriptMap.get(frame.locatio n.scriptId).url; | 134 var url = frame.url ? frame.url : InspectorTest._scriptMap.get(frame.locatio n.scriptId).url; |
| 135 var lineNumber = frame.location ? frame.location.lineNumber : frame.lineNumb er; | 135 var lineNumber = frame.location ? frame.location.lineNumber : frame.lineNumb er; |
| 136 var columnNumber = frame.location ? frame.location.columnNumber : frame.colu mnNumber; | 136 var columnNumber = frame.location ? frame.location.columnNumber : frame.colu mnNumber; |
| 137 InspectorTest.log(`${functionName} (${url}:${lineNumber}:${columnNumber})`); | 137 InspectorTest.log(`${functionName} (${url}:${lineNumber}:${columnNumber})`); |
| 138 } | 138 } |
| 139 } | 139 } |
| 140 | 140 |
| 141 InspectorTest.logCallFrameSourceLocation = function(callFrame) | 141 InspectorTest.logSourceLocation = function(location) |
| 142 { | 142 { |
| 143 var scriptId = callFrame.location.scriptId; | 143 var scriptId = location.scriptId; |
| 144 if (!InspectorTest._scriptMap || !InspectorTest._scriptMap.has(scriptId)) { | 144 if (!InspectorTest._scriptMap || !InspectorTest._scriptMap.has(scriptId)) { |
| 145 InspectorTest.log("InspectorTest.setupScriptMap should be called before Prot ocol.Debugger.enable."); | 145 InspectorTest.log("InspectorTest.setupScriptMap should be called before Prot ocol.Debugger.enable."); |
| 146 InspectorTest.completeTest(); | 146 InspectorTest.completeTest(); |
| 147 } | 147 } |
| 148 var script = InspectorTest._scriptMap.get(scriptId); | 148 var script = InspectorTest._scriptMap.get(scriptId); |
| 149 if (!script.scriptSource) { | 149 if (!script.scriptSource) { |
| 150 return Protocol.Debugger.getScriptSource({ scriptId }) | 150 return Protocol.Debugger.getScriptSource({ scriptId }) |
| 151 .then(message => script.scriptSource = message.result.scriptSource) | 151 .then(message => script.scriptSource = message.result.scriptSource) |
| 152 .then(dumpSourceWithLocation); | 152 .then(dumpSourceWithLocation); |
| 153 } | 153 } |
| 154 return Promise.resolve().then(dumpSourceWithLocation); | 154 return Promise.resolve().then(dumpSourceWithLocation); |
| 155 | 155 |
| 156 function dumpSourceWithLocation() { | 156 function dumpSourceWithLocation() { |
| 157 var location = callFrame.location; | |
| 158 var lines = script.scriptSource.split('\n'); | 157 var lines = script.scriptSource.split('\n'); |
| 159 var line = lines[location.lineNumber]; | 158 var line = lines[location.lineNumber]; |
| 160 line = line.slice(0, location.columnNumber) + '#' + (line.slice(location.col umnNumber) || ''); | 159 line = line.slice(0, location.columnNumber) + '#' + (line.slice(location.col umnNumber) || ''); |
| 161 lines[location.lineNumber] = line; | 160 lines[location.lineNumber] = line; |
| 162 InspectorTest.log(lines.slice(Math.max(location.lineNumber - 1, 0), location .lineNumber + 2).join('\n')); | 161 InspectorTest.log(lines.slice(Math.max(location.lineNumber - 1, 0), location .lineNumber + 2).join('\n')); |
| 163 InspectorTest.log(''); | 162 InspectorTest.log(''); |
| 164 } | 163 } |
| 165 } | 164 } |
| 166 | 165 |
| 166 InspectorTest.logSourceLocations = function(locations) { | |
| 167 if (locations.length == 0) return Promise.resolve(); | |
|
kozy
2017/03/02 21:31:10
We recently allow async-await syntax in tests, so:
| |
| 168 return InspectorTest.logSourceLocation(locations[0]) | |
| 169 .then(() => InspectorTest.logSourceLocations(locations.splice(1))); | |
| 170 } | |
| 171 | |
| 167 InspectorTest.logAsyncStackTrace = function(asyncStackTrace) | 172 InspectorTest.logAsyncStackTrace = function(asyncStackTrace) |
| 168 { | 173 { |
| 169 while (asyncStackTrace) { | 174 while (asyncStackTrace) { |
| 170 if (asyncStackTrace.promiseCreationFrame) { | 175 if (asyncStackTrace.promiseCreationFrame) { |
| 171 var frame = asyncStackTrace.promiseCreationFrame; | 176 var frame = asyncStackTrace.promiseCreationFrame; |
| 172 InspectorTest.log(`-- ${asyncStackTrace.description} (${frame.url | 177 InspectorTest.log(`-- ${asyncStackTrace.description} (${frame.url |
| 173 }:${frame.lineNumber}:${frame.columnNumber})--`); | 178 }:${frame.lineNumber}:${frame.columnNumber})--`); |
| 174 } else { | 179 } else { |
| 175 InspectorTest.log(`-- ${asyncStackTrace.description} --`); | 180 InspectorTest.log(`-- ${asyncStackTrace.description} --`); |
| 176 } | 181 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 288 } | 293 } |
| 289 } catch (e) { | 294 } catch (e) { |
| 290 InspectorTest.log("Exception when dispatching message: " + e + "\n" + e.stac k + "\n message = " + JSON.stringify(messageObject, null, 2)); | 295 InspectorTest.log("Exception when dispatching message: " + e + "\n" + e.stac k + "\n message = " + JSON.stringify(messageObject, null, 2)); |
| 291 InspectorTest.completeTest(); | 296 InspectorTest.completeTest(); |
| 292 } | 297 } |
| 293 } | 298 } |
| 294 | 299 |
| 295 InspectorTest.loadScript = function(fileName) { | 300 InspectorTest.loadScript = function(fileName) { |
| 296 InspectorTest.addScript(utils.read(fileName)); | 301 InspectorTest.addScript(utils.read(fileName)); |
| 297 } | 302 } |
| OLD | NEW |