Index: runtime/observatory/lib/src/service/object.dart |
diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart |
index c2106941d01e1e6247f0f78f4692d738d31a68cc..19bfd20f5edbd3c6f99384ce8fdee369c6f1b77f 100644 |
--- a/runtime/observatory/lib/src/service/object.dart |
+++ b/runtime/observatory/lib/src/service/object.dart |
@@ -2175,6 +2175,8 @@ class Script extends ServiceObject with Coverage { |
@observable String kind; |
@observable int firstTokenPos; |
@observable int lastTokenPos; |
+ @observable int lineOffset; |
+ @observable int columnOffset; |
@observable Library library; |
bool get canCache => true; |
bool get immutable => true; |
@@ -2186,7 +2188,7 @@ class Script extends ServiceObject with Coverage { |
ScriptLine getLine(int line) { |
assert(line >= 1); |
- return lines[line - 1]; |
+ return lines[line - lineOffset - 1]; |
} |
/// This function maps a token position to a line number. |
@@ -2207,6 +2209,8 @@ class Script extends ServiceObject with Coverage { |
if (mapIsRef) { |
return; |
} |
+ lineOffset = map['lineOffset']; |
+ columnOffset = map['columnOffset']; |
_parseTokenPosTable(map['tokenPosTable']); |
_processSource(map['source']); |
library = map['library']; |
@@ -2292,7 +2296,7 @@ class Script extends ServiceObject with Coverage { |
lines.clear(); |
Logger.root.info('Adding ${sourceLines.length} source lines for ${_url}'); |
for (var i = 0; i < sourceLines.length; i++) { |
- lines.add(new ScriptLine(this, i + 1, sourceLines[i])); |
+ lines.add(new ScriptLine(this, i + lineOffset + 1, sourceLines[i])); |
} |
for (var bpt in isolate.breakpoints.values) { |
if (bpt.script == this) { |