anchor.diff:  
   void _asyncRunCallbackLoop() {
     while (_nextCallback != null) {
  +    _lastPriorityCallback = null;
       _AsyncCallbackEntry entry = _nextCallback;
       _nextCallback = entry.next;
       if (_nextCallback == null) _lastCallback = null;
  
positive.code:   try {
      _asyncRunCallbackLoop();
    } finally {
      _isInCallbackLoop = false;
      if (_nextCallback != null) _AsyncRun._scheduleImmediate(_asyncRunCallback);
    }
  
negative.code:  * It is only used internally to give higher priority to error reporting.
   */
  void _schedulePriorityAsyncCallback(callback) {
    _AsyncCallbackEntry entry = new _AsyncCallbackEntry(callback);
    if (_nextCallback == null) {
      _nextCallback = _lastCallback = _lastPriorityCallback = entry;
      if (!_isInCallbackLoop) {
        _AsyncRun._scheduleImmediate(_asyncRunCallback);
      }
    } else if (_lastPriorityCallback == null) {
      entry.next = _nextCallback;
      _nextCallback = _lastPriorityCallback = entry;
    } else {
      entry.next = _lastPriorityCallback.next;
      _lastPriorityCallback.next = entry;
      _lastPriorityCallback = entry;
      if (entry.next == null) {
        _lastCallback = entry;
      }
    }
  }
  
  