docs: function (onFulfillment, onRejection, label) {
        var parent = this;
        var state = parent._state;
  
        if (state === _rsvpInternal.FULFILLED && !onFulfillment || state === _rsvpInternal.REJECTED && !onRejection) {
          if (_rsvpConfig.config.instrument) {
            _rsvpInstrument.default('chained', parent, parent);
          }
          return parent;
        }
  
        parent._onError = null;
  
        var child = new parent.constructor(_rsvpInternal.noop, label);
        var result = parent._result;
  
        if (_rsvpConfig.config.instrument) {
          _rsvpInstrument.default('chained', parent, child);
        }
  
        if (state) {
          var callback = arguments[state - 1];
          _rsvpConfig.config.async(function () {
            _rsvpInternal.invokeCallback(state, child, callback, result);
          });
        } else {
          _rsvpInternal.subscribe(parent, child, onFulfillment, onRejection);
        }
  
        return child;
      }