anchor.diff:      assert(_perf.stopTimer(timerId) != false);
   
       if (lastDirtyWatch == null) {
  -      _digestUpdatePerfCounters();
         _digestHandleQueue('ng.outerAsync', _outerAsyncQueue);
         return;
       }
  
positive.code:         }
        }
      } while ((scope = _digestComputeNextScope(scope)) != null);
      return null;
    }
  
  
    _Watch _digestComputeLastDirtyUntil(_Watch stopWatch, List<String> log) {
      Scope scope = this;
      do {
        for (_Watch watch = scope._watchers.head; watch != null; watch = watch.next) {
          if (identical(stopWatch, watch)) return null;
          var last = watch.last;
          var value = watch.get(scope);
  
negative.code: 
  
    _Watch _digestComputeLastDirty() {
      int watcherCount = 0;
      int scopeCount = 0;
      Scope scope = this;
      do {
        _WatchList watchers = scope._watchers;
        watcherCount += watchers.length;
        scopeCount++;
        for (_Watch watch = watchers.head; watch != null; watch = watch.next) {
          var last = watch.last;
          var value = watch.get(scope);
          if (!_identical(value, last)) {
  