Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(471)

Side by Side Diff: pkg/js_ast/lib/src/nodes.dart

Issue 1617083002: Base JavaScript code position computation on JavaScript tracer. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 part of js_ast; 5 part of js_ast;
6 6
7 abstract class NodeVisitor<T> { 7 abstract class NodeVisitor<T> {
8 T visitProgram(Program node); 8 T visitProgram(Program node);
9 9
10 T visitBlock(Block node); 10 T visitBlock(Block node);
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 188
189 // Ignore comments by default. 189 // Ignore comments by default.
190 T visitComment(Comment node) => null; 190 T visitComment(Comment node) => null;
191 191
192 T visitAwait(Await node) => visitExpression(node); 192 T visitAwait(Await node) => visitExpression(node);
193 T visitDartYield(DartYield node) => visitStatement(node); 193 T visitDartYield(DartYield node) => visitStatement(node);
194 } 194 }
195 195
196 /// This tag interface has no behaviour but must be implemented by any class 196 /// This tag interface has no behaviour but must be implemented by any class
197 /// that is to be stored on a [Node] as source information. 197 /// that is to be stored on a [Node] as source information.
198 abstract class JavaScriptNodeSourceInformation {} 198 abstract class JavaScriptNodeSourceInformation {
199 const JavaScriptNodeSourceInformation();
200 }
199 201
200 abstract class Node { 202 abstract class Node {
201 JavaScriptNodeSourceInformation get sourceInformation => _sourceInformation; 203 JavaScriptNodeSourceInformation get sourceInformation => _sourceInformation;
202 204
203 JavaScriptNodeSourceInformation _sourceInformation; 205 JavaScriptNodeSourceInformation _sourceInformation;
204 206
205 accept(NodeVisitor visitor); 207 accept(NodeVisitor visitor);
206 void visitChildren(NodeVisitor visitor); 208 void visitChildren(NodeVisitor visitor);
207 209
208 // Shallow clone of node. Does not clone positions since the only use of this 210 // Shallow clone of node. Does not clone positions since the only use of this
(...skipping 859 matching lines...) Expand 10 before | Expand all | Expand 10 after
1068 1070
1069 StringConcatenation _clone() => new StringConcatenation(this.parts); 1071 StringConcatenation _clone() => new StringConcatenation(this.parts);
1070 } 1072 }
1071 1073
1072 class LiteralNumber extends Literal { 1074 class LiteralNumber extends Literal {
1073 final String value; // Must be a valid JavaScript number literal. 1075 final String value; // Must be a valid JavaScript number literal.
1074 1076
1075 LiteralNumber(this.value); 1077 LiteralNumber(this.value);
1076 1078
1077 int get precedenceLevel => value.startsWith('-') ? UNARY : PRIMARY; 1079 int get precedenceLevel => value.startsWith('-') ? UNARY : PRIMARY;
1078 1080
1079 accept(NodeVisitor visitor) => visitor.visitLiteralNumber(this); 1081 accept(NodeVisitor visitor) => visitor.visitLiteralNumber(this);
1080 LiteralNumber _clone() => new LiteralNumber(value); 1082 LiteralNumber _clone() => new LiteralNumber(value);
1081 } 1083 }
1082 1084
1083 class ArrayInitializer extends Expression { 1085 class ArrayInitializer extends Expression {
1084 final List<Expression> elements; 1086 final List<Expression> elements;
1085 1087
1086 ArrayInitializer(this.elements); 1088 ArrayInitializer(this.elements);
1087 1089
1088 accept(NodeVisitor visitor) => visitor.visitArrayInitializer(this); 1090 accept(NodeVisitor visitor) => visitor.visitArrayInitializer(this);
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1285 class Comment extends Statement { 1287 class Comment extends Statement {
1286 final String comment; 1288 final String comment;
1287 1289
1288 Comment(this.comment); 1290 Comment(this.comment);
1289 1291
1290 accept(NodeVisitor visitor) => visitor.visitComment(this); 1292 accept(NodeVisitor visitor) => visitor.visitComment(this);
1291 Comment _clone() => new Comment(comment); 1293 Comment _clone() => new Comment(comment);
1292 1294
1293 void visitChildren(NodeVisitor visitor) {} 1295 void visitChildren(NodeVisitor visitor) {}
1294 } 1296 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart ('k') | tests/compiler/dart2js/cps_ir/runner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698