OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library sourcemap.output_structure; | 5 library sourcemap.output_structure; |
6 | 6 |
7 import 'dart:math' as Math; | 7 import 'dart:math' as Math; |
8 import 'html_parts.dart' show Annotation, CodeLine, JsonStrategy; | 8 import 'html_parts.dart' show CodeLine, JsonStrategy; |
9 | 9 |
10 // Constants used to identify the subsection of the JavaScript output. These | 10 // Constants used to identify the subsection of the JavaScript output. These |
11 // are specifically for the unminified full_emitter output. | 11 // are specifically for the unminified full_emitter output. |
12 const String HEAD = ' var dart = ['; | 12 const String HEAD = ' var dart = ['; |
13 const String TAIL = ' }], '; | 13 const String TAIL = ' }], '; |
14 const String END = ' setupProgram(dart'; | 14 const String END = ' setupProgram(dart'; |
15 | 15 |
16 final RegExp TOP_LEVEL_VALUE = new RegExp(r'^ (".+?"):'); | 16 final RegExp TOP_LEVEL_VALUE = new RegExp(r'^ (".+?"):'); |
17 final RegExp TOP_LEVEL_FUNCTION = | 17 final RegExp TOP_LEVEL_FUNCTION = |
18 new RegExp(r'^ ([a-zA-Z0-9_$]+): \[?function'); | 18 new RegExp(r'^ ([a-zA-Z0-9_$]+): \[?function'); |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 if (line.code.startsWith(END)) { | 176 if (line.code.startsWith(END)) { |
177 return index; | 177 return index; |
178 } | 178 } |
179 index++; | 179 index++; |
180 } | 180 } |
181 return lines.length; | 181 return lines.length; |
182 } | 182 } |
183 | 183 |
184 String readHeader(CodeLine line) { | 184 String readHeader(CodeLine line) { |
185 String code = line.code; | 185 String code = line.code; |
186 String ssaLineHeader; | |
187 if (code.startsWith(HEAD)) { | 186 if (code.startsWith(HEAD)) { |
188 return code.substring(HEAD.length); | 187 return code.substring(HEAD.length); |
189 } else if (code.startsWith(TAIL)) { | 188 } else if (code.startsWith(TAIL)) { |
190 return code.substring(TAIL.length); | 189 return code.substring(TAIL.length); |
191 } | 190 } |
192 return null; | 191 return null; |
193 } | 192 } |
194 | 193 |
195 List<LibraryBlock> computeHeaderMap( | 194 List<LibraryBlock> computeHeaderMap( |
196 List<CodeLine> lines, int start, int end) { | 195 List<CodeLine> lines, int start, int end) { |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 ..to = to | 315 ..to = to |
317 ..codeSource = codeSource; | 316 ..codeSource = codeSource; |
318 json['children'].forEach( | 317 json['children'].forEach( |
319 (child) => statics.children.add(fromJson(child, strategy))); | 318 (child) => statics.children.add(fromJson(child, strategy))); |
320 return statics; | 319 return statics; |
321 case EntityKind.STATIC_FUNCTION: | 320 case EntityKind.STATIC_FUNCTION: |
322 return new StaticFunction(name, from) | 321 return new StaticFunction(name, from) |
323 ..to = to | 322 ..to = to |
324 ..codeSource = codeSource; | 323 ..codeSource = codeSource; |
325 } | 324 } |
| 325 throw "Unhandled: $kind"; |
326 } | 326 } |
327 } | 327 } |
328 | 328 |
329 /// A block defining the content of a Dart library. | 329 /// A block defining the content of a Dart library. |
330 class LibraryBlock extends AbstractEntity { | 330 class LibraryBlock extends AbstractEntity { |
331 List<BasicEntity> children = <BasicEntity>[]; | 331 List<BasicEntity> children = <BasicEntity>[]; |
332 int get headerEnd => from + 2; | 332 int get headerEnd => from + 2; |
333 int get footerStart => to /* - 1*/; | 333 int get footerStart => to /* - 1*/; |
334 | 334 |
335 LibraryBlock(String name, int from) : super(name, from); | 335 LibraryBlock(String name, int from) : super(name, from); |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 } | 709 } |
710 | 710 |
711 static CodeSource fromJson(Map json) { | 711 static CodeSource fromJson(Map json) { |
712 if (json == null) return null; | 712 if (json == null) return null; |
713 CodeSource codeSource = new CodeSource(CodeKind.values[json['kind']], | 713 CodeSource codeSource = new CodeSource(CodeKind.values[json['kind']], |
714 Uri.parse(json['uri']), json['name'], json['begin'], json['end']); | 714 Uri.parse(json['uri']), json['name'], json['begin'], json['end']); |
715 json['members'].forEach((m) => codeSource.members.add(fromJson(m))); | 715 json['members'].forEach((m) => codeSource.members.add(fromJson(m))); |
716 return codeSource; | 716 return codeSource; |
717 } | 717 } |
718 } | 718 } |
OLD | NEW |