anchor.diff:      if (thenHasFallthrough) {
         js.Statement elseBody = buildBodyStatement(node.elseStatement);
         accumulator.add(new js.If(condition, thenBody, elseBody));
  +      return null;
       } else {
         // The 'then' body cannot complete normally, so emit a short 'if'
         // and put the 'else' body after it.
         accumulator.add(new js.If.noElse(condition, thenBody));
  -      visitStatement(node.elseStatement);
  -    }
  -  }
  -
  -  @override
  -  void visitLabeledStatement(tree_ir.LabeledStatement node) {
  +      return node.elseStatement;
  +    }
  +  }
  +
  +  @override
  +  visitLabeledStatement(tree_ir.LabeledStatement node) {
       fallthrough.push(node.next);
       js.Statement body = buildBodyStatement(node.body);
       fallthrough.pop();
       accumulator.add(insertLabel(node.label, body));
  -    visitStatement(node.next);
  +    return node.next;
     }
   
     /// Creates a name for [label] if it does not already have one.
  
positive.code:   js.Fun buildFunction(tree_ir.FunctionDefinition function) {
      registerDefaultParameterValues(function.element);
      currentFunction = function.element;
      visitStatement(function.body);
  
      List<js.Parameter> parameters = new List<js.Parameter>();
      Set<tree_ir.Variable> parameterSet = new Set<tree_ir.Variable>();
  
negative.code:   js.Block buildBodyBlock(tree_ir.Statement statement) {
      List<js.Statement> savedAccumulator = accumulator;
      accumulator = <js.Statement>[];
      while (statement != null) {
        statement = visitStatement(statement);
      }
      js.Statement result = new js.Block(accumulator);
      accumulator = savedAccumulator;
      return result;
  