| Index: pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| index da111581ca403443c11e4acec84d2a09b83f3d32..125b1646f3949bd0b78d4849270491588bf75b2a 100644
|
| --- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| @@ -395,6 +395,13 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
| }
|
|
|
| @override
|
| + js.Expression visitAssign(tree_ir.Assign node) {
|
| + return new js.Assignment(
|
| + buildVariableAccess(node.variable),
|
| + visitExpression(node.value));
|
| + }
|
| +
|
| + @override
|
| void visitContinue(tree_ir.Continue node) {
|
| tree_ir.Statement fallthrough = this.fallthrough;
|
| if (node.target.binding == fallthrough) {
|
| @@ -444,17 +451,6 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
| }
|
|
|
| @override
|
| - void visitAssign(tree_ir.Assign node) {
|
| - tree_ir.Expression value = node.value;
|
| - js.Expression definition = visitExpression(value);
|
| -
|
| - accumulator.add(new js.ExpressionStatement(new js.Assignment(
|
| - buildVariableAccess(node.variable),
|
| - definition)));
|
| - visitStatement(node.next);
|
| - }
|
| -
|
| - @override
|
| void visitBreak(tree_ir.Break node) {
|
| tree_ir.Statement fallthrough = this.fallthrough;
|
| if (node.target.binding.next == fallthrough) {
|
| @@ -560,14 +556,12 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
| }
|
|
|
| @override
|
| - void visitSetField(tree_ir.SetField node) {
|
| + js.Assignment visitSetField(tree_ir.SetField node) {
|
| js.PropertyAccess field =
|
| new js.PropertyAccess.field(
|
| visitExpression(node.object),
|
| glue.instanceFieldPropertyName(node.field));
|
| - js.Assignment asn = new js.Assignment(field, visitExpression(node.value));
|
| - accumulator.add(new js.ExpressionStatement(asn));
|
| - visitStatement(node.next);
|
| + return new js.Assignment(field, visitExpression(node.value));
|
| }
|
|
|
| js.Expression buildStaticHelperInvocation(FunctionElement helper,
|
| @@ -626,6 +620,11 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
| return errorUnsupportedNode(node);
|
| }
|
|
|
| + @override
|
| + visitVariableDeclaration(tree_ir.VariableDeclaration node) {
|
| + return errorUnsupportedNode(node);
|
| + }
|
| +
|
| errorUnsupportedNode(tree_ir.DartSpecificNode node) {
|
| throw "Unsupported node in JS backend: $node";
|
| }
|
|
|