anchor.diff:     */
     bool get isDestroyed {
       var scope = this;
  -    var root = rootScope;
       while(scope != null) {
  -      if (scope == root) {
  -        return false;
  -      }
  +      if (scope == rootScope) return false;
         scope = scope._parentScope;
       }
       return true;
  
positive.code:     broadcast(ScopeEvent.DESTROY);
      _Streams.destroy(this);
  
      var prev = _prev;
      var next = _next;
      if (prev == null) {
        _parentScope._childHead = next;
      } else {
        prev._next = next;
      }
      if (next == null) {
        _parentScope._childTail = prev;
      } else {
        next._prev = prev;
      }
  
      this._next = this._prev = null;
  
      _readWriteGroup.remove();
      _readOnlyGroup.remove();
  
negative.code:         };
        } else if (expression.startsWith(':')) {
          expression = expression.substring(1);
          fn = (value, last) => value == null ? null : reactionFn(value, last);
        }
        ast = rootScope._astParser(expression, context: context, filters: filters);
      } else {
  