anchor.diff:          isFinal: true);
       statements.add(completerVariable);
   
  -    super.setupAsyncContinuations(statements);
  +    returnVariable = new VariableDeclaration(":return_value");
  +    statements.add(returnVariable);
  +
  +    setupAsyncContinuations(statements);
   
       // new Future.microtask(:async_op);
       var newMicrotaskStatement = new ExpressionStatement(new StaticInvocation(
  
positive.code:         ])));
    }
  
    TreeNode visitYieldStatement(YieldStatement stmt) {
      Expression expr = expressionRewriter.rewrite(stmt.expression, statements);
  
  
negative.code:     controllerVariable = new VariableDeclaration(":controller");
      statements.add(controllerVariable);
  
      setupAsyncContinuations(statements);
  
      // :controller = new _AsyncController(:async_op);
      var arguments =
  