| Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
| index 238a3fc354178c391ded72dc64656a50ce0dca43..8c830953838382a16ce1e888ec5a12cca7b4c944 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
| @@ -353,6 +353,11 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
|
| return giveup(node, 'await for');
|
| }
|
|
|
| + visitAwait(ast.Await node) {
|
| + ir.Primitive value = visit(node.expression);
|
| + return irBuilder.buildAwait(value);
|
| + }
|
| +
|
| visitSyncForIn(ast.SyncForIn node) {
|
| // [node.declaredIdentifier] can be either an [ast.VariableDefinitions]
|
| // (defining a new local variable) or a send designating some existing
|
| @@ -2178,9 +2183,12 @@ class DartCapturedVariables extends ast.Visitor {
|
| visitFunctionExpression(ast.FunctionExpression node) {
|
| FunctionElement oldFunction = currentFunction;
|
| currentFunction = elements[node];
|
| - if (currentFunction.asyncMarker != AsyncMarker.SYNC) {
|
| - giveup(node, "cannot handle async/sync*/async* functions");
|
| +
|
| + if (currentFunction.asyncMarker != AsyncMarker.SYNC &&
|
| + currentFunction.asyncMarker != AsyncMarker.ASYNC) {
|
| + giveup(node, "cannot handle sync*/async* functions");
|
| }
|
| +
|
| if (node.initializers != null) {
|
| insideInitializer = true;
|
| visit(node.initializers);
|
|
|