Index: sdk/lib/_internal/compiler/implementation/source_map_builder.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/source_map_builder.dart b/sdk/lib/_internal/compiler/implementation/source_map_builder.dart |
index 1665d222fd334181ac89e6b452c306b472c8a015..ac89047f4ed5742202e9a1c031d1d0fda614ea09 100644 |
--- a/sdk/lib/_internal/compiler/implementation/source_map_builder.dart |
+++ b/sdk/lib/_internal/compiler/implementation/source_map_builder.dart |
@@ -173,28 +173,50 @@ class SourceMapEntry { |
SourceMapEntry(this.sourceLocation, this.targetOffset); |
} |
-class SourceFileLocation { |
+abstract class SourceFileLocation { |
SourceFile sourceFile; |
- Token token; |
- int line; |
- SourceFileLocation(this.sourceFile, this.token) { |
+ SourceFileLocation(this.sourceFile) { |
assert(isValid()); |
} |
+ int line; |
+ |
+ int get offset; |
+ |
String getSourceUrl() => sourceFile.filename; |
int getLine() { |
- if (line == null) line = sourceFile.getLine(token.charOffset); |
+ if (line == null) line = sourceFile.getLine(offset); |
return line; |
} |
- int getColumn() => sourceFile.getColumn(getLine(), token.charOffset); |
+ int getColumn() => sourceFile.getColumn(getLine(), offset); |
+ |
+ String getSourceName(); |
+ |
+ bool isValid() => offset < sourceFile.length; |
+} |
+ |
+class TokenSourceFileLocation extends SourceFileLocation { |
+ Token token; |
ngeoffray
2013/11/20 14:55:27
final?
lukas
2013/11/21 12:20:21
Done.
|
+ |
+ TokenSourceFileLocation(SourceFile sourceFile, this.token) |
+ : super(sourceFile); |
+ |
+ int get offset => token.charOffset; |
String getSourceName() { |
if (token.isIdentifier()) return token.value; |
return null; |
} |
+} |
+ |
+class OffsetSourceFileLocation extends SourceFileLocation { |
+ int offset; |
ngeoffray
2013/11/20 14:55:27
ditto
lukas
2013/11/21 12:20:21
Done.
|
+ String sourceName; |
ngeoffray
2013/11/20 14:55:27
ditto
lukas
2013/11/21 12:20:21
Done.
|
+ OffsetSourceFileLocation(SourceFile sourceFile, this.offset, |
+ [this.sourceName]) : super(sourceFile); |
- bool isValid() => token.charOffset < sourceFile.length; |
+ String getSourceName() => sourceName; |
} |