anchor.diff:        _ancestor = old._ancestor;
         assert(_renderObject != null);
       }
  -    if (inDebugBuild) {
  -      try {
  -        throw null;
  -      } catch (_, stack) {
  -        _renderObject.debugExceptionContext = stack;
  -      }
  -    }
  +    assert(() {
  +      _renderObject.debugExceptionContext = Component._debugLastComponent;
  +      return true;
  +    });
       assert(_renderObject == renderObject); // in case a subclass reintroduces it
       assert(renderObject != null);
       assert(mounted);
  
positive.code:       : _order = _currentOrder + 1,
          super._withKey(key);
  
    bool _isBuilding = false;
  
    bool _dirty = true;
  
  
negative.code:     _child = syncChild(_child, oldChild, slot);
      assert(_child != null);
      assert(_child.parent == this);
  
      assert(() {
        _debugIsBuilding = false;
        _debugLastComponent = _debugPreviousComponent;
        return true;
      });
  
      _dirty = false;
      _renderObject = _child.renderObject;
  