OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 var entry = mappings[first]; | 338 var entry = mappings[first]; |
339 if (!first && entry && | 339 if (!first && entry && |
340 (lineNumber < entry.lineNumber || (lineNumber === entry.lineNumber && co
lumnNumber < entry.columnNumber))) | 340 (lineNumber < entry.lineNumber || (lineNumber === entry.lineNumber && co
lumnNumber < entry.columnNumber))) |
341 return null; | 341 return null; |
342 return entry; | 342 return entry; |
343 } | 343 } |
344 | 344 |
345 /** | 345 /** |
346 * @param {string} sourceURL | 346 * @param {string} sourceURL |
347 * @param {number} lineNumber | 347 * @param {number} lineNumber |
348 * @return {!Array<!SDK.SourceMapEntry>} | 348 * @return {?SDK.SourceMapEntry} |
349 */ | 349 */ |
350 mappingsForLine(sourceURL, lineNumber) { | 350 firstSourceLineMapping(sourceURL, lineNumber) { |
351 var mappings = this._reversedMappings(sourceURL); | 351 var mappings = this._reversedMappings(sourceURL); |
352 var startIndex = mappings.lowerBound(lineNumber, (lineNumber, mapping) => li
neNumber - mapping.sourceLineNumber); | 352 var index = mappings.lowerBound(lineNumber, lineComparator); |
353 var endIndex = startIndex; | 353 if (index >= mappings.length || mappings[index].sourceLineNumber !== lineNum
ber) |
354 while (endIndex < mappings.length && mappings[endIndex].sourceLineNumber ===
lineNumber) | 354 return null; |
355 ++endIndex; | 355 return mappings[index]; |
356 return mappings.slice(startIndex, endIndex); | 356 |
| 357 /** |
| 358 * @param {number} lineNumber |
| 359 * @param {!SDK.SourceMapEntry} mapping |
| 360 * @return {number} |
| 361 */ |
| 362 function lineComparator(lineNumber, mapping) { |
| 363 return lineNumber - mapping.sourceLineNumber; |
| 364 } |
357 } | 365 } |
358 | 366 |
359 /** | 367 /** |
360 * @return {!Array<!SDK.SourceMapEntry>} | 368 * @return {!Array<!SDK.SourceMapEntry>} |
361 */ | 369 */ |
362 mappings() { | 370 mappings() { |
363 if (this._mappings === null) { | 371 if (this._mappings === null) { |
364 this._mappings = []; | 372 this._mappings = []; |
365 this._eachSection(this._parseMap.bind(this)); | 373 this._eachSection(this._parseMap.bind(this)); |
366 this._json = null; | 374 this._json = null; |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
594 * @param {?string} content | 602 * @param {?string} content |
595 * @param {?Array<!SDK.SourceMapEntry>} reverseMappings | 603 * @param {?Array<!SDK.SourceMapEntry>} reverseMappings |
596 */ | 604 */ |
597 constructor(content, reverseMappings) { | 605 constructor(content, reverseMappings) { |
598 this.content = content; | 606 this.content = content; |
599 this.reverseMappings = reverseMappings; | 607 this.reverseMappings = reverseMappings; |
600 } | 608 } |
601 }; | 609 }; |
602 | 610 |
603 SDK.TextSourceMap._sourcesListSymbol = Symbol('sourcesList'); | 611 SDK.TextSourceMap._sourcesListSymbol = Symbol('sourcesList'); |
OLD | NEW |