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 |