| Index: sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart b/sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart
|
| index a9b35c0d30c5a3c2d0ed2397d0c04204dc1c9d5f..4c5f25c5f6c0fd6840c906f105f3b56542fdb360 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart
|
| @@ -43,6 +43,8 @@ class BlockCollector extends Visitor {
|
|
|
| visitVariable(Variable node) {}
|
| visitInvokeStatic(InvokeStatic node) {}
|
| + visitInvokeMethod(InvokeMethod node) {}
|
| + visitInvokeConstructor(InvokeConstructor node) {}
|
| visitConstant(Constant node) {}
|
|
|
| visitLabeledStatement(LabeledStatement node) {
|
| @@ -161,6 +163,14 @@ class TreeTracer extends TracerUtil with Visitor {
|
| String rhs = expr(node.definition);
|
| printStatement(name, "let $name = $rhs");
|
| }
|
| +
|
| + visitInvokeMethod(InvokeMethod node) {
|
| + printStatement(null, expr(node));
|
| + }
|
| +
|
| + visitInvokeConstructor(InvokeConstructor node) {
|
| + printStatement(null, expr(node));
|
| + }
|
|
|
| visitReturn(Return node) {
|
| printStatement(null, "return ${expr(node.value)}");
|
| @@ -200,6 +210,24 @@ class SubexpressionVisitor extends Visitor<String, String> {
|
| String args = node.arguments.map((e) => e.accept(this)).join(', ');
|
| return "$head($args)";
|
| }
|
| +
|
| + String visitInvokeMethod(InvokeMethod node) {
|
| + String receiver = node.receiver.accept(this);
|
| + String name = node.selector.name;
|
| + String args = node.arguments.map((e) => e.accept(this)).join(', ');
|
| + return "$receiver.$name($args)";
|
| + }
|
| +
|
| + String visitInvokeConstructor(InvokeConstructor node) {
|
| + String callName;
|
| + if (node.target.name.isEmpty) {
|
| + callName = '${node.type}';
|
| + } else {
|
| + callName = '${node.type}.${node.target.name}';
|
| + }
|
| + String args = node.arguments.map(visitExpression).join(', ');
|
| + return "new $callName($args)";
|
| + }
|
|
|
| String visitConstant(Constant node) {
|
| return "${node.value}";
|
|
|