anchor.diff:      newNode._ancestor = _ancestor;
     }
   
  +  RenderObjectWrapper findAncestorRenderObjectWrapper() {
  +    Widget ancestor = parent;
  +    while (ancestor != null && ancestor is! RenderObjectWrapper)
  +      ancestor = ancestor.parent;
  +    return ancestor;
  +  }
  +
     void _sync(RenderObjectWrapper old, dynamic slot) {
       // TODO(abarth): We should split RenderObjectWrapper into two pieces so that
       //               RenderViewObject doesn't need to inherit all this code it
  
positive.code:       _renderObject = createNode();
        assert(_renderObject != null);
        _ancestor = findAncestorRenderObjectWrapper();
        if (_ancestor is RenderObjectWrapper)
          _ancestor.insertChildRenderObject(this, slot);
      } else {
        _renderObject = old.renderObject;
  
negative.code:   // 'slot' is the identifier that the ancestor RenderObjectWrapper uses to know
    // where to put this descendant. If you just defer to a child, then make sure
    // to pass them the slot.
  
    Set<Type> _dependencies;
    Inherited inheritedOfType(Type targetType) {
  