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 /// Source information system mapping that attempts a semantic mapping between | 5 /// Source information system mapping that attempts a semantic mapping between |
6 /// offsets of JavaScript code points to offsets of Dart code points. | 6 /// offsets of JavaScript code points to offsets of Dart code points. |
7 | 7 |
8 library dart2js.source_information.position; | 8 library dart2js.source_information.position; |
9 | 9 |
10 import '../common.dart'; | 10 import '../common.dart'; |
11 import '../elements/elements.dart' show AstElement, FieldElement, ResolvedAst, R
esolvedAstKind; | 11 import '../elements/elements.dart' |
| 12 show AstElement, FieldElement, ResolvedAst, ResolvedAstKind; |
12 import '../js/js.dart' as js; | 13 import '../js/js.dart' as js; |
13 import '../js/js_debug.dart'; | 14 import '../js/js_debug.dart'; |
14 import '../js/js_source_mapping.dart'; | 15 import '../js/js_source_mapping.dart'; |
15 import '../tree/tree.dart' show FunctionExpression, Node, Send; | 16 import '../tree/tree.dart' show FunctionExpression, Node, Send; |
16 import 'code_output.dart' show CodeBuffer; | 17 import 'code_output.dart' show CodeBuffer; |
17 import 'source_file.dart'; | 18 import 'source_file.dart'; |
18 import 'source_information.dart'; | 19 import 'source_information.dart'; |
19 | 20 |
20 /// [SourceInformation] that consists of an offset position into the source | 21 /// [SourceInformation] that consists of an offset position into the source |
21 /// code. | 22 /// code. |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 final AstElement element; | 144 final AstElement element; |
144 | 145 |
145 PositionSourceInformationBuilder(AstElement element) | 146 PositionSourceInformationBuilder(AstElement element) |
146 : this.element = element, | 147 : this.element = element, |
147 sourceFile = element.implementation.compilationUnit.script.file, | 148 sourceFile = element.implementation.compilationUnit.script.file, |
148 name = computeElementNameForSourceMaps(element); | 149 name = computeElementNameForSourceMaps(element); |
149 | 150 |
150 SourceInformation buildDeclaration(ResolvedAst resolvedAst) { | 151 SourceInformation buildDeclaration(ResolvedAst resolvedAst) { |
151 if (resolvedAst.kind != ResolvedAstKind.PARSED) { | 152 if (resolvedAst.kind != ResolvedAstKind.PARSED) { |
152 SourceSpan span = resolvedAst.element.sourcePosition; | 153 SourceSpan span = resolvedAst.element.sourcePosition; |
153 return new PositionSourceInformation(new OffsetSourceLocation( | 154 return new PositionSourceInformation( |
154 sourceFile, span.begin, name)); | 155 new OffsetSourceLocation(sourceFile, span.begin, name)); |
155 } else { | 156 } else { |
156 return new PositionSourceInformation( | 157 return new PositionSourceInformation( |
157 new OffsetSourceLocation(sourceFile, | 158 new OffsetSourceLocation( |
158 resolvedAst.node.getBeginToken().charOffset, name), | 159 sourceFile, resolvedAst.node.getBeginToken().charOffset, name), |
159 new OffsetSourceLocation(sourceFile, | 160 new OffsetSourceLocation( |
160 resolvedAst.node.getEndToken().charOffset, name)); | 161 sourceFile, resolvedAst.node.getEndToken().charOffset, name)); |
161 } | 162 } |
162 } | 163 } |
163 | 164 |
164 /// Builds a source information object pointing the start position of [node]. | 165 /// Builds a source information object pointing the start position of [node]. |
165 SourceInformation buildBegin(Node node) { | 166 SourceInformation buildBegin(Node node) { |
166 return new PositionSourceInformation(new OffsetSourceLocation( | 167 return new PositionSourceInformation(new OffsetSourceLocation( |
167 sourceFile, node.getBeginToken().charOffset, name)); | 168 sourceFile, node.getBeginToken().charOffset, name)); |
168 } | 169 } |
169 | 170 |
170 @override | 171 @override |
(...skipping 1110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1281 | 1282 |
1282 @override | 1283 @override |
1283 CodePosition operator [](js.Node node) { | 1284 CodePosition operator [](js.Node node) { |
1284 CodePosition codePosition = codePositions[node]; | 1285 CodePosition codePosition = codePositions[node]; |
1285 if (codePosition == null) { | 1286 if (codePosition == null) { |
1286 coverage.registerNodesWithoutOffset(node); | 1287 coverage.registerNodesWithoutOffset(node); |
1287 } | 1288 } |
1288 return codePosition; | 1289 return codePosition; |
1289 } | 1290 } |
1290 } | 1291 } |
OLD | NEW |