anchor.diff:      controllerVariable = new VariableDeclaration(":controller");
       statements.add(controllerVariable);
   
  -    super.setupAsyncContinuations(statements);
  +    setupAsyncContinuations(statements);
   
       // :controller = new _AsyncController(:async_op);
       var arguments =
  
positive.code:         isFinal: true);
      statements.add(completerVariable);
  
      super.setupAsyncContinuations(statements);
  
      // new Future.microtask(:async_op);
      var newMicrotaskStatement = new ExpressionStatement(new StaticInvocation(
  
negative.code:         ])));
    }
  
    Statement buildReturn(Statement body) {
      // Async* functions cannot return a value.  The returns from the function
      // have been translated into breaks from the labeled body.
      return new Block(<Statement>[
        body,
        new ExpressionStatement(new MethodInvocation(
            new VariableGet(controllerVariable),
            new Name("close", helper.asyncLibrary),
            new Arguments(<Expression>[]))),
        new ReturnStatement()
      ]);
    }
  
    TreeNode visitYieldStatement(YieldStatement stmt) {
      Expression expr = expressionRewriter.rewrite(stmt.expression, statements);
  
  