summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/Array/prototype/findLast/maximum-index.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/built-ins/Array/prototype/findLast/maximum-index.js')
-rw-r--r--js/src/tests/test262/built-ins/Array/prototype/findLast/maximum-index.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Array/prototype/findLast/maximum-index.js b/js/src/tests/test262/built-ins/Array/prototype/findLast/maximum-index.js
new file mode 100644
index 0000000000..32259c3a62
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Array/prototype/findLast/maximum-index.js
@@ -0,0 +1,38 @@
+// Copyright (C) 2023 Richard Gibson. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-array.prototype.findlast
+description: >
+ Support the maximum valid integer index.
+info: |
+ Array.prototype.findLast ( predicate [ , thisArg ] )
+
+ 1. Let O be ? ToObject(this value).
+ 2. Let len be ? LengthOfArrayLike(O).
+
+ LengthOfArrayLike ( obj )
+
+ 1. Return ℝ(? ToLength(? Get(obj, "length"))).
+
+ ToLength ( argument )
+
+ 1. Let len be ? ToIntegerOrInfinity(argument).
+ 2. If len ≤ 0, return +0𝔽.
+ 3. Return 𝔽(min(len, 2**53 - 1)).
+features: [array-find-from-last]
+---*/
+
+var tooBigLength = Number.MAX_VALUE;
+var maxExpectedIndex = 9007199254740990;
+var arrayLike = { length: tooBigLength };
+var calledWithIndex = [];
+
+Array.prototype.findLast.call(arrayLike, function(_value, index) {
+ calledWithIndex.push(index);
+ return true;
+});
+
+assert.sameValue(calledWithIndex.length, 1, 'predicate invoked once');
+assert.sameValue(calledWithIndex[0], maxExpectedIndex);
+
+reportCompare(0, 0);