23
23
/**
24
24
* Binary representation of an ecma-number
25
25
*/
26
- #if JERRY_NUMBER_TYPE_FLOAT64
27
26
typedef 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 */
31
27
32
28
/**
33
29
* 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
50
46
/**
51
47
* Maximum number of significant decimal digits that an ecma-number can store
52
48
*/
53
- #if JERRY_NUMBER_TYPE_FLOAT64
54
49
#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 */
58
50
59
51
/**
60
52
* Width of sign field
@@ -70,59 +62,35 @@ ecma_number_t ecma_number_create (bool sign, uint32_t biased_exp, uint64_t fract
70
62
* See also:
71
63
* IEEE-754 2008, 3.6, Table 3.5
72
64
*/
73
- #if JERRY_NUMBER_TYPE_FLOAT64
74
65
#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 */
78
66
79
67
/**
80
68
* Exponent bias
81
69
*/
82
- #if JERRY_NUMBER_TYPE_FLOAT64
83
70
#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 */
87
71
88
72
/**
89
73
* Width of fraction field
90
74
*
91
75
* See also:
92
76
* IEEE-754 2008, 3.6, Table 3.5
93
77
*/
94
- #if JERRY_NUMBER_TYPE_FLOAT64
95
78
#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 */
99
79
100
80
/**
101
81
* Sign bit in ecma-numbers
102
82
*/
103
- #if JERRY_NUMBER_TYPE_FLOAT64
104
83
#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 */
108
84
109
85
/**
110
86
* Binary representation of an IEEE-754 QNaN value.
111
87
*/
112
- #if JERRY_NUMBER_TYPE_FLOAT64
113
88
#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 */
117
89
118
90
/**
119
91
* Binary representation of an IEEE-754 Infinity value.
120
92
*/
121
- #if JERRY_NUMBER_TYPE_FLOAT64
122
93
#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 */
126
94
127
95
/**
128
96
* 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
134
102
*
135
103
* See also: ECMA_262 v5, 15.7.3.3
136
104
*/
137
- #if JERRY_NUMBER_TYPE_FLOAT64
138
105
#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 */
142
106
143
107
/**
144
108
* Number.MAX_VALUE (i.e., the maximum value of ecma-number)
145
109
*
146
110
* See also: ECMA_262 v5, 15.7.3.2
147
111
*/
148
- #if JERRY_NUMBER_TYPE_FLOAT64
149
112
#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 */
153
113
154
114
/**
155
115
* Number.EPSILON
156
116
*
157
117
* See also: ECMA_262 v6, 20.1.2.1
158
118
*/
159
- #if JERRY_NUMBER_TYPE_FLOAT64
160
119
#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 */
164
120
165
121
/**
166
122
* Number.MAX_SAFE_INTEGER
167
123
*
168
124
* See also: ECMA_262 v6, 20.1.2.6
169
125
*/
170
- #if JERRY_NUMBER_TYPE_FLOAT64
171
126
#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 */
175
127
176
128
/**
177
129
* Number.MIN_SAFE_INTEGER
178
130
*
179
131
* See also: ECMA_262 v6, 20.1.2.8
180
132
*/
181
- #if JERRY_NUMBER_TYPE_FLOAT64
182
133
#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 */
186
134
187
135
/**
188
136
* Number.MAX_VALUE exponent part
189
137
*/
190
- #if JERRY_NUMBER_TYPE_FLOAT64
191
138
#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 */
195
139
196
140
/**
197
141
* Number.MIN_VALUE exponent part
198
142
*/
199
- #if JERRY_NUMBER_TYPE_FLOAT64
200
143
#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 */
204
144
205
145
/**
206
146
* Euler number
0 commit comments