Chromium Code Reviews| 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; |
| } |