docs: function (args) {
              var separators, hashObject = this.getHashObject();
              // characters that cannot be used in a hash and the equal sign that we use in order to separate keys from
              // values
              var invalidCharactersRegexp = this.__buildRegExpFromArray(["#", "%", "^", "[", "]", "{", "}", "\\", "\"",
                      "<", ">", "="]);
              if (this._typeUtil.isString(args)) {
                  separators = [args];
              } else if (this._typeUtil.isArray(args)) {
                  separators = args;
              } else {
                  return;
              }
              for (var i = 0, len = separators.length; i < len; i++) {
                  if (separators[i].match(invalidCharactersRegexp)) {
                      this.$logError(this.INVALID_SEPARATOR, separators[i]);
                      return;
                  }
              }
  
              this._separators = separators;
              this._separatorRegExp = this.__buildRegExpFromArray(this._separators);
              this._nonEncodableSeparators = this.__getNonEncodedSeparators(this._separators);
              this._nonEncodableSepRegExp = this.__buildRegExpFromArray(this._nonEncodableSeparators);
              if (!ariaUtilsObject.isEmpty(hashObject)) {
                  this.setHash(hashObject);
              }
          }