[
  {
    "name": "at",
    "signature": "Array.prototype.at(index)",
    "returns": "any",
    "mutates": false,
    "description": "Returns the element at the given index, accepting negative integers which count back from the end of the array.",
    "ecmaVersion": "ES2022"
  },
  {
    "name": "concat",
    "signature": "Array.prototype.concat(...values)",
    "returns": "Array",
    "mutates": false,
    "description": "Returns a new array formed by merging the original array with one or more arrays and/or values.",
    "ecmaVersion": "ES3"
  },
  {
    "name": "copyWithin",
    "signature": "Array.prototype.copyWithin(target, start, end)",
    "returns": "Array",
    "mutates": true,
    "description": "Shallow-copies a portion of the array to another location within the same array and returns it.",
    "ecmaVersion": "ES2015"
  },
  {
    "name": "entries",
    "signature": "Array.prototype.entries()",
    "returns": "Iterator",
    "mutates": false,
    "description": "Returns a new Array Iterator object that contains the [index, value] pairs for each element.",
    "ecmaVersion": "ES2015"
  },
  {
    "name": "every",
    "signature": "Array.prototype.every(callbackFn, thisArg)",
    "returns": "boolean",
    "mutates": false,
    "description": "Tests whether all elements in the array pass the test implemented by the provided function.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "fill",
    "signature": "Array.prototype.fill(value, start, end)",
    "returns": "Array",
    "mutates": true,
    "description": "Fills all or a portion of the array with a static value and returns the modified array.",
    "ecmaVersion": "ES2015"
  },
  {
    "name": "filter",
    "signature": "Array.prototype.filter(callbackFn, thisArg)",
    "returns": "Array",
    "mutates": false,
    "description": "Creates a new array with all elements that pass the test implemented by the provided function.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "find",
    "signature": "Array.prototype.find(callbackFn, thisArg)",
    "returns": "any",
    "mutates": false,
    "description": "Returns the first element that satisfies the provided testing function, or undefined if none found.",
    "ecmaVersion": "ES2015"
  },
  {
    "name": "findIndex",
    "signature": "Array.prototype.findIndex(callbackFn, thisArg)",
    "returns": "number",
    "mutates": false,
    "description": "Returns the index of the first element that satisfies the provided testing function, or -1 if none found.",
    "ecmaVersion": "ES2015"
  },
  {
    "name": "findLast",
    "signature": "Array.prototype.findLast(callbackFn, thisArg)",
    "returns": "any",
    "mutates": false,
    "description": "Iterates from the end and returns the value of the last element that satisfies the provided testing function.",
    "ecmaVersion": "ES2023"
  },
  {
    "name": "findLastIndex",
    "signature": "Array.prototype.findLastIndex(callbackFn, thisArg)",
    "returns": "number",
    "mutates": false,
    "description": "Iterates from the end and returns the index of the last element that satisfies the provided testing function, or -1.",
    "ecmaVersion": "ES2023"
  },
  {
    "name": "flat",
    "signature": "Array.prototype.flat(depth)",
    "returns": "Array",
    "mutates": false,
    "description": "Creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.",
    "ecmaVersion": "ES2019"
  },
  {
    "name": "flatMap",
    "signature": "Array.prototype.flatMap(callbackFn, thisArg)",
    "returns": "Array",
    "mutates": false,
    "description": "Maps each element using a function and then flattens the result into a new array (equivalent to flat(1) after map).",
    "ecmaVersion": "ES2019"
  },
  {
    "name": "forEach",
    "signature": "Array.prototype.forEach(callbackFn, thisArg)",
    "returns": "undefined",
    "mutates": false,
    "description": "Executes a provided function once for each array element. Always returns undefined.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "includes",
    "signature": "Array.prototype.includes(searchElement, fromIndex)",
    "returns": "boolean",
    "mutates": false,
    "description": "Determines whether an array includes a certain value, using SameValueZero equality (handles NaN correctly).",
    "ecmaVersion": "ES2016"
  },
  {
    "name": "indexOf",
    "signature": "Array.prototype.indexOf(searchElement, fromIndex)",
    "returns": "number",
    "mutates": false,
    "description": "Returns the first index at which a given element can be found, or -1 if not present. Uses strict equality.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "join",
    "signature": "Array.prototype.join(separator)",
    "returns": "string",
    "mutates": false,
    "description": "Joins all elements of the array into a string, separated by the specified separator (default: comma).",
    "ecmaVersion": "ES1"
  },
  {
    "name": "keys",
    "signature": "Array.prototype.keys()",
    "returns": "Iterator",
    "mutates": false,
    "description": "Returns a new Array Iterator object that contains the numeric indices for each element in the array.",
    "ecmaVersion": "ES2015"
  },
  {
    "name": "lastIndexOf",
    "signature": "Array.prototype.lastIndexOf(searchElement, fromIndex)",
    "returns": "number",
    "mutates": false,
    "description": "Returns the last index at which a given element can be found, or -1 if not present. Searches backwards.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "map",
    "signature": "Array.prototype.map(callbackFn, thisArg)",
    "returns": "Array",
    "mutates": false,
    "description": "Creates a new array populated with the results of calling a provided function on every element.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "pop",
    "signature": "Array.prototype.pop()",
    "returns": "any",
    "mutates": true,
    "description": "Removes the last element from an array and returns that element, changing the length of the array.",
    "ecmaVersion": "ES3"
  },
  {
    "name": "push",
    "signature": "Array.prototype.push(...elements)",
    "returns": "number",
    "mutates": true,
    "description": "Appends one or more elements to the end of an array and returns the new length of the array.",
    "ecmaVersion": "ES3"
  },
  {
    "name": "reduce",
    "signature": "Array.prototype.reduce(callbackFn, initialValue)",
    "returns": "any",
    "mutates": false,
    "description": "Executes a reducer function on each element of the array (left-to-right), accumulating a single result value.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "reduceRight",
    "signature": "Array.prototype.reduceRight(callbackFn, initialValue)",
    "returns": "any",
    "mutates": false,
    "description": "Executes a reducer function on each element of the array (right-to-left), accumulating a single result value.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "reverse",
    "signature": "Array.prototype.reverse()",
    "returns": "Array",
    "mutates": true,
    "description": "Reverses the order of elements in the array in place and returns a reference to the same array.",
    "ecmaVersion": "ES1"
  },
  {
    "name": "shift",
    "signature": "Array.prototype.shift()",
    "returns": "any",
    "mutates": true,
    "description": "Removes the first element from an array and returns that element, changing the length of the array.",
    "ecmaVersion": "ES3"
  },
  {
    "name": "slice",
    "signature": "Array.prototype.slice(start, end)",
    "returns": "Array",
    "mutates": false,
    "description": "Returns a shallow copy of a portion of the array into a new array. The original array is not modified.",
    "ecmaVersion": "ES3"
  },
  {
    "name": "some",
    "signature": "Array.prototype.some(callbackFn, thisArg)",
    "returns": "boolean",
    "mutates": false,
    "description": "Tests whether at least one element in the array passes the test implemented by the provided function.",
    "ecmaVersion": "ES5"
  },
  {
    "name": "sort",
    "signature": "Array.prototype.sort(compareFn)",
    "returns": "Array",
    "mutates": true,
    "description": "Sorts the elements of an array in place (default: ascending, string Unicode order) and returns the sorted array.",
    "ecmaVersion": "ES1"
  },
  {
    "name": "splice",
    "signature": "Array.prototype.splice(start, deleteCount, ...items)",
    "returns": "Array",
    "mutates": true,
    "description": "Changes the contents of an array by removing or replacing existing elements and/or adding new elements in place.",
    "ecmaVersion": "ES3"
  },
  {
    "name": "toLocaleString",
    "signature": "Array.prototype.toLocaleString(locales, options)",
    "returns": "string",
    "mutates": false,
    "description": "Returns a string representing the elements of the array using their toLocaleString methods, separated by a locale-specific string.",
    "ecmaVersion": "ES3"
  },
  {
    "name": "toReversed",
    "signature": "Array.prototype.toReversed()",
    "returns": "Array",
    "mutates": false,
    "description": "Returns a new array with the elements in reversed order. Non-mutating counterpart to reverse().",
    "ecmaVersion": "ES2023"
  },
  {
    "name": "toSorted",
    "signature": "Array.prototype.toSorted(compareFn)",
    "returns": "Array",
    "mutates": false,
    "description": "Returns a new array with the elements sorted. Non-mutating counterpart to sort().",
    "ecmaVersion": "ES2023"
  },
  {
    "name": "toSpliced",
    "signature": "Array.prototype.toSpliced(start, deleteCount, ...items)",
    "returns": "Array",
    "mutates": false,
    "description": "Returns a new array with some elements removed and/or replaced at a given index. Non-mutating counterpart to splice().",
    "ecmaVersion": "ES2023"
  },
  {
    "name": "toString",
    "signature": "Array.prototype.toString()",
    "returns": "string",
    "mutates": false,
    "description": "Returns a string representing the specified array and its elements, with elements separated by commas.",
    "ecmaVersion": "ES1"
  },
  {
    "name": "unshift",
    "signature": "Array.prototype.unshift(...elements)",
    "returns": "number",
    "mutates": true,
    "description": "Adds one or more elements to the beginning of an array and returns the new length of the array.",
    "ecmaVersion": "ES3"
  },
  {
    "name": "values",
    "signature": "Array.prototype.values()",
    "returns": "Iterator",
    "mutates": false,
    "description": "Returns a new Array Iterator object that contains the values for each index in the array.",
    "ecmaVersion": "ES2015"
  },
  {
    "name": "with",
    "signature": "Array.prototype.with(index, value)",
    "returns": "Array",
    "mutates": false,
    "description": "Returns a new array with the element at the given index replaced with the given value. Non-mutating.",
    "ecmaVersion": "ES2023"
  }
]
