anchor.diff:        return false;
       }
   
  -    rewritTo(Statement statement) {
  +    rewiteStatement(Statement statement) {
         if (statement is Block) {
           Link statements = statement.statements.nodes;
           if (!statements.isEmpty() && statements.tail.isEmpty()) {
  
positive.code:       return statement;
      }
  
      rewriteBody(Statement body) {
        if (body is !Block) return visit(body);
        Block block = body;
        NodeList statements = block.statements;
        LinkBuilder<Statement> builder = new LinkBuilder<Statement>();
        for (Statement statement in statements.nodes) {
          if (!shouldOmit(statement)) {
            builder.addLast(visit(rewritTo(statement)));
          }
        }
        return new Block(rewriteNodeList(statements, builder.toLink()));
      }
  
      return rewriteFunctionExpression(node, rewriteBody(node.body));
    }
  }
  
  
negative.code:   FunctionBodyRewriter(this.compiler, originalTreeElements)
        : super(originalTreeElements);
  
    visitBlock(Block block) {
      shouldOmit(Statement statement) {
        if (statement is EmptyStatement) return true;
        if (statement is ExpressionStatement) {
  