Chromium Code Reviews| Index: pkg/kernel/lib/binary/ast_to_binary.dart |
| diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart |
| index 68f3687fca8d7ae7c7e5c3476f673a1c9146e046..5c50f032fbaf1b77f53481cc448e0854cdc0db1e 100644 |
| --- a/pkg/kernel/lib/binary/ast_to_binary.dart |
| +++ b/pkg/kernel/lib/binary/ast_to_binary.dart |
| @@ -137,20 +137,25 @@ class BinaryPrinter extends Visitor { |
| _importTable = new ProgramImportTable(program); |
| _stringIndexer.build(program); |
| writeStringTable(_stringIndexer); |
| - writeUriToLineStarts(program); |
| + writeUriToLineStartsAndSource(program); |
| writeList(program.libraries, writeNode); |
| writeMemberReference(program.mainMethod, allowNull: true); |
| _flush(); |
| } |
| - void writeUriToLineStarts(Program program) { |
| - program.uriToLineStarts.keys.forEach((uri) { |
| + void writeUriToLineStartsAndSource(Program program) { |
| + program.uriToLineStartsAndSource.keys.forEach((uri) { |
| _sourceUriIndexer.put(uri); |
| }); |
| writeStringTable(_sourceUriIndexer); |
| for (int i = 0; i < _sourceUriIndexer.entries.length; i++) { |
| String uri = _sourceUriIndexer.entries[i].value; |
| - List<int> lineStarts = program.uriToLineStarts[uri] ?? []; |
| + LineStartsAndSource lineStartsAndSource = |
| + program.uriToLineStartsAndSource[uri] ?? |
|
Kevin Millikin (Google)
2016/12/20 12:03:33
Can this be null? It's not clear that it can, or
jensj
2016/12/20 13:30:22
It iterates over all entries in StringIndexer, tha
|
| + new LineStartsAndSource([], ""); |
| + String sourceCode = lineStartsAndSource.source; |
| + writeStringTableEntry(sourceCode); |
| + List<int> lineStarts = lineStartsAndSource.lineStarts; |
| writeUInt30(lineStarts.length); |
| int previousLineStart = 0; |
| lineStarts.forEach((lineStart) { |