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

Side by Side Diff: pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart

Issue 862703002: Implement constructor bodies and initializers in CPS->JS backend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Removed obsolete TODO Created 5 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 tree_ir_nodes; 5 library tree_ir_nodes;
6 6
7 import '../constants/expressions.dart'; 7 import '../constants/expressions.dart';
8 import '../constants/values.dart' as values; 8 import '../constants/values.dart' as values;
9 import '../cps_ir/cps_ir_nodes.dart' as cps_ir; 9 import '../cps_ir/cps_ir_nodes.dart' as cps_ir;
10 import '../dart_types.dart' show DartType, GenericType; 10 import '../dart_types.dart' show DartType, GenericType;
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 applyPass(Pass pass) => pass.rewriteConstructorDefinition(this); 655 applyPass(Pass pass) => pass.rewriteConstructorDefinition(this);
656 } 656 }
657 657
658 abstract class JsSpecificNode implements Node {} 658 abstract class JsSpecificNode implements Node {}
659 659
660 class CreateBox extends Expression implements JsSpecificNode { 660 class CreateBox extends Expression implements JsSpecificNode {
661 accept(ExpressionVisitor visitor) => visitor.visitCreateBox(this); 661 accept(ExpressionVisitor visitor) => visitor.visitCreateBox(this);
662 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitCreateBox(this, arg); 662 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitCreateBox(this, arg);
663 } 663 }
664 664
665 class CreateClosureClass extends Expression implements JsSpecificNode { 665 class CreateInstance extends Expression implements JsSpecificNode {
666 ClosureClassElement classElement; 666 ClassElement classElement;
667 List<Expression> arguments; 667 List<Expression> arguments;
668 668
669 CreateClosureClass(this.classElement, this.arguments); 669 CreateInstance(this.classElement, this.arguments);
670 670
671 accept(ExpressionVisitor visitor) => visitor.visitCreateClosureClass(this); 671 accept(ExpressionVisitor visitor) => visitor.visitCreateInstance(this);
672 accept1(ExpressionVisitor1 visitor, arg) { 672 accept1(ExpressionVisitor1 visitor, arg) {
673 return visitor.visitCreateClosureClass(this, arg); 673 return visitor.visitCreateInstance(this, arg);
674 } 674 }
675 } 675 }
676 676
677 class GetField extends Expression implements JsSpecificNode { 677 class GetField extends Expression implements JsSpecificNode {
678 Expression object; 678 Expression object;
679 Element field; 679 Element field;
680 680
681 GetField(this.object, this.field); 681 GetField(this.object, this.field);
682 682
683 accept(ExpressionVisitor visitor) => visitor.visitGetField(this); 683 accept(ExpressionVisitor visitor) => visitor.visitGetField(this);
(...skipping 27 matching lines...) Expand all
711 E visitLogicalOperator(LogicalOperator node); 711 E visitLogicalOperator(LogicalOperator node);
712 E visitNot(Not node); 712 E visitNot(Not node);
713 E visitLiteralList(LiteralList node); 713 E visitLiteralList(LiteralList node);
714 E visitLiteralMap(LiteralMap node); 714 E visitLiteralMap(LiteralMap node);
715 E visitTypeOperator(TypeOperator node); 715 E visitTypeOperator(TypeOperator node);
716 E visitFunctionExpression(FunctionExpression node); 716 E visitFunctionExpression(FunctionExpression node);
717 E visitFieldInitializer(FieldInitializer node); 717 E visitFieldInitializer(FieldInitializer node);
718 E visitSuperInitializer(SuperInitializer node); 718 E visitSuperInitializer(SuperInitializer node);
719 E visitGetField(GetField node); 719 E visitGetField(GetField node);
720 E visitCreateBox(CreateBox node); 720 E visitCreateBox(CreateBox node);
721 E visitCreateClosureClass(CreateClosureClass node); 721 E visitCreateInstance(CreateInstance node);
722 } 722 }
723 723
724 abstract class ExpressionVisitor1<E, A> { 724 abstract class ExpressionVisitor1<E, A> {
725 E visitExpression(Expression e, A arg) => e.accept1(this, arg); 725 E visitExpression(Expression e, A arg) => e.accept1(this, arg);
726 E visitVariable(Variable node, A arg); 726 E visitVariable(Variable node, A arg);
727 E visitInvokeStatic(InvokeStatic node, A arg); 727 E visitInvokeStatic(InvokeStatic node, A arg);
728 E visitInvokeMethod(InvokeMethod node, A arg); 728 E visitInvokeMethod(InvokeMethod node, A arg);
729 E visitInvokeMethodDirectly(InvokeMethodDirectly node, A arg); 729 E visitInvokeMethodDirectly(InvokeMethodDirectly node, A arg);
730 E visitInvokeConstructor(InvokeConstructor node, A arg); 730 E visitInvokeConstructor(InvokeConstructor node, A arg);
731 E visitConcatenateStrings(ConcatenateStrings node, A arg); 731 E visitConcatenateStrings(ConcatenateStrings node, A arg);
732 E visitConstant(Constant node, A arg); 732 E visitConstant(Constant node, A arg);
733 E visitThis(This node, A arg); 733 E visitThis(This node, A arg);
734 E visitReifyTypeVar(ReifyTypeVar node, A arg); 734 E visitReifyTypeVar(ReifyTypeVar node, A arg);
735 E visitConditional(Conditional node, A arg); 735 E visitConditional(Conditional node, A arg);
736 E visitLogicalOperator(LogicalOperator node, A arg); 736 E visitLogicalOperator(LogicalOperator node, A arg);
737 E visitNot(Not node, A arg); 737 E visitNot(Not node, A arg);
738 E visitLiteralList(LiteralList node, A arg); 738 E visitLiteralList(LiteralList node, A arg);
739 E visitLiteralMap(LiteralMap node, A arg); 739 E visitLiteralMap(LiteralMap node, A arg);
740 E visitTypeOperator(TypeOperator node, A arg); 740 E visitTypeOperator(TypeOperator node, A arg);
741 E visitFunctionExpression(FunctionExpression node, A arg); 741 E visitFunctionExpression(FunctionExpression node, A arg);
742 E visitFieldInitializer(FieldInitializer node, A arg); 742 E visitFieldInitializer(FieldInitializer node, A arg);
743 E visitSuperInitializer(SuperInitializer node, A arg); 743 E visitSuperInitializer(SuperInitializer node, A arg);
744 E visitGetField(GetField node, A arg); 744 E visitGetField(GetField node, A arg);
745 E visitCreateBox(CreateBox node, A arg); 745 E visitCreateBox(CreateBox node, A arg);
746 E visitCreateClosureClass(CreateClosureClass node, A arg); 746 E visitCreateInstance(CreateInstance node, A arg);
747 } 747 }
748 748
749 abstract class StatementVisitor<S> { 749 abstract class StatementVisitor<S> {
750 S visitStatement(Statement s) => s.accept(this); 750 S visitStatement(Statement s) => s.accept(this);
751 S visitLabeledStatement(LabeledStatement node); 751 S visitLabeledStatement(LabeledStatement node);
752 S visitAssign(Assign node); 752 S visitAssign(Assign node);
753 S visitReturn(Return node); 753 S visitReturn(Return node);
754 S visitBreak(Break node); 754 S visitBreak(Break node);
755 S visitContinue(Continue node); 755 S visitContinue(Continue node);
756 S visitIf(If node); 756 S visitIf(If node);
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 916
917 visitSetField(SetField node) { 917 visitSetField(SetField node) {
918 visitExpression(node.object); 918 visitExpression(node.object);
919 visitExpression(node.value); 919 visitExpression(node.value);
920 visitStatement(node.next); 920 visitStatement(node.next);
921 } 921 }
922 922
923 visitCreateBox(CreateBox node) { 923 visitCreateBox(CreateBox node) {
924 } 924 }
925 925
926 visitCreateClosureClass(CreateClosureClass node) { 926 visitCreateInstance(CreateInstance node) {
927 node.arguments.forEach(visitExpression); 927 node.arguments.forEach(visitExpression);
928 } 928 }
929 } 929 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698