| OLD | NEW |
| 1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2017 The Chromium 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 /** @typedef {{startOffset: number, endOffset: number, count: number}} */ | 5 /** @typedef {{startOffset: number, endOffset: number, count: number}} */ |
| 6 Coverage.RangeUseCount; | 6 Coverage.RangeUseCount; |
| 7 | 7 |
| 8 /** @typedef {{end: number, count: (number|undefined), depth: number}} */ | 8 /** @typedef {{end: number, count: (number|undefined), depth: number}} */ |
| 9 Coverage.CoverageSegment; | 9 Coverage.CoverageSegment; |
| 10 | 10 |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 } | 246 } |
| 247 | 247 |
| 248 /** | 248 /** |
| 249 * @return {number} | 249 * @return {number} |
| 250 */ | 250 */ |
| 251 usedSize() { | 251 usedSize() { |
| 252 return this._usedSize; | 252 return this._usedSize; |
| 253 } | 253 } |
| 254 | 254 |
| 255 /** | 255 /** |
| 256 * @return {!Promise<!Array<!{range: !Common.TextRange, count: number}>>} | 256 * @return {!Promise<!Array<!{range: !TextUtils.TextRange, count: number}>>} |
| 257 */ | 257 */ |
| 258 async buildTextRanges() { | 258 async buildTextRanges() { |
| 259 var textRangePromises = []; | 259 var textRangePromises = []; |
| 260 for (var coverageInfo of this._coverageInfoByLocation.values()) | 260 for (var coverageInfo of this._coverageInfoByLocation.values()) |
| 261 textRangePromises.push(coverageInfo.buildTextRanges()); | 261 textRangePromises.push(coverageInfo.buildTextRanges()); |
| 262 var allTextRanges = await Promise.all(textRangePromises); | 262 var allTextRanges = await Promise.all(textRangePromises); |
| 263 return [].concat(...allTextRanges); | 263 return [].concat(...allTextRanges); |
| 264 } | 264 } |
| 265 }; | 265 }; |
| 266 | 266 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 } | 332 } |
| 333 | 333 |
| 334 for (; indexA < segmentsA.length; indexA++) | 334 for (; indexA < segmentsA.length; indexA++) |
| 335 result.push(segmentsA[indexA]); | 335 result.push(segmentsA[indexA]); |
| 336 for (; indexB < segmentsB.length; indexB++) | 336 for (; indexB < segmentsB.length; indexB++) |
| 337 result.push(segmentsB[indexB]); | 337 result.push(segmentsB[indexB]); |
| 338 return result; | 338 return result; |
| 339 } | 339 } |
| 340 | 340 |
| 341 /** | 341 /** |
| 342 * @return {!Promise<!Array<!{range: !Common.TextRange, count: number}>>} | 342 * @return {!Promise<!Array<!{range: !TextUtils.TextRange, count: number}>>} |
| 343 */ | 343 */ |
| 344 async buildTextRanges() { | 344 async buildTextRanges() { |
| 345 var contents = await this._contentProvider.requestContent(); | 345 var contents = await this._contentProvider.requestContent(); |
| 346 if (!contents) | 346 if (!contents) |
| 347 return []; | 347 return []; |
| 348 var text = new Common.Text(contents); | 348 var text = new TextUtils.Text(contents); |
| 349 var lastOffset = 0; | 349 var lastOffset = 0; |
| 350 var rangesByDepth = []; | 350 var rangesByDepth = []; |
| 351 for (var segment of this._segments) { | 351 for (var segment of this._segments) { |
| 352 if (typeof segment.count !== 'number') { | 352 if (typeof segment.count !== 'number') { |
| 353 lastOffset = segment.end; | 353 lastOffset = segment.end; |
| 354 continue; | 354 continue; |
| 355 } | 355 } |
| 356 var startPosition = text.positionFromOffset(lastOffset); | 356 var startPosition = text.positionFromOffset(lastOffset); |
| 357 var endPosition = text.positionFromOffset(segment.end); | 357 var endPosition = text.positionFromOffset(segment.end); |
| 358 if (!startPosition.lineNumber) | 358 if (!startPosition.lineNumber) |
| 359 startPosition.columnNumber += this._columnOffset; | 359 startPosition.columnNumber += this._columnOffset; |
| 360 startPosition.lineNumber += this._lineOffset; | 360 startPosition.lineNumber += this._lineOffset; |
| 361 if (!endPosition.lineNumber) | 361 if (!endPosition.lineNumber) |
| 362 endPosition.columnNumber += this._columnOffset; | 362 endPosition.columnNumber += this._columnOffset; |
| 363 endPosition.lineNumber += this._lineOffset; | 363 endPosition.lineNumber += this._lineOffset; |
| 364 | 364 |
| 365 var ranges = rangesByDepth[segment.depth - 1]; // depth === 0 => count ==
= undefined | 365 var ranges = rangesByDepth[segment.depth - 1]; // depth === 0 => count ==
= undefined |
| 366 if (!ranges) { | 366 if (!ranges) { |
| 367 ranges = []; | 367 ranges = []; |
| 368 rangesByDepth[segment.depth - 1] = ranges; | 368 rangesByDepth[segment.depth - 1] = ranges; |
| 369 } | 369 } |
| 370 ranges.push({ | 370 ranges.push({ |
| 371 count: segment.count, | 371 count: segment.count, |
| 372 range: new Common.TextRange( | 372 range: new TextUtils.TextRange( |
| 373 startPosition.lineNumber, startPosition.columnNumber, endPosition.li
neNumber, endPosition.columnNumber) | 373 startPosition.lineNumber, startPosition.columnNumber, endPosition.li
neNumber, endPosition.columnNumber) |
| 374 }); | 374 }); |
| 375 lastOffset = segment.end; | 375 lastOffset = segment.end; |
| 376 } | 376 } |
| 377 var result = []; | 377 var result = []; |
| 378 for (var ranges of rangesByDepth) { | 378 for (var ranges of rangesByDepth) { |
| 379 for (var r of ranges) | 379 for (var r of ranges) |
| 380 result.push({count: r.count, range: r.range}); | 380 result.push({count: r.count, range: r.range}); |
| 381 } | 381 } |
| 382 return result; | 382 return result; |
| 383 } | 383 } |
| 384 | 384 |
| 385 _updateStats() { | 385 _updateStats() { |
| 386 this._usedSize = 0; | 386 this._usedSize = 0; |
| 387 this._unusedSize = 0; | 387 this._unusedSize = 0; |
| 388 | 388 |
| 389 var last = 0; | 389 var last = 0; |
| 390 for (var segment of this._segments) { | 390 for (var segment of this._segments) { |
| 391 if (typeof segment.count === 'number') { | 391 if (typeof segment.count === 'number') { |
| 392 if (segment.count) | 392 if (segment.count) |
| 393 this._usedSize += segment.end - last; | 393 this._usedSize += segment.end - last; |
| 394 else | 394 else |
| 395 this._unusedSize += segment.end - last; | 395 this._unusedSize += segment.end - last; |
| 396 } | 396 } |
| 397 last = segment.end; | 397 last = segment.end; |
| 398 } | 398 } |
| 399 } | 399 } |
| 400 }; | 400 }; |
| OLD | NEW |