Chromium Code Reviews| Index: pkg/compiler/lib/src/io/source_map_builder.dart |
| diff --git a/pkg/compiler/lib/src/io/source_map_builder.dart b/pkg/compiler/lib/src/io/source_map_builder.dart |
| index de80533c4c5a1f316f4dcf3229072fd595859b02..1f97924274da369198d266f5b3ca341ed14c4c90 100644 |
| --- a/pkg/compiler/lib/src/io/source_map_builder.dart |
| +++ b/pkg/compiler/lib/src/io/source_map_builder.dart |
| @@ -6,8 +6,9 @@ library dart2js.source_map_builder; |
| import '../util/util.dart'; |
| import '../scanner/scannerlib.dart' show Token; |
| -import '../source_file.dart'; |
| import '../util/uri_extras.dart' show relativize; |
| +import 'line_column_provider.dart'; |
| +import 'source_file.dart'; |
| class SourceMapBuilder { |
| static const int VLQ_BASE_SHIFT = 5; |
| @@ -20,7 +21,7 @@ class SourceMapBuilder { |
| final Uri uri; |
| final Uri fileUri; |
| - SourceFile targetFile; |
| + LineColumnProvider lineColumnProvider; |
| List<SourceMapEntry> entries; |
| Map<String, int> sourceUrlMap; |
| @@ -36,7 +37,7 @@ class SourceMapBuilder { |
| int previousSourceNameIndex; |
| bool firstEntryInLine; |
| - SourceMapBuilder(this.uri, this.fileUri, this.targetFile) { |
| + SourceMapBuilder(this.uri, this.fileUri, this.lineColumnProvider) { |
| entries = new List<SourceMapEntry>(); |
| sourceUrlMap = new Map<String, int>(); |
| @@ -87,7 +88,7 @@ class SourceMapBuilder { |
| void addMapping(int targetOffset, SourceFileLocation sourceLocation) { |
| bool sameLine(int position, otherPosition) { |
| - return targetFile.getLine(position) == targetFile.getLine(otherPosition); |
| + return lineColumnProvider.getLine(position) == lineColumnProvider.getLine(otherPosition); |
|
floitsch
2015/01/09 16:35:19
long line.
Johnni Winther
2015/01/13 08:53:05
Done.
|
| } |
| if (!entries.isEmpty && sameLine(targetOffset, entries.last.targetOffset)) { |
| @@ -125,8 +126,9 @@ class SourceMapBuilder { |
| String build() { |
| resetPreviousSourceLocation(); |
| StringBuffer mappingsBuffer = new StringBuffer(); |
| - entries.forEach((SourceMapEntry entry) => writeEntry(entry, targetFile, |
| - mappingsBuffer)); |
| + entries.forEach((SourceMapEntry entry) { |
| + writeEntry(entry, mappingsBuffer); |
| + }); |
| StringBuffer buffer = new StringBuffer(); |
| buffer.write('{\n'); |
| buffer.write(' "version": 3,\n'); |
| @@ -151,9 +153,10 @@ class SourceMapBuilder { |
| return buffer.toString(); |
| } |
| - void writeEntry(SourceMapEntry entry, SourceFile targetFile, StringBuffer output) { |
| - int targetLine = targetFile.getLine(entry.targetOffset); |
| - int targetColumn = targetFile.getColumn(targetLine, entry.targetOffset); |
| + void writeEntry(SourceMapEntry entry, StringBuffer output) { |
| + int targetLine = lineColumnProvider.getLine(entry.targetOffset); |
| + int targetColumn = |
| + lineColumnProvider.getColumn(targetLine, entry.targetOffset); |
| if (targetLine > previousTargetLine) { |
| for (int i = previousTargetLine; i < targetLine; ++i) { |