code: function normalizeMultiArgReportCall() {
    // If there is one argument, it is considered to be a new-style call already.
    if (arguments.length === 1) {
      return arguments[0];
    }
  
    // If the second argument is a string, the arguments are interpreted as [node, message, data, fix].
    if (typeof arguments[1] === 'string') {
      return {
        node: arguments[0],
        message: arguments[1],
        data: arguments[2],
        fix: arguments[3],
      };
    }
  
    // Otherwise, the arguments are interpreted as [node, loc, message, data, fix].
    return {
      node: arguments[0],
      loc: arguments[1],
      message: arguments[2],
      data: arguments[3],
      fix: arguments[4],
    };
  }
docs: Translates a multi-argument context.report() call into a single object argument call
  @param {...*} arguments A list of arguments passed to `context.report`
  @returns {MessageDescriptor} A normalized object containing report information