anchor.diff:    // if branches.
     SubGraph subGraph;
   
  +  // Pending blocks than need to be visited as part of current subgraph.
  +  Queue<HBasicBlock> blockQueue;
  +
     SsaCodeGenerator(
         this._options,
         this._emitter,
  
positive.code:           node, 'node.block != currentGraph.entry');
      }
      assert(dominated[0] == block.successors[0]);
      visitBasicBlock(dominated[0]);
    }
  
    visitLoopBranch(HLoopBranch node) {
  
negative.code:     currentBlockInformation = info;
      bool success = info.accept(this);
      currentBlockInformation = oldBlockInformation;
  
      if (success) {
        HBasicBlock continuation = block.continuation;
        if (continuation != null) {
          continueSubGraph(continuation);
        }
      }
      return success;
    }
  
    void enterSubGraph(HBasicBlock node) {
      assert(blockQueue.isEmpty);
      assert(node != null);
      continueSubGraph(node);
      while (blockQueue.isNotEmpty) {
        node = blockQueue.removeFirst();
        assert(node.isLive);
        assert(subGraph.contains(node));
  
        // If this node has block-structure based information attached,
        // try using that to traverse from here.
        if (node.blockFlow != null && handleBlockFlow(node.blockFlow)) {
          continue;
        }
  
        iterateBasicBlock(node);
      }
    }
  
    void continueSubGraph(HBasicBlock node) {
      if (!node.isLive) return;
      // Don't follow edges out of the current sub-graph.
      if (!subGraph.contains(node)) return;
      blockQueue.add(node);
    }
  
    void emitAssignment(String destination, String source) {
  