anchor.diff:      }
   
       HInstruction condition = node.inputs[0];
  -    int preVisitedBlocks = 0;
  -    List<HBasicBlock> dominated = node.block.dominatedBlocks;
       HIfBlockInformation info = node.blockInformation.body;
  -    HBasicBlock joinBlock = node.joinBlock;
       if (condition.isConstant()) {
         HConstant constant = condition;
         if (constant.constant.isTrue()) {
  
positive.code:     // branches, and is not the join block.
      // Depending on how the then/else branches terminate
      // (e.g., return/throw/break) there can be any number of these.
      int dominatedCount = dominated.length;
      for (int i = preVisitedBlocks; i < dominatedCount; i++) {
        HBasicBlock dominatedBlock = dominated[i];
        assert(dominatedBlock.dominator === node.block);
        visitBasicBlock(dominatedBlock);
      }
    }
  
  
negative.code:       } else if (node.hasElse) {
          generateStatements(info.elseGraph);
        }
      } else {
        startIf(node);
        assert(!isGenerateAtUseSite(node));
        startThen(node);
        generateStatements(info.thenGraph);
        endThen(node);
        HStatementInformation elseGraph = info.elseGraph;
        if (node.hasElse && !isEmptyElse(elseGraph.start, elseGraph.end)) {
          startElse(node);
          generateStatements(elseGraph);
          endElse(node);
        }
        endIf(node);
      }
  
      HBasicBlock joinBlock = node.joinBlock;
      if (joinBlock !== null && joinBlock.dominator !== node.block) {
        // The join block is dominated by a block in one of the branches.
        // The subgraph traversal never reached it, so we visit it here
  