| 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
|
| + 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) {
|
| + for (var r of ranges)
|
| + uiSourceCode.addDecoration(r.range, Coverage.CoverageView.LineDecorator.type, r.count);
|
| }
|
| }
|
| };
|
|
|