anchor.diff:      return null;
     }
   
  -  TreeNode visitReturnStatement(ReturnStatement stmt) {
  -    if (stmt.expression != null) {
  -      stmt.expression = expressionRewriter.rewrite(stmt.expression, statements)
  -        ..parent = stmt;
  -    }
  -    statements.add(stmt);
  -    return null;
  -  }
  -
     TreeNode visitTryCatch(TryCatch stmt) {
       ++currentTryDepth;
       stmt.body = visitDelimited(stmt.body)..parent = stmt;
  
positive.code:   final VariableDeclaration catchErrorContinuationVariable =
        new VariableDeclaration(":async_op_error");
  
    ExpressionLifter expressionRewriter;
  
    AsyncRewriterBase(helper, enclosingFunction)
  
negative.code:   }
  
    TreeNode visitReturnStatement(ReturnStatement node) {
      // Async* functions cannot return a value.
      assert(node.expression == null || node.expression is NullLiteral);
      statements
          .add(new BreakStatement(labeledBody)..fileOffset = node.fileOffset);
      return null;
    }
  }
  
  class AsyncFunctionRewriter extends AsyncRewriterBase {
    VariableDeclaration completerVariable;
    VariableDeclaration returnVariable;
  
    AsyncFunctionRewriter(helper, enclosingFunction)
        : super(helper, enclosingFunction);
  