anchor.diff:          new js.Binary('===', generateStateUse(), new js.LiteralNumber('0'));
       js.Expression condition = new js.Binary('&&', stateEquals0, pop());
       // TODO(ngeoffray): Put the condition initialization in the
  -    // [setup] buffer.
  +    // arguments?
       List<HBailoutTarget> targets = node.thenBlock.bailoutTargets;
       for (int i = 0, len = targets.length; i < len; i++) {
         js.VariableUse stateRef = generateStateUse();
  
positive.code:       compiler.internalError('dominated.length = ${dominated.length}',
                               instruction: node);
      }
      if (dominated.length == 2 && !identical(currentBlock, currentGraph.entry)) {
        compiler.internalError('currentBlock !== currentGraph.entry',
                               instruction: node);
      }
      assert(dominated[0] == currentBlock.successors[0]);
      visitBasicBlock(dominated[0]);
    }
  
  
negative.code:   }
  
    visitGoto(HGoto node) {
      HBasicBlock block = node.block;
      assert(block.successors.length == 1);
      List<HBasicBlock> dominated = block.dominatedBlocks;
      // With the exception of the entry-node which dominates its successor
      // and the exit node, no block finishing with a 'goto' can have more than
      // one dominated block (since it has only one successor).
  