anchor.diff:            trace.record(new UserCallbackAsyncExitEvent());
             asyncCount--;
             if (asyncCount == 0) {
  +            inOnDone = true;
               onDone();
             }
           }
  
positive.code:     } finally {
        asyncCount--;
        if (asyncCount == 0) {
          onDone();
        }
      }
  
negative.code:   void handleError(error, EventSink<Response> sink, Trace trace) {
      trace.record(new UserCallbackQueuedEvent());
      _openCallbacks++;
      _runZonedWithOnDone(() {
        sink.addError(error);
      }, () {
        trace.record(new UserCallbackDoneEvent());
        _openCallbacks--;
        if (_openCallbacks == 0 && _closed && !_sentDone) {
  