anchor.diff:    App() : super(stateful: true) {
       _appView = new _AppView();
       _scheduleComponentForRender(this);
  +    _mounted = true;
     }
   
     AppView _appView;
  
positive.code:   }
  }
  
  
  Set<Component> _mountedComponents = new HashSet<Component>();
  Set<Component> _unmountedComponents = new HashSet<Component>();
  
  void _enqueueDidMount(Component c) {
    assert(!_notifingMountStatus);
    _mountedComponents.add(c);
  }
  
  void _enqueueDidUnmount(Component c) {
    assert(!_notifingMountStatus);
    _unmountedComponents.add(c);
  }
  
  bool _notifingMountStatus = false;
  
  void _notifyMountStatusChanged() {
    try {
      _notifingMountStatus = true;
      _unmountedComponents.forEach((c) => c._didUnmount());
      _mountedComponents.forEach((c) => c._didMount());
      _mountedComponents.clear();
      _unmountedComponents.clear();
    } finally {
      _notifingMountStatus = false;
    }
  }
  
  List<Component> _dirtyComponents = new List<Component>();
  bool _buildScheduled = false;
  bool _inRenderDirtyComponents = false;
  
negative.code:     return ancestor;
    }
  
    void removeChild(UINode node) {
      node.remove();
    }
  
    // Returns the child which should be retained as the child of this node.
    UINode syncChild(UINode node, UINode oldNode, dynamic slot) {
  
      if (node == oldNode) {
        assert(node == null || node.mounted);
        return node; // Nothing to do. Subtrees must be identical.
      }
  
      if (node == null) {
        // the child in this slot has gone away
        assert(oldNode.mounted);
        removeChild(oldNode);
        assert(!oldNode.mounted);
        return null;
      }
  
      if (oldNode != null && node._key == oldNode._key && node._willSync(oldNode)) {
        assert(oldNode.mounted);
        assert(!node.mounted);
        oldNode._sync(node, slot);
        assert(oldNode.root is RenderObject);
        return oldNode;
      }
  
      if (oldNode != null && node._key != oldNode._key) {
        assert(oldNode.mounted);
        removeChild(oldNode);
        oldNode = null;
      }
  
      assert(!node.mounted);
      node.setParent(this);
      node._sync(oldNode, slot);
      assert(node.root is RenderObject);
      return node;
    }
  