Improve float number handling and conversion (#4820)

Fixes #4739.

JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
This commit is contained in:
Dániel Bátyai
2021-12-03 12:58:37 +01:00
committed by GitHub
parent a1c1d42710
commit 81d2319144
30 changed files with 1022 additions and 1603 deletions
+15 -2
View File
@@ -18,7 +18,6 @@
#include "ecma-conversion.h"
#include "ecma-exceptions.h"
#include "ecma-helpers.h"
#include "ecma-number-arithmetic.h"
#include "ecma-objects.h"
#include "jrt-libc-includes.h"
@@ -89,7 +88,21 @@ do_number_arithmetic (number_arithmetic_op op, /**< number arithmetic operation
}
case NUMBER_ARITHMETIC_REMAINDER:
{
result = ecma_op_number_remainder (left_number, right_number);
if (ecma_number_is_nan (left_number) || ecma_number_is_nan (right_number)
|| ecma_number_is_infinity (left_number) || ecma_number_is_zero (right_number))
{
result = ecma_number_make_nan ();
break;
}
if (ecma_number_is_infinity (right_number)
|| (ecma_number_is_zero (left_number) && !ecma_number_is_zero (right_number)))
{
result = left_number;
break;
}
result = ecma_number_remainder (left_number, right_number);
break;
}
#if JERRY_ESNEXT