anchor.diff:    /// Called as part of the rendering pipeline after [flushLayout] and before
     /// [flushPaint].
     void flushCompositingBits() {
  -    Timeline.startSync('Compositing bits');
  +    profile(() { Timeline.startSync('Compositing bits'); });
       _nodesNeedingCompositingBitsUpdate.sort((RenderObject a, RenderObject b) => a.depth - b.depth);
       for (RenderObject node in _nodesNeedingCompositingBitsUpdate) {
         if (node._needsCompositingBitsUpdate && node.owner == this)
           node._updateCompositingBits();
       }
       _nodesNeedingCompositingBitsUpdate.clear();
  -    Timeline.finishSync();
  +    profile(() { Timeline.finishSync(); });
     }
   
     List<RenderObject> _nodesNeedingPaint = <RenderObject>[];
  
positive.code:     String joiner: '; ',
      DiagnosticLevel minLevel: DiagnosticLevel.debug,
    }) {
      final RenderObject debugPreviousActiveLayout = _debugActiveLayout;
      _debugActiveLayout = null;
      final String result = super.toStringShallow(joiner: joiner, minLevel: minLevel);
      _debugActiveLayout = debugPreviousActiveLayout;
      return result;
    }
  
  
negative.code:   // See [RenderObject.invokeLayoutCallback].
    void _enableMutationsToDirtySubtrees(VoidCallback callback) {
      assert(_debugDoingLayout);
      bool oldState;
      assert(() {
        oldState = _debugAllowMutationsToDirtySubtrees;
        _debugAllowMutationsToDirtySubtrees = true;
        return true;
      }());
      try {
        callback();
      } finally {
        assert(() {
          _debugAllowMutationsToDirtySubtrees = oldState;
          return true;
        }());
      }
    }
  
  