docs: function RestError() {
  
      var self = this;
      var parsed = helpers.parseVErrorArgs(arguments);
      var opts = parsed.internalOpts;
  
      // call super
      HttpError.apply(self, _.toArray(arguments));
  
      /**
       * a bit of a misnomer, not really an http code, but rather the name
       * of the error. the equivalent of HttpCode's `code` property.
       * TODO: Not sure why the default here is 'Error' and not 'RestError'?
       * only set the value if it doesnt already exist, as it's defined on the
       * prototype for subclasses.
       * @property
       * @type {String}
       */
      if (opts.restCode) {
          self.restCode = opts.restCode;
      }
  
      /**
       * an object used to render the error when passed
       * to res.send()
       * @property
       * @type {Object}
       */
      self.body = {
          // err.code/err.restCode is used by legacy restify paths, probably
          // originally created to emulate the code property that is created by
          // some native core module errors (i.e., a failed fs.readFile will
          // return a ENOENT error with a err.code of ENOENT).
          //
          // for Http/RestErrors, the code will be the error name but with
          // 'error' truncated from the string. i.e., if the error name is
          // InternalServerError, the code is InternalServer.
          code: opts.restCode || self.restCode,
          message: self.message || ''
      };
  }