From 73a8a7dcf9ac66e6c8a1c124cb57bb87120df39d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bargull?= <andre.bargull@gmail.com> Date: Mon, 23 Mar 2015 19:15:16 +0100 Subject: [PATCH] Array.prototype.find does not skip holes Fixes #103 --- ...Array.prototype.find_remove-after-start.js | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/test/built-ins/Array/prototype/find/Array.prototype.find_remove-after-start.js b/test/built-ins/Array/prototype/find/Array.prototype.find_remove-after-start.js index a788f0e85e..509b8f50d8 100644 --- a/test/built-ins/Array/prototype/find/Array.prototype.find_remove-after-start.js +++ b/test/built-ins/Array/prototype/find/Array.prototype.find_remove-after-start.js @@ -3,28 +3,38 @@ /*--- description: > - Elements removed from array after find has been called should not - be visited + Elements removed from array after find has been called should be + visited ---*/ +var elementsVisited; + +elementsVisited = 0; + [1, 'string', 2].find(function (v, i, arr) { + elementsVisited++; var stringIndex = arr.indexOf('string'); if (stringIndex !== -1) delete arr[stringIndex]; if (v === 'string') { $ERROR('#1: \'string\' should not exist, it has been deleted'); } - if (v === undefined) { - $ERROR('#2: deleted element should not be visited'); - } }); +if (elementsVisited !== 3) { + $ERROR('#2: deleted elements should be visited'); +} + +elementsVisited = 0; + [1, 'string', 2].find(function (v, i, arr) { + elementsVisited++; var stringIndex = arr.indexOf('string'); if (stringIndex !== -1) arr.splice(stringIndex, 1); if (v === 'string') { $ERROR('#3: \'string\' should not exist, it has been deleted'); } - if (v === undefined) { - $ERROR('#4: deleted element should not be visited'); - } }); + +if (elementsVisited !== 3) { + $ERROR('#4: deleted elements should be visited'); +}