anchor.diff:    }
   }
   
  -typedef Widget Builder();
  -
   class RenderBoxToWidgetAdapter extends AbstractWidgetRoot {
   
     RenderBoxToWidgetAdapter(
  
positive.code:   RenderObject get root => _root;
  
    // Subclasses which implements Nodes that become stateful may return true
    // if the |old| node has become stateful and should be retained.
    // This is called immediately before _sync().
    // Component._retainStatefulNodeIfPossible() calls syncFields().
    bool _retainStatefulNodeIfPossible(Widget old) => false;
  
    void _sync(Widget old, dynamic slot);
    void updateSlot(dynamic newSlot);
  
negative.code: Set<Component> _dirtyComponents = new Set<Component>();
  bool _buildScheduled = false;
  bool _inRenderDirtyComponents = false;
  int _inLayoutCallbackBuilder = 0;
  
  class LayoutCallbackBuilderHandle { bool _active = true; }
  LayoutCallbackBuilderHandle enterLayoutCallbackBuilder() {
    if (!inDebugBuild)
      return null;
    _inLayoutCallbackBuilder += 1;
    return new LayoutCallbackBuilderHandle();
  }
  void exitLayoutCallbackBuilder(LayoutCallbackBuilderHandle handle) {
    if (!inDebugBuild)
      return;
    assert(handle._active);
    handle._active = false;
    _inLayoutCallbackBuilder -= 1;
  }
  
  List<int> _debugFrameTimes = <int>[];
  
  