anchor.diff:    }
   
   
  -  void _digestUpdatePerfCounters() {
  -    int scopeCount = 0, watcherCount = 0;
  +  void _digestComputePerfCounters() {
  +    int watcherCount = 0, scopeCount = 0;
       Scope scope = this;
       do {
         scopeCount++;
         watcherCount += scope._watchers.length;
       } while ((scope = _digestComputeNextScope(scope)) != null);
  +    _digestUpdatePerfCounters(watcherCount, scopeCount);
  +  }
  +
  +
  +  void _digestUpdatePerfCounters(int watcherCount, int scopeCount) {
       _perf.counters['ng.scope.watchers'] = watcherCount;
       _perf.counters['ng.scopes'] = scopeCount;
     }
  
positive.code: 
  
    _Watch _digestHandleDirty(Scope scope, _Watch watch, last, value, List<String> log) {
      _Watch result;
      while (true) {
        if (!_identical(value, last)) {
          result = watch;
          if (log != null) log.add(watch.exp == null ? '[unknown]' : watch.exp);
          watch.last = value;
          var fireTimer;
  
negative.code:       assert(_perf.stopTimer(timerId) != false);
  
        if (lastDirtyWatch == null) {
          _digestComputePerfCounters();
          _digestHandleQueue('ng.outerAsync', _outerAsyncQueue);
          return;
        }
  