docs: def reject(self, reason):
          """
          Reject this promise for a given reason.
          """
          assert self._state==self.PENDING
  
          self._state=self.REJECTED;
          self.reason = reason
          for errback in self._errbacks:
              try:
                  errback(reason)
              except Exception:
                  # Ignore errors in callbacks
                  pass
  
          # We will never call these errbacks again, so allow
          # them to be garbage collected.  This is important since
          # they probably include closures which are binding variables
          # that might otherwise be garbage collected.
          self._errbacks = []