Fix sign of number remainder (ecma_op_number_remainder).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
committed by
Evgeny Gavrin
parent
f8770020f7
commit
c84d31ce9e
@@ -683,7 +683,15 @@ ecma_number_calc_remainder (ecma_number_t left_num, /**< left operand */
|
|||||||
|
|
||||||
ecma_number_t q = ecma_number_trunc (ecma_number_divide (n, d));
|
ecma_number_t q = ecma_number_trunc (ecma_number_divide (n, d));
|
||||||
|
|
||||||
return ecma_number_substract (n, ecma_number_multiply (d, q));
|
ecma_number_t r = ecma_number_substract (n, ecma_number_multiply (d, q));
|
||||||
|
|
||||||
|
if (ecma_number_is_zero (r)
|
||||||
|
&& ecma_number_is_negative (n))
|
||||||
|
{
|
||||||
|
r = ecma_number_negate (r);
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
} /* ecma_number_calc_remainder */
|
} /* ecma_number_calc_remainder */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -32,3 +32,8 @@ assert((number % 79) == 2);
|
|||||||
|
|
||||||
var num1 = 1234567, num2 = 1234000;
|
var num1 = 1234567, num2 = 1234000;
|
||||||
assert((num1 % num2) == 567);
|
assert((num1 % num2) == 567);
|
||||||
|
|
||||||
|
assert (1 / (-1 % -1) < 0);
|
||||||
|
assert (1 / (-1 % 1) < 0);
|
||||||
|
assert (1 / (1 % -1) > 0);
|
||||||
|
assert (1 / (1 % 1) > 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user