anchor.diff:      }
   
       if (aspect is _SelectorAspect<T>) {
  -      final selectorDependency = (dependencies ?? _SelectorDependency<T>(_frameId)) as _SelectorDependency<T>;
  -      if (selectorDependency.latestFrameId != _frameId) {
  -        selectorDependency.latestFrameId = _frameId;
  +      final selectorDependency = (dependencies ?? _SelectorDependency<T>()) as _SelectorDependency<T>;
  +      if (_shouldClearSelectors) {
  +        _shouldClearSelectors = false;
           selectorDependency.selectors.clear();
  +      }
  +      if (_shouldClearMutationScheduled == false) {
  +        _shouldClearMutationScheduled = true;
  +        SchedulerBinding.instance.addPostFrameCallback((_) {
  +          _shouldClearSelectors = true;
  +        });
         }
         selectorDependency.selectors.add(aspect);
         setDependencies(dependent, selectorDependency);
  
positive.code: typedef _SelectorAspect<T> = bool Function(T value);
  
  class _SelectorDependency<T> {
    _SelectorDependency(this.latestFrameId);
  
    int latestFrameId;
  
    List<_SelectorAspect<T>> selectors = [];
  }
  
  bool _didWatchFrameId = false;
  int _frameId = 0;
  bool _debugCanSelect = true;
  
  mixin _InheritedProviderScopeMixin<T> on InheritedElement implements InheritedContext<T> {
  
negative.code:   bool _debugInheritLocked = false;
    bool _isNotifyDependentsEnabled = true;
    bool _firstBuild = true;
    bool _shouldClearSelectors = false;
    bool _shouldClearMutationScheduled = false;
  
    @override
    void updateDependencies(Element dependent, Object aspect) {
  