code: function GeneralAjaxError(jqXHR, textStatus, errorThrown, options) {
      this.jqXHR = jqXHR;
      this.textStatus = textStatus;
      this.errorThrown = errorThrown;
  
      // ``captureStackTrace`` is not always available.
      if (Error.captureStackTrace) {
        Error.captureStackTrace(this, this.constructor);
      }
      else {
        // This will work on many platforms.
        var fakeError = new Error();
        if (fakeError.stack) {
          this.stack = fakeError.stack;
        }
        // However, IE11 and some other platforms do not set the stack until
        // the error is thrown.
        else {
          try {
            throw fakeError;
          }
          catch (ex) {
            this.stack = ex.stack;
          }
        }
      }
  
      // We try to produce a message that says something useful.
      var message = "Ajax operation failed";
      if (errorThrown) {
        message += ": " + errorThrown + " (" + jqXHR.status + ")";
      }
      else if (textStatus) {
        message += ": " + textStatus;
      }
      message += ".";
  
      // The user wanted verbose errors to be thrown, so be verbose.
      if (options) {
        message += " Called with: " + JSON.stringify(options);
      }
  
      this.message = message;
    }
docs: Base class of all errors raised by this library. All errors raised by this library are subclasses of this class. The library never creates instances of this class that are not instances of children of this class (i.e. no ``new GeneralAjaxError(...)``).