anchor.diff:          if (coreFuture._hasError) {
             // Case 1 from above. Delay completion to enable the user to register
             // callbacks.
  -          _markPendingCompletion();
  +          _setPendingComplete();
             _zone.scheduleMicrotask(() {
               _chainCoreFuture(coreFuture, this);
             });
  
positive.code:         _propagateToListeners(source, listener);
        }
        _FutureListener listener = listeners;
        // Do the actual propagation.
        // Set initial state of listenerHasError and listenerValueOrError. These
        // variables are updated with the outcome of potential callbacks.
        bool listenerHasError = hasError;
        final sourceResult = source._resultOrListeners;
        var listenerValueOrError = sourceResult;
  
        // Only if we either have an error or callbacks, go into this, somewhat
  
negative.code:   static const int _PENDING_COMPLETE = 1;
    /// The future has been chained to another future. The result of that
    /// other future becomes the result of this future as well.
    /// [resultOrListeners] contains the source future.
    static const int _CHAINED = 2;
    /// The future has been completed with a value result.
    static const int _VALUE = 4;
  