anchor.diff:        oldKeyedChildren = new Map<Key, Widget>();
         while (childrenTop <= oldChildrenBottom) {
           Widget oldChild = oldChildren[oldChildrenBottom];
  -        if (oldChild.isFromOldGeneration) {
  -          assert(oldChild.mounted);
  -          if (oldChild.key != null) {
  -            oldKeyedChildren[oldChild.key] = oldChild;
  -          } else {
  +        assert(oldChild.mounted);
  +        if (oldChild.key != null) {
  +          oldKeyedChildren[oldChild.key] = oldChild;
  +        } else {
  +          // Let's give up trying to sync this node with a new node. If this
  +          // child is from the old generation, then we'll remove it from our
  +          // child list. It it's not, then that means it's already been synced
  +          // elsewhere and we should leave it alone.
  +          if (oldChild.isFromOldGeneration)
               syncChild(null, oldChild, null);
  -          }
  -        } // else the node was probably moved elsewhere, ignore it
  +        }
           oldChildrenBottom -= 1;
         }
       }
  
positive.code:     // top of the lists
      while ((childrenTop <= oldChildrenBottom) && (childrenTop <= newChildrenBottom)) {
        Widget oldChild = oldChildren[childrenTop];
        if (!oldChild.isFromOldGeneration)
          break;
        assert(oldChild.mounted);
        Widget newChild = newChildren[childrenTop];
        if (!Widget._canSync(oldChild, newChild))
          break;
        childrenTop += 1;
  
negative.code:       childrenTop -= 1;
        Widget oldChild = oldChildren[childrenTop];
        assert(oldChild.mounted);
        Widget newChild = newChildren[childrenTop];
        assert(Widget._canSync(oldChild, newChild));
        newChild = syncChild(newChild, oldChild, nextSibling);
        assert(newChild.mounted);
  