2323/**
2424 * Binary representation of an ecma-number
2525 */
26- #if JERRY_NUMBER_TYPE_FLOAT64
2726typedef uint64_t ecma_binary_num_t ;
28- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
29- typedef uint32_t ecma_binary_num_t ;
30- #endif /* !JERRY_NUMBER_TYPE_FLOAT64 */
3127
3228/**
3329 * Makes it possible to read/write the binary representation of an ecma_number_t
@@ -50,11 +46,7 @@ ecma_number_t ecma_number_create (bool sign, uint32_t biased_exp, uint64_t fract
5046/**
5147 * Maximum number of significant decimal digits that an ecma-number can store
5248 */
53- #if JERRY_NUMBER_TYPE_FLOAT64
5449#define ECMA_NUMBER_MAX_DIGITS (19)
55- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
56- #define ECMA_NUMBER_MAX_DIGITS (9)
57- #endif /* !JERRY_NUMBER_TYPE_FLOAT64 */
5850
5951/**
6052 * Width of sign field
@@ -70,59 +62,35 @@ ecma_number_t ecma_number_create (bool sign, uint32_t biased_exp, uint64_t fract
7062 * See also:
7163 * IEEE-754 2008, 3.6, Table 3.5
7264 */
73- #if JERRY_NUMBER_TYPE_FLOAT64
7465#define ECMA_NUMBER_BIASED_EXP_WIDTH (11)
75- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
76- #define ECMA_NUMBER_BIASED_EXP_WIDTH (8)
77- #endif /* !JERRY_NUMBER_TYPE_FLOAT64 */
7866
7967/**
8068 * Exponent bias
8169 */
82- #if JERRY_NUMBER_TYPE_FLOAT64
8370#define ECMA_NUMBER_EXPONENT_BIAS (1023)
84- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
85- #define ECMA_NUMBER_EXPONENT_BIAS (127)
86- #endif /* !JERRY_NUMBER_TYPE_FLOAT64 */
8771
8872/**
8973 * Width of fraction field
9074 *
9175 * See also:
9276 * IEEE-754 2008, 3.6, Table 3.5
9377 */
94- #if JERRY_NUMBER_TYPE_FLOAT64
9578#define ECMA_NUMBER_FRACTION_WIDTH (52)
96- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
97- #define ECMA_NUMBER_FRACTION_WIDTH (23)
98- #endif /* !JERRY_NUMBER_TYPE_FLOAT64 */
9979
10080/**
10181 * Sign bit in ecma-numbers
10282 */
103- #if JERRY_NUMBER_TYPE_FLOAT64
10483#define ECMA_NUMBER_SIGN_BIT 0x8000000000000000ull
105- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
106- #define ECMA_NUMBER_SIGN_BIT 0x7f800000u;
107- #endif /* !JERRY_NUMBER_TYPE_FLOAT64 */
10884
10985/**
11086 * Binary representation of an IEEE-754 QNaN value.
11187 */
112- #if JERRY_NUMBER_TYPE_FLOAT64
11388#define ECMA_NUMBER_BINARY_QNAN 0x7ff8000000000000ull
114- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
115- #define ECMA_NUMBER_BINARY_QNAN 0x7fc00000u
116- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
11789
11890/**
11991 * Binary representation of an IEEE-754 Infinity value.
12092 */
121- #if JERRY_NUMBER_TYPE_FLOAT64
12293#define ECMA_NUMBER_BINARY_INF 0x7ff0000000000000ull
123- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
124- #define ECMA_NUMBER_BINARY_INF 0x7f800000u
125- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
12694
12795/**
12896 * Binary representation of an IEEE-754 zero value.
@@ -134,73 +102,45 @@ ecma_number_t ecma_number_create (bool sign, uint32_t biased_exp, uint64_t fract
134102 *
135103 * See also: ECMA_262 v5, 15.7.3.3
136104 */
137- #if JERRY_NUMBER_TYPE_FLOAT64
138105#define ECMA_NUMBER_MIN_VALUE ((ecma_number_t) 5e-324)
139- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
140- #define ECMA_NUMBER_MIN_VALUE (FLT_MIN)
141- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
142106
143107/**
144108 * Number.MAX_VALUE (i.e., the maximum value of ecma-number)
145109 *
146110 * See also: ECMA_262 v5, 15.7.3.2
147111 */
148- #if JERRY_NUMBER_TYPE_FLOAT64
149112#define ECMA_NUMBER_MAX_VALUE ((ecma_number_t) 1.7976931348623157e+308)
150- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
151- #define ECMA_NUMBER_MAX_VALUE (FLT_MAX)
152- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
153113
154114/**
155115 * Number.EPSILON
156116 *
157117 * See also: ECMA_262 v6, 20.1.2.1
158118 */
159- #if JERRY_NUMBER_TYPE_FLOAT64
160119#define ECMA_NUMBER_EPSILON ((ecma_number_t) 2.2204460492503130808472633361816e-16)
161- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
162- #define ECMA_NUMBER_EPSILON ((ecma_number_t) 1.1920928955078125e-7)
163- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
164120
165121/**
166122 * Number.MAX_SAFE_INTEGER
167123 *
168124 * See also: ECMA_262 v6, 20.1.2.6
169125 */
170- #if JERRY_NUMBER_TYPE_FLOAT64
171126#define ECMA_NUMBER_MAX_SAFE_INTEGER ((ecma_number_t) 0x1FFFFFFFFFFFFF)
172- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
173- #define ECMA_NUMBER_MAX_SAFE_INTEGER ((ecma_number_t) 0xFFFFFF)
174- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
175127
176128/**
177129 * Number.MIN_SAFE_INTEGER
178130 *
179131 * See also: ECMA_262 v6, 20.1.2.8
180132 */
181- #if JERRY_NUMBER_TYPE_FLOAT64
182133#define ECMA_NUMBER_MIN_SAFE_INTEGER ((ecma_number_t) -0x1FFFFFFFFFFFFF)
183- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
184- #define ECMA_NUMBER_MIN_SAFE_INTEGER ((ecma_number_t) -0xFFFFFF)
185- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
186134
187135/**
188136 * Number.MAX_VALUE exponent part
189137 */
190- #if JERRY_NUMBER_TYPE_FLOAT64
191138#define NUMBER_MAX_DECIMAL_EXPONENT 308
192- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
193- #define NUMBER_MAX_DECIMAL_EXPONENT 38
194- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
195139
196140/**
197141 * Number.MIN_VALUE exponent part
198142 */
199- #if JERRY_NUMBER_TYPE_FLOAT64
200143#define NUMBER_MIN_DECIMAL_EXPONENT -324
201- #else /* !JERRY_NUMBER_TYPE_FLOAT64 */
202- #define NUMBER_MIN_DECIMAL_EXPONENT -45
203- #endif /* JERRY_NUMBER_TYPE_FLOAT64 */
204144
205145/**
206146 * Euler number
0 commit comments