| Index: pkg/dev_compiler/lib/src/js_ast/template.dart
|
| diff --git a/pkg/dev_compiler/lib/src/js_ast/template.dart b/pkg/dev_compiler/lib/src/js_ast/template.dart
|
| index 5ecb89ef819a832c3a193274ee841910d92c121f..7fd8b2d1bea19df0dd3cc810af11facc6aa19ea0 100644
|
| --- a/pkg/dev_compiler/lib/src/js_ast/template.dart
|
| +++ b/pkg/dev_compiler/lib/src/js_ast/template.dart
|
| @@ -409,7 +409,7 @@ class InstantiatorGeneratorVisitor implements NodeVisitor<Instantiator> {
|
| Instantiator makeBody = visit(node.body);
|
| return (arguments) {
|
| return new For(makeInit(arguments), makeCondition(arguments),
|
| - makeUpdate(arguments), makeBody(arguments));
|
| + makeUpdate(arguments)?.toVoidExpression(), makeBody(arguments));
|
| };
|
| }
|
|
|
| @@ -460,8 +460,9 @@ class InstantiatorGeneratorVisitor implements NodeVisitor<Instantiator> {
|
| (arguments) => new Break(node.targetLabel);
|
|
|
| Instantiator visitReturn(Return node) {
|
| - Instantiator makeExpression = visitNullable(node.value);
|
| - return (arguments) => new Return(makeExpression(arguments));
|
| + if (node.value == null) return (args) => new Return();
|
| + Instantiator makeExpression = visit(node.value);
|
| + return (args) => makeExpression(args).toReturn();
|
| }
|
|
|
| Instantiator visitDartYield(DartYield node) {
|
| @@ -552,8 +553,8 @@ class InstantiatorGeneratorVisitor implements NodeVisitor<Instantiator> {
|
| String op = node.op;
|
| Instantiator makeValue = visitNullable(node.value);
|
| return (arguments) {
|
| - return new Assignment.compound(
|
| - makeLeftHandSide(arguments), op, makeValue(arguments));
|
| + return makeValue(arguments)
|
| + .toAssignExpression(makeLeftHandSide(arguments), op);
|
| };
|
| }
|
|
|
|
|