anchor.diff:  // final sky.Tracing _tracing = sky.window.tracing;
   
   final bool _shouldLogRenderDuration = false;
  -final bool _shouldTrace = false;
  -
  -enum _SyncOperation { identical, insertion, stateful, stateless, removal }
   
   /*
    * All Effen nodes derive from UINode. All nodes have a _parent, a _key and
    * can be sync'd.
    */
   abstract class UINode {
  -  String _key;
  -  UINode _parent;
  -  UINode get parent => _parent;
  -  RenderObject root;
  -  bool _defunct = false;
   
     UINode({ Object key }) {
       _key = key == null ? "$runtimeType" : "$runtimeType-$key";
       assert(this is App || _inRenderDirtyComponents); // you should not build the UI tree ahead of time, build it only during build()
     }
   
  +  String _key;
  +  String get key => _key;
  +
  +  UINode _parent;
  +  UINode get parent => _parent;
  +
  +  bool _mounted = false;
  +  bool _wasMounted = false;
  +  bool get mounted => _mounted;
  +  static bool _notifyingMountStatus = false;
  +  static Set<UINode> _mountedChanged = new HashSet<UINode>();
  +
  +  void setParent(UINode newParent) {
  +    assert(!_notifyingMountStatus);
  +    _parent = newParent;
  +    if (newParent == null) {
  +      if (_mounted) {
  +        _mounted = false;
  +        _mountedChanged.add(this);
  +      }
  +    } else {
  +      assert(newParent._mounted);
  +      if (_parent._mounted != _mounted) {
  +        _mounted = _parent._mounted;
  +        _mountedChanged.add(this);
  +      }
  +    }
  +  }
  +
  +  static void _notifyMountStatusChanged() {
  +    try {
  +      _notifyingMountStatus = true;
  +      for (UINode node in _mountedChanged) {
  +        if (node._wasMounted != node._mounted) {
  +          if (node._mounted)
  +            node._didMount();
  +          else
  +            node._didUnmount();
  +          node._wasMounted = node._mounted;
  +        }
  +      });
  +      _mountedChanged.clear();
  +    } finally {
  +      _notifyingMountStatus = false;
  +    }
  +  }
  +  void _didMount() { }
  +  void _didUnmount() { }
  +
  +  RenderObject root;
  +
     // Subclasses which implements Nodes that become stateful may return true
     // if the |old| node has become stateful and should be retained.
     bool _willSync(UINode old) => false;
  
positive.code:   void setState(Function fn()) {
      _stateful = true;
      fn();
      if (_isBuilding || _dirty || _defunct)
        return;
  
      _dirty = true;
  
negative.code:     _inRenderDirtyComponents = false;
    }
  
    UINode._notifyMountStatusChanged();
  
    if (_shouldLogRenderDuration) {
      sw.stop();
  