mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
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:
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));
|
||||
|
||||
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 */
|
||||
|
||||
/**
|
||||
|
||||
@ -32,3 +32,8 @@ assert((number % 79) == 2);
|
||||
|
||||
var num1 = 1234567, num2 = 1234000;
|
||||
assert((num1 % num2) == 567);
|
||||
|
||||
assert (1 / (-1 % -1) < 0);
|
||||
assert (1 / (-1 % 1) < 0);
|
||||
assert (1 / (1 % -1) > 0);
|
||||
assert (1 / (1 % 1) > 0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user