Index: sdk/lib/_internal/compiler/implementation/dart_backend/dart_tree_printer.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/dart_backend/dart_tree_printer.dart b/sdk/lib/_internal/compiler/implementation/dart_backend/dart_tree_printer.dart |
index 0d604cba6571dc13b3ea213bed572dafa6ac05b3..30beb55df2ec4867b62118833fb84f6d8356200e 100644 |
--- a/sdk/lib/_internal/compiler/implementation/dart_backend/dart_tree_printer.dart |
+++ b/sdk/lib/_internal/compiler/implementation/dart_backend/dart_tree_printer.dart |
@@ -326,8 +326,11 @@ class TreePrinter { |
} |
} else if (exp is CallMethod) { |
precedence = CALLEE; |
+ tree.Node receiver = exp.object is This |
+ ? null |
+ : makeExp(exp.object, PRIMARY, beginStmt: beginStmt); |
result = new tree.Send( |
- makeExp(exp.object, PRIMARY, beginStmt: beginStmt), |
+ receiver, |
makeIdentifier(exp.methodName), |
argList(exp.arguments.map(makeArgument))); |
} else if (exp is CallNew) { |
@@ -370,9 +373,10 @@ class TreePrinter { |
colon); |
} else if (exp is FieldExpression) { |
precedence = PRIMARY; |
- result = new tree.Send( |
- makeExp(exp.object, PRIMARY, beginStmt: beginStmt), |
- makeIdentifier(exp.fieldName)); |
+ tree.Node receiver = exp.object is This |
+ ? null |
+ : makeExp(exp.object, PRIMARY, beginStmt: beginStmt); |
+ result = new tree.Send(receiver, makeIdentifier(exp.fieldName)); |
} else if (exp is FunctionExpression) { |
precedence = PRIMARY; |
if (beginStmt && exp.name != null) { |