Fix float32 again
JerryScript CI / Checks (push) Failing after 22s
JerryScript CI / Linux_x86_cpointer-32bit_Build_Correctness_Tests (push) Failing after 16s
JerryScript CI / Linux_x86-64_Build_Option_Tests (push) Failing after 14s
JerryScript CI / Conformance_Tests_ESNext_Debug_B (push) Failing after 10s
JerryScript CI / ASAN_Tests (push) Failing after 14s
JerryScript CI / ASAN_Tests_Debug (push) Failing after 15s
JerryScript CI / UBSAN_Tests (push) Failing after 14s
JerryScript CI / Linux_ARMv7l_Tests (push) Failing after 15s
JerryScript CI / Linux_ARMv7l_Tests_Debug (push) Failing after 14s
JerryScript CI / Linux_AArch64_Tests (push) Failing after 14s
JerryScript CI / Linux_x86-64_Build_Correctness_Debugger_Tests (push) Failing after 8s
JerryScript CI / Conformance_Tests_ESNext (push) Failing after 10s
JerryScript CI / Conformance_Tests_ESNext_Debug_A (push) Failing after 10s
JerryScript CI / Unit_Tests (push) Failing after 8s
JerryScript CI / Clang_Unit_Build_Option_Tests (push) Failing after 16s
JerryScript CI / Zephyr_STM32F4_Build_Test (push) Failing after 14s
JerryScript CI / Win_x86-64_Conformance_Tests_ESNext_Debug (push) Has been cancelled
JerryScript CI / Win_x86-64_Tests-MINGW (push) Has been cancelled
JerryScript CI / Win_x86-64_Tests (push) Has been cancelled
JerryScript CI / Win_x86-64_Tests_Debug (push) Has been cancelled
JerryScript CI / OSX_x86-64_Build_Correctness_Unit_Tests_Debug (push) Has been cancelled
JerryScript CI / Linux_AArch64_Tests_Debug (push) Failing after 14s
JerryScript CI / MbedOS_K64F_Build_Test (push) Failing after 15s
JerryScript CI / NuttX_STM32F4_Build_Test (push) Failing after 15s
JerryScript CI / Win_x86-64_Conformance_Tests_ESNext (push) Has been cancelled
JerryScript CI / OSX_x86-64_Build_Correctness_Unit_Tests (push) Has been cancelled
JerryScript CI / ESP8266_RTOS_SDK_Build_Test (push) Has been cancelled
JerryScript CI / ESP_IDF_Build_Test (push) Has been cancelled
JerryScript CI / Notification (push) Has been cancelled
JerryScript CI / RIOT_STM32F4_Build_Test (push) Has been cancelled
JerryScript CI / Checks (push) Failing after 22s
JerryScript CI / Linux_x86_cpointer-32bit_Build_Correctness_Tests (push) Failing after 16s
JerryScript CI / Linux_x86-64_Build_Option_Tests (push) Failing after 14s
JerryScript CI / Conformance_Tests_ESNext_Debug_B (push) Failing after 10s
JerryScript CI / ASAN_Tests (push) Failing after 14s
JerryScript CI / ASAN_Tests_Debug (push) Failing after 15s
JerryScript CI / UBSAN_Tests (push) Failing after 14s
JerryScript CI / Linux_ARMv7l_Tests (push) Failing after 15s
JerryScript CI / Linux_ARMv7l_Tests_Debug (push) Failing after 14s
JerryScript CI / Linux_AArch64_Tests (push) Failing after 14s
JerryScript CI / Linux_x86-64_Build_Correctness_Debugger_Tests (push) Failing after 8s
JerryScript CI / Conformance_Tests_ESNext (push) Failing after 10s
JerryScript CI / Conformance_Tests_ESNext_Debug_A (push) Failing after 10s
JerryScript CI / Unit_Tests (push) Failing after 8s
JerryScript CI / Clang_Unit_Build_Option_Tests (push) Failing after 16s
JerryScript CI / Zephyr_STM32F4_Build_Test (push) Failing after 14s
JerryScript CI / Win_x86-64_Conformance_Tests_ESNext_Debug (push) Has been cancelled
JerryScript CI / Win_x86-64_Tests-MINGW (push) Has been cancelled
JerryScript CI / Win_x86-64_Tests (push) Has been cancelled
JerryScript CI / Win_x86-64_Tests_Debug (push) Has been cancelled
JerryScript CI / OSX_x86-64_Build_Correctness_Unit_Tests_Debug (push) Has been cancelled
JerryScript CI / Linux_AArch64_Tests_Debug (push) Failing after 14s
JerryScript CI / MbedOS_K64F_Build_Test (push) Failing after 15s
JerryScript CI / NuttX_STM32F4_Build_Test (push) Failing after 15s
JerryScript CI / Win_x86-64_Conformance_Tests_ESNext (push) Has been cancelled
JerryScript CI / OSX_x86-64_Build_Correctness_Unit_Tests (push) Has been cancelled
JerryScript CI / ESP8266_RTOS_SDK_Build_Test (push) Has been cancelled
JerryScript CI / ESP_IDF_Build_Test (push) Has been cancelled
JerryScript CI / Notification (push) Has been cancelled
JerryScript CI / RIOT_STM32F4_Build_Test (push) Has been cancelled
This commit is contained in:
@@ -333,7 +333,7 @@ ecma_utf8_string_to_number_by_radix (const lit_utf8_byte_t *str_p, /**< utf-8 st
|
||||
return ecma_number_make_nan ();
|
||||
}
|
||||
|
||||
num = num * radix + value;
|
||||
num = num * (ecma_number_t) radix + (ecma_number_t) value;
|
||||
}
|
||||
|
||||
return num;
|
||||
@@ -630,7 +630,10 @@ ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, /**< utf-8 string */
|
||||
return ecma_number_create (sign, (uint32_t) binary_exponent, significand);
|
||||
#elif !JERRY_NUMBER_TYPE_FLOAT64
|
||||
/* Less precise conversion */
|
||||
ecma_number_t num = (ecma_number_t) (uint32_t) fraction_uint64;
|
||||
ecma_number_t num = (ecma_number_t) (uint32_t) significand;
|
||||
|
||||
bool e_sign = decimal_exponent < 0;
|
||||
int32_t e = e_sign ? -decimal_exponent : decimal_exponent;
|
||||
|
||||
ecma_number_t m = e_sign ? (ecma_number_t) 0.1 : (ecma_number_t) 10.0;
|
||||
|
||||
@@ -645,7 +648,7 @@ ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, /**< utf-8 string */
|
||||
e /= 2;
|
||||
}
|
||||
|
||||
return num;
|
||||
return sign ? -num : num;
|
||||
#endif /* JERRY_NUMBER_TYPE_FLOAT64 */
|
||||
} /* ecma_utf8_string_to_number */
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ ecma_number_create (bool sign, /**< sign */
|
||||
ecma_binary_num_t binary = biased_exp;
|
||||
binary <<= ECMA_NUMBER_FRACTION_WIDTH;
|
||||
|
||||
binary |= fraction;
|
||||
binary |= (ecma_binary_num_t) fraction;
|
||||
|
||||
if (sign)
|
||||
{
|
||||
@@ -259,7 +259,11 @@ ecma_number_t JERRY_ATTR_CONST
|
||||
ecma_number_get_prev (ecma_number_t num) /**< ecma-number */
|
||||
{
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
#if JERRY_NUMBER_TYPE_FLOAT64
|
||||
return __builtin_nextafter (num, -INFINITY);
|
||||
#else /* !JERRY_NUMBER_TYPE_FLOAT64 */
|
||||
return __builtin_nextafterf (num, -INFINITY);
|
||||
#endif /* JERRY_NUMBER_TYPE_FLOAT64 */
|
||||
#else /* !defined (__GNUC__) && !defined (__clang__) */
|
||||
JERRY_ASSERT (!ecma_number_is_nan (num));
|
||||
ecma_binary_num_t binary = ecma_number_to_binary (num);
|
||||
@@ -294,7 +298,11 @@ ecma_number_t JERRY_ATTR_CONST
|
||||
ecma_number_get_next (ecma_number_t num) /**< ecma-number */
|
||||
{
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
#if JERRY_NUMBER_TYPE_FLOAT64
|
||||
return __builtin_nextafter (num, INFINITY);
|
||||
#else /* !JERRY_NUMBER_TYPE_FLOAT64 */
|
||||
return __builtin_nextafterf (num, INFINITY);
|
||||
#endif /* JERRY_NUMBER_TYPE_FLOAT64 */
|
||||
#else /* !defined (__GNUC__) && !defined (__clang__) */
|
||||
JERRY_ASSERT (!ecma_number_is_nan (num));
|
||||
ecma_binary_num_t binary = ecma_number_to_binary (num);
|
||||
@@ -345,7 +353,7 @@ ecma_number_trunc (ecma_number_t num) /**< ecma-number */
|
||||
return num;
|
||||
}
|
||||
|
||||
binary &= ~((1ull << (ECMA_NUMBER_FRACTION_WIDTH - unbiased_exp)) - 1);
|
||||
binary &= ~(((ecma_binary_num_t) 1 << (ECMA_NUMBER_FRACTION_WIDTH - unbiased_exp)) - 1);
|
||||
return ecma_number_from_binary (binary);
|
||||
} /* ecma_number_trunc */
|
||||
|
||||
@@ -542,8 +550,8 @@ ecma_number_parse_int (const lit_utf8_byte_t *str_p, /**< routine's first argume
|
||||
break;
|
||||
}
|
||||
|
||||
value *= radix;
|
||||
value += digit;
|
||||
value *= (ecma_number_t) radix;
|
||||
value += (ecma_number_t) digit;
|
||||
|
||||
str_p++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user