anchor.diff:      };
     }
   
  -  visitRethrowExpression(ast.RethrowExpression node) => unimplemented(node);
  -
     visitReturnStatement(ast.ReturnStatement node) => (rk, ek, sk) {
       return (node.expression == null)
           ? rk(make.nullLiteral())
  
positive.code:   List<JumpTarget> breakTargets;
    List<JumpTarget> continueTargets;
  
    visit(ast.AstNode node) => node.accept(this);
  
    Map<String, int> nameCounters;
  
negative.code:     return visit(node.target)(ek, (expr) {
        return sk(make.propertyAccess(expr, node.propertyName));
      });
    };
  
    // `rethrow` is not an expression but a statement in Dart.  The analyzer
    // however parses it as an expression inside an expression statement.
    visitRethrowExpression(ast.RethrowExpression node) => (ek, sk) {
      assert(currentExceptionName != null);
      return sk(make.throwExpression(make.identifier(currentExceptionName)));
    };
  
    visitSuperExpression(ast.SuperExpression node) => (ek, sk) {
  