diff options
Diffstat (limited to 'js/src/tests/test262/built-ins/Array/prototype/findLastIndex/predicate-not-called-on-empty-array.js')
-rw-r--r-- | js/src/tests/test262/built-ins/Array/prototype/findLastIndex/predicate-not-called-on-empty-array.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Array/prototype/findLastIndex/predicate-not-called-on-empty-array.js b/js/src/tests/test262/built-ins/Array/prototype/findLastIndex/predicate-not-called-on-empty-array.js new file mode 100644 index 0000000000..a68e8420b4 --- /dev/null +++ b/js/src/tests/test262/built-ins/Array/prototype/findLastIndex/predicate-not-called-on-empty-array.js @@ -0,0 +1,37 @@ +// Copyright (C) 2021 Microsoft. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-array.prototype.findlastindex +description: > + Predicate is only called if this.length is > 0. +info: | + Array.prototype.findLastIndex ( predicate[ , thisArg ] ) + + ... + 4. Let k be len - 1. + 5. Repeat, while k ≥ 0, + ... + c. Let testResult be ! ToBoolean(? Call(predicate, thisArg, « kValue, 𝔽(k), O »)). + 6. Return -1. +features: [array-find-from-last] +---*/ + +var called = false; + +var predicate = function() { + called = true; + return true; +}; + +var result = [].findLastIndex(predicate); + +assert.sameValue( + called, false, + '[].findLastIndex(predicate) does not call predicate' +); +assert.sameValue( + result, -1, + '[].findLastIndex(predicate) returned undefined' +); + +reportCompare(0, 0); |