Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js |
| index 3e5f6e93931f7ce212dbe6bc7f6290c79d505887..0ebc822efc0b17e2bd8f7a51a0ea1a9f084660a3 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js |
| @@ -113,9 +113,15 @@ Coverage.CoverageView = class extends UI.VBox { |
| if (!contents) |
| return; |
| var text = new Common.Text(contents); |
| - for (var range of coverageInfo.ranges) { |
| - var startPosition = text.positionFromOffset(range.startOffset); |
| - var endPosition = text.positionFromOffset(range.endOffset); |
| + var lastOffset = 0; |
| + var rangesByDepth = []; |
| + for (var segment of coverageInfo.segments) { |
| + if (typeof segment.count !== 'number') { |
| + lastOffset = segment.end; |
| + continue; |
| + } |
| + var startPosition = text.positionFromOffset(lastOffset); |
| + var endPosition = text.positionFromOffset(segment.end); |
| if (!startPosition.lineNumber) |
| startPosition.columnNumber += coverageInfo.columnOffset; |
| startPosition.lineNumber += coverageInfo.lineOffset; |
| @@ -123,9 +129,21 @@ Coverage.CoverageView = class extends UI.VBox { |
| endPosition.columnNumber += coverageInfo.columnOffset; |
| endPosition.lineNumber += coverageInfo.lineOffset; |
| - var textRange = new Common.TextRange( |
| - startPosition.lineNumber, startPosition.columnNumber, endPosition.lineNumber, endPosition.columnNumber); |
| - uiSourceCode.addDecoration(textRange, Coverage.CoverageView.LineDecorator.type, range.count); |
| + var ranges = rangesByDepth[segment.depth - 1]; // depth === 0 => count === undefined |
|
alph
2017/03/10 02:05:09
can you store depth-1 in segments?
|
| + if (!ranges) { |
| + ranges = []; |
| + rangesByDepth[segment.depth - 1] = ranges; |
| + } |
| + ranges.push({ |
| + count: segment.count, |
| + range: new Common.TextRange( |
| + startPosition.lineNumber, startPosition.columnNumber, endPosition.lineNumber, endPosition.columnNumber) |
| + }); |
| + lastOffset = segment.end; |
| + } |
| + for (var ranges of rangesByDepth) { |
|
alph
2017/03/10 02:05:09
I didn't get why you need to iterate in the depth
|
| + for (var r of ranges) |
| + uiSourceCode.addDecoration(r.range, Coverage.CoverageView.LineDecorator.type, r.count); |
| } |
| } |
| }; |