anchor.diff:      if (oldComponent == null || !oldComponent._stateful)
         return false;
   
  +    assert(runtimeType == oldComponent.runtimeType);
       assert(key == oldComponent.key);
   
       // Make |this|, the newly-created object, into the "old" Component, and kill it
  
positive.code:       return null;
      }
  
      if (oldNode != null && node._key == oldNode._key && node._retainStatefulNodeIfPossible(oldNode)) {
        assert(oldNode.mounted);
        assert(!node.mounted);
        oldNode._sync(node, slot);
  
negative.code:       currentNode = children[endIndex - 1];
        oldNode = oldChildren[oldEndIndex - 1];
  
        if (currentNode.runtimeType != oldNode.runtimeType || currentNode.key != oldNode.key) {
          break;
        }
  
  