Fix array index normalize in case index is negative zero
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
This commit is contained in:
@@ -298,7 +298,11 @@ ecma_builtin_helper_array_index_normalize (ecma_number_t index, /**< index */
|
|||||||
if (!ecma_number_is_nan (index))
|
if (!ecma_number_is_nan (index))
|
||||||
{
|
{
|
||||||
|
|
||||||
if (ecma_number_is_infinity (index))
|
if (ecma_number_is_zero (index))
|
||||||
|
{
|
||||||
|
norm_index = 0;
|
||||||
|
}
|
||||||
|
else if (ecma_number_is_infinity (index))
|
||||||
{
|
{
|
||||||
norm_index = ecma_number_is_negative (index) ? 0 : length;
|
norm_index = ecma_number_is_negative (index) ? 0 : length;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ assert(array.indexOf("foo", NaN) === 0);
|
|||||||
assert(array.indexOf("foo", Infinity) === -1);
|
assert(array.indexOf("foo", Infinity) === -1);
|
||||||
assert(array.indexOf("foo", -Infinity) === 0);
|
assert(array.indexOf("foo", -Infinity) === 0);
|
||||||
|
|
||||||
|
assert([true].indexOf(true, -0) === 0);
|
||||||
|
|
||||||
// Checking behavior when length is zero
|
// Checking behavior when length is zero
|
||||||
var obj = { indexOf : Array.prototype.indexOf, length : 0 };
|
var obj = { indexOf : Array.prototype.indexOf, length : 0 };
|
||||||
assert(obj.indexOf("foo") === -1);
|
assert(obj.indexOf("foo") === -1);
|
||||||
|
|||||||
Reference in New Issue
Block a user