| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 dev_compiler.src.codegen.js_printer; | 5 library dev_compiler.src.codegen.js_printer; |
| 6 | 6 |
| 7 import 'dart:io' show Directory, File; | 7 import 'dart:io' show Directory, File; |
| 8 import 'package:analyzer/src/generated/ast.dart'; | 8 import 'package:analyzer/src/generated/ast.dart'; |
| 9 import 'package:path/path.dart' as path; | 9 import 'package:path/path.dart' as path; |
| 10 import 'package:source_maps/source_maps.dart' as srcmaps show Printer; | 10 import 'package:source_maps/source_maps.dart' as srcmaps show Printer; |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 if (name != null) { | 77 if (name != null) { |
| 78 // TODO(jmesserly): mark only uses the beginning of the span, but | 78 // TODO(jmesserly): mark only uses the beginning of the span, but |
| 79 // we're required to pass this as a valid span. | 79 // we're required to pass this as a valid span. |
| 80 var end = _location(node.end); | 80 var end = _location(node.end); |
| 81 printer.mark(new SourceMapSpan(loc, end, name, isIdentifier: true)); | 81 printer.mark(new SourceMapSpan(loc, end, name, isIdentifier: true)); |
| 82 } else { | 82 } else { |
| 83 printer.mark(loc); | 83 printer.mark(loc); |
| 84 } | 84 } |
| 85 } | 85 } |
| 86 | 86 |
| 87 SourceLocation _location(int offset) => locationForOffset(unit, uri, offset); | 87 SourceLocation _location(int offset) => |
| 88 locationForOffset(unit.lineInfo, uri, offset); |
| 88 | 89 |
| 89 Uri _makeRelativeUri(Uri src) { | 90 Uri _makeRelativeUri(Uri src) { |
| 90 return new Uri(path: path.relative(src.path, from: outputDir)); | 91 return new Uri(path: path.relative(src.path, from: outputDir)); |
| 91 } | 92 } |
| 92 | 93 |
| 93 void exitNode(JS.Node jsNode) { | 94 void exitNode(JS.Node jsNode) { |
| 94 AstNode node = jsNode.sourceInformation; | 95 AstNode node = jsNode.sourceInformation; |
| 95 if (node is CompilationUnit) { | 96 if (node is CompilationUnit) { |
| 96 unit = null; | 97 unit = null; |
| 97 uri = null; | 98 uri = null; |
| 98 return; | 99 return; |
| 99 } | 100 } |
| 100 if (unit == null || node == null || node.offset == -1) return; | 101 if (unit == null || node == null || node.offset == -1) return; |
| 101 | 102 |
| 102 // TODO(jmesserly): in many cases marking the end will be unnecessary. | 103 // TODO(jmesserly): in many cases marking the end will be unnecessary. |
| 103 printer.mark(_location(node.end)); | 104 printer.mark(_location(node.end)); |
| 104 } | 105 } |
| 105 | 106 |
| 106 String _getIdentifier(AstNode node) { | 107 String _getIdentifier(AstNode node) { |
| 107 if (node is SimpleIdentifier) return node.name; | 108 if (node is SimpleIdentifier) return node.name; |
| 108 return null; | 109 return null; |
| 109 } | 110 } |
| 110 } | 111 } |
| OLD | NEW |