anchor.diff:          stop = false;
         }
   
  -      // suffix
  +      // Update nodes with the same key at the end.
         while (aEndNode.key == bEndNode.key) {
           aEndNode.update(bEndNode, context);
   
  
positive.code:     int aEnd = a.length - 1;
      int bEnd = b.length - 1;
  
      // prefix
      while (aStart <= aEnd && bStart <= bEnd) {
        final aNode = a[aStart];
        final bNode = b[bStart];
  
negative.code:         bEndNode = b[bEnd];
  
          stop = false;
          continue outer;
        }
  
        // Move nodes from right to left.
        while (aEndNode.key == bStartNode.key) {
          aEndNode.update(bStartNode, context);
  
  