OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "v8.h" | 30 #include "v8.h" |
31 | 31 |
32 #include "platform.h" | 32 #include "platform.h" |
33 #include "cctest.h" | 33 #include "cctest.h" |
34 | 34 |
35 using namespace v8::internal; | 35 using namespace v8::internal; |
36 | 36 |
37 | 37 |
38 TEST(Hex) { | 38 TEST(Hex) { |
39 UnicodeCache uc; | 39 UnicodeCache uc; |
40 CHECK_EQ(0.0, StringToDouble(&uc, "0x0", ALLOW_HEX | ALLOW_OCTALS)); | 40 CHECK_EQ(0.0, StringToDouble(&uc, "0x0", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
41 CHECK_EQ(0.0, StringToDouble(&uc, "0X0", ALLOW_HEX | ALLOW_OCTALS)); | 41 CHECK_EQ(0.0, StringToDouble(&uc, "0X0", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
42 CHECK_EQ(1.0, StringToDouble(&uc, "0x1", ALLOW_HEX | ALLOW_OCTALS)); | 42 CHECK_EQ(1.0, StringToDouble(&uc, "0x1", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
43 CHECK_EQ(16.0, StringToDouble(&uc, "0x10", ALLOW_HEX | ALLOW_OCTALS)); | 43 CHECK_EQ(16.0, StringToDouble(&uc, "0x10", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
44 CHECK_EQ(255.0, StringToDouble(&uc, "0xff", ALLOW_HEX | ALLOW_OCTALS)); | 44 CHECK_EQ(255.0, StringToDouble(&uc, "0xff", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL))
; |
45 CHECK_EQ(175.0, StringToDouble(&uc, "0xAF", ALLOW_HEX | ALLOW_OCTALS)); | 45 CHECK_EQ(175.0, StringToDouble(&uc, "0xAF", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL))
; |
46 | 46 |
47 CHECK_EQ(0.0, StringToDouble(&uc, "0x0", ALLOW_HEX)); | 47 CHECK_EQ(0.0, StringToDouble(&uc, "0x0", ALLOW_HEX)); |
48 CHECK_EQ(0.0, StringToDouble(&uc, "0X0", ALLOW_HEX)); | 48 CHECK_EQ(0.0, StringToDouble(&uc, "0X0", ALLOW_HEX)); |
49 CHECK_EQ(1.0, StringToDouble(&uc, "0x1", ALLOW_HEX)); | 49 CHECK_EQ(1.0, StringToDouble(&uc, "0x1", ALLOW_HEX)); |
50 CHECK_EQ(16.0, StringToDouble(&uc, "0x10", ALLOW_HEX)); | 50 CHECK_EQ(16.0, StringToDouble(&uc, "0x10", ALLOW_HEX)); |
51 CHECK_EQ(255.0, StringToDouble(&uc, "0xff", ALLOW_HEX)); | 51 CHECK_EQ(255.0, StringToDouble(&uc, "0xff", ALLOW_HEX)); |
52 CHECK_EQ(175.0, StringToDouble(&uc, "0xAF", ALLOW_HEX)); | 52 CHECK_EQ(175.0, StringToDouble(&uc, "0xAF", ALLOW_HEX)); |
53 } | 53 } |
54 | 54 |
55 | 55 |
56 TEST(Octal) { | 56 TEST(Octal) { |
57 UnicodeCache uc; | 57 UnicodeCache uc; |
58 CHECK_EQ(0.0, StringToDouble(&uc, "0", ALLOW_HEX | ALLOW_OCTALS)); | 58 CHECK_EQ(0.0, StringToDouble(&uc, "0o0", ALLOW_OCTAL | ALLOW_IMPLICIT_OCTAL)); |
59 CHECK_EQ(0.0, StringToDouble(&uc, "00", ALLOW_HEX | ALLOW_OCTALS)); | 59 CHECK_EQ(0.0, StringToDouble(&uc, "0O0", ALLOW_OCTAL | ALLOW_IMPLICIT_OCTAL)); |
60 CHECK_EQ(1.0, StringToDouble(&uc, "01", ALLOW_HEX | ALLOW_OCTALS)); | 60 CHECK_EQ(1.0, StringToDouble(&uc, "0o1", ALLOW_OCTAL | ALLOW_IMPLICIT_OCTAL)); |
61 CHECK_EQ(7.0, StringToDouble(&uc, "07", ALLOW_HEX | ALLOW_OCTALS)); | 61 CHECK_EQ(7.0, StringToDouble(&uc, "0o7", ALLOW_OCTAL | ALLOW_IMPLICIT_OCTAL)); |
62 CHECK_EQ(8.0, StringToDouble(&uc, "010", ALLOW_HEX | ALLOW_OCTALS)); | 62 CHECK_EQ(8.0, StringToDouble(&uc, "0o10", ALLOW_OCTAL | ALLOW_IMPLICIT_OCTAL))
; |
63 CHECK_EQ(63.0, StringToDouble(&uc, "077", ALLOW_HEX | ALLOW_OCTALS)); | 63 CHECK_EQ(63.0, StringToDouble(&uc, "0o77", ALLOW_OCTAL | ALLOW_IMPLICIT_OCTAL)
); |
| 64 |
| 65 CHECK_EQ(0.0, StringToDouble(&uc, "0o0", ALLOW_OCTAL)); |
| 66 CHECK_EQ(0.0, StringToDouble(&uc, "0O0", ALLOW_OCTAL)); |
| 67 CHECK_EQ(1.0, StringToDouble(&uc, "0o1", ALLOW_OCTAL)); |
| 68 CHECK_EQ(7.0, StringToDouble(&uc, "0o7", ALLOW_OCTAL)); |
| 69 CHECK_EQ(8.0, StringToDouble(&uc, "0o10", ALLOW_OCTAL)); |
| 70 CHECK_EQ(63.0, StringToDouble(&uc, "0o77", ALLOW_OCTAL)); |
| 71 } |
| 72 |
| 73 |
| 74 TEST(ImplicitOctal) { |
| 75 UnicodeCache uc; |
| 76 CHECK_EQ(0.0, StringToDouble(&uc, "0", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
| 77 CHECK_EQ(0.0, StringToDouble(&uc, "00", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
| 78 CHECK_EQ(1.0, StringToDouble(&uc, "01", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
| 79 CHECK_EQ(7.0, StringToDouble(&uc, "07", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
| 80 CHECK_EQ(8.0, StringToDouble(&uc, "010", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
| 81 CHECK_EQ(63.0, StringToDouble(&uc, "077", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
64 | 82 |
65 CHECK_EQ(0.0, StringToDouble(&uc, "0", ALLOW_HEX)); | 83 CHECK_EQ(0.0, StringToDouble(&uc, "0", ALLOW_HEX)); |
66 CHECK_EQ(0.0, StringToDouble(&uc, "00", ALLOW_HEX)); | 84 CHECK_EQ(0.0, StringToDouble(&uc, "00", ALLOW_HEX)); |
67 CHECK_EQ(1.0, StringToDouble(&uc, "01", ALLOW_HEX)); | 85 CHECK_EQ(1.0, StringToDouble(&uc, "01", ALLOW_HEX)); |
68 CHECK_EQ(7.0, StringToDouble(&uc, "07", ALLOW_HEX)); | 86 CHECK_EQ(7.0, StringToDouble(&uc, "07", ALLOW_HEX)); |
69 CHECK_EQ(10.0, StringToDouble(&uc, "010", ALLOW_HEX)); | 87 CHECK_EQ(10.0, StringToDouble(&uc, "010", ALLOW_HEX)); |
70 CHECK_EQ(77.0, StringToDouble(&uc, "077", ALLOW_HEX)); | 88 CHECK_EQ(77.0, StringToDouble(&uc, "077", ALLOW_HEX)); |
71 | 89 |
72 const double x = 010000000000; // Power of 2, no rounding errors. | 90 const double x = 010000000000; // Power of 2, no rounding errors. |
73 CHECK_EQ(x * x * x * x * x, StringToDouble(&uc, "01" "0000000000" "0000000000" | 91 CHECK_EQ(x * x * x * x * x, StringToDouble(&uc, "01" "0000000000" "0000000000" |
74 "0000000000" "0000000000" "0000000000", ALLOW_OCTALS)); | 92 "0000000000" "0000000000" "0000000000", ALLOW_IMPLICIT_OCTAL)); |
| 93 } |
| 94 |
| 95 |
| 96 TEST(Binary) { |
| 97 UnicodeCache uc; |
| 98 CHECK_EQ(0.0, StringToDouble(&uc, "0b0", ALLOW_BINARY | ALLOW_IMPLICIT_OCTAL))
; |
| 99 CHECK_EQ(0.0, StringToDouble(&uc, "0B0", ALLOW_BINARY | ALLOW_IMPLICIT_OCTAL))
; |
| 100 CHECK_EQ(1.0, StringToDouble(&uc, "0b1", ALLOW_BINARY | ALLOW_IMPLICIT_OCTAL))
; |
| 101 CHECK_EQ(2.0, StringToDouble(&uc, "0b10", ALLOW_BINARY | ALLOW_IMPLICIT_OCTAL)
); |
| 102 CHECK_EQ(3.0, StringToDouble(&uc, "0b11", ALLOW_BINARY | ALLOW_IMPLICIT_OCTAL)
); |
| 103 |
| 104 CHECK_EQ(0.0, StringToDouble(&uc, "0b0", ALLOW_BINARY)); |
| 105 CHECK_EQ(0.0, StringToDouble(&uc, "0B0", ALLOW_BINARY)); |
| 106 CHECK_EQ(1.0, StringToDouble(&uc, "0b1", ALLOW_BINARY)); |
| 107 CHECK_EQ(2.0, StringToDouble(&uc, "0b10", ALLOW_BINARY)); |
| 108 CHECK_EQ(3.0, StringToDouble(&uc, "0b11", ALLOW_BINARY)); |
75 } | 109 } |
76 | 110 |
77 | 111 |
78 TEST(MalformedOctal) { | 112 TEST(MalformedOctal) { |
79 UnicodeCache uc; | 113 UnicodeCache uc; |
80 CHECK_EQ(8.0, StringToDouble(&uc, "08", ALLOW_HEX | ALLOW_OCTALS)); | 114 CHECK_EQ(8.0, StringToDouble(&uc, "08", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
81 CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX | ALLOW_OCTALS)); | 115 CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
82 CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX | ALLOW_OCTALS)); | 116 CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
83 | 117 |
84 CHECK(std::isnan(StringToDouble(&uc, "07.7", ALLOW_HEX | ALLOW_OCTALS))); | 118 CHECK(std::isnan(StringToDouble(&uc, "07.7", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)
)); |
85 CHECK(std::isnan(StringToDouble(&uc, "07.8", ALLOW_HEX | ALLOW_OCTALS))); | 119 CHECK(std::isnan(StringToDouble(&uc, "07.8", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)
)); |
86 CHECK(std::isnan(StringToDouble(&uc, "07e8", ALLOW_HEX | ALLOW_OCTALS))); | 120 CHECK(std::isnan(StringToDouble(&uc, "07e8", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)
)); |
87 CHECK(std::isnan(StringToDouble(&uc, "07e7", ALLOW_HEX | ALLOW_OCTALS))); | 121 CHECK(std::isnan(StringToDouble(&uc, "07e7", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)
)); |
88 | 122 |
89 CHECK_EQ(8.7, StringToDouble(&uc, "08.7", ALLOW_HEX | ALLOW_OCTALS)); | 123 CHECK_EQ(8.7, StringToDouble(&uc, "08.7", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
90 CHECK_EQ(8e7, StringToDouble(&uc, "08e7", ALLOW_HEX | ALLOW_OCTALS)); | 124 CHECK_EQ(8e7, StringToDouble(&uc, "08e7", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
91 | 125 |
92 CHECK_EQ(0.001, StringToDouble(&uc, "0.001", ALLOW_HEX | ALLOW_OCTALS)); | 126 CHECK_EQ(0.001, StringToDouble(&uc, "0.001", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)
); |
93 CHECK_EQ(0.713, StringToDouble(&uc, "0.713", ALLOW_HEX | ALLOW_OCTALS)); | 127 CHECK_EQ(0.713, StringToDouble(&uc, "0.713", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)
); |
94 | 128 |
95 CHECK_EQ(8.0, StringToDouble(&uc, "08", ALLOW_HEX)); | 129 CHECK_EQ(8.0, StringToDouble(&uc, "08", ALLOW_HEX)); |
96 CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX)); | 130 CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX)); |
97 CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX)); | 131 CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX)); |
98 | 132 |
99 CHECK_EQ(7.7, StringToDouble(&uc, "07.7", ALLOW_HEX)); | 133 CHECK_EQ(7.7, StringToDouble(&uc, "07.7", ALLOW_HEX)); |
100 CHECK_EQ(7.8, StringToDouble(&uc, "07.8", ALLOW_HEX)); | 134 CHECK_EQ(7.8, StringToDouble(&uc, "07.8", ALLOW_HEX)); |
101 CHECK_EQ(7e8, StringToDouble(&uc, "07e8", ALLOW_HEX)); | 135 CHECK_EQ(7e8, StringToDouble(&uc, "07e8", ALLOW_HEX)); |
102 CHECK_EQ(7e7, StringToDouble(&uc, "07e7", ALLOW_HEX)); | 136 CHECK_EQ(7e7, StringToDouble(&uc, "07e7", ALLOW_HEX)); |
103 | 137 |
104 CHECK_EQ(8.7, StringToDouble(&uc, "08.7", ALLOW_HEX)); | 138 CHECK_EQ(8.7, StringToDouble(&uc, "08.7", ALLOW_HEX)); |
105 CHECK_EQ(8e7, StringToDouble(&uc, "08e7", ALLOW_HEX)); | 139 CHECK_EQ(8e7, StringToDouble(&uc, "08e7", ALLOW_HEX)); |
106 | 140 |
107 CHECK_EQ(0.001, StringToDouble(&uc, "0.001", ALLOW_HEX)); | 141 CHECK_EQ(0.001, StringToDouble(&uc, "0.001", ALLOW_HEX)); |
108 CHECK_EQ(0.713, StringToDouble(&uc, "0.713", ALLOW_HEX)); | 142 CHECK_EQ(0.713, StringToDouble(&uc, "0.713", ALLOW_HEX)); |
109 } | 143 } |
110 | 144 |
111 | 145 |
112 TEST(TrailingJunk) { | 146 TEST(TrailingJunk) { |
113 UnicodeCache uc; | 147 UnicodeCache uc; |
114 CHECK_EQ(8.0, StringToDouble(&uc, "8q", ALLOW_TRAILING_JUNK)); | 148 CHECK_EQ(8.0, StringToDouble(&uc, "8q", ALLOW_TRAILING_JUNK)); |
115 CHECK_EQ(63.0, | 149 CHECK_EQ(63.0, |
116 StringToDouble(&uc, "077qqq", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); | 150 StringToDouble(&uc, "077qqq", ALLOW_IMPLICIT_OCTAL | ALLOW_TRAILING_J
UNK)); |
117 CHECK_EQ(10.0, | 151 CHECK_EQ(10.0, |
118 StringToDouble(&uc, "10e", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); | 152 StringToDouble(&uc, "10e", ALLOW_IMPLICIT_OCTAL | ALLOW_TRAILING_JUNK
)); |
119 CHECK_EQ(10.0, | 153 CHECK_EQ(10.0, |
120 StringToDouble(&uc, "10e-", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); | 154 StringToDouble(&uc, "10e-", ALLOW_IMPLICIT_OCTAL | ALLOW_TRAILING_JUN
K)); |
121 } | 155 } |
122 | 156 |
123 | 157 |
124 TEST(NonStrDecimalLiteral) { | 158 TEST(NonStrDecimalLiteral) { |
125 UnicodeCache uc; | 159 UnicodeCache uc; |
126 CHECK(std::isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); | 160 CHECK(std::isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); |
127 CHECK(std::isnan(StringToDouble(&uc, "", NO_FLAGS, OS::nan_value()))); | 161 CHECK(std::isnan(StringToDouble(&uc, "", NO_FLAGS, OS::nan_value()))); |
128 CHECK(std::isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); | 162 CHECK(std::isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); |
129 CHECK_EQ(0.0, StringToDouble(&uc, "", NO_FLAGS)); | 163 CHECK_EQ(0.0, StringToDouble(&uc, "", NO_FLAGS)); |
130 CHECK_EQ(0.0, StringToDouble(&uc, " ", NO_FLAGS)); | 164 CHECK_EQ(0.0, StringToDouble(&uc, " ", NO_FLAGS)); |
131 } | 165 } |
132 | 166 |
133 | 167 |
134 TEST(IntegerStrLiteral) { | 168 TEST(IntegerStrLiteral) { |
135 UnicodeCache uc; | 169 UnicodeCache uc; |
136 CHECK_EQ(0.0, StringToDouble(&uc, "0.0", NO_FLAGS)); | 170 CHECK_EQ(0.0, StringToDouble(&uc, "0.0", NO_FLAGS)); |
137 CHECK_EQ(0.0, StringToDouble(&uc, "0", NO_FLAGS)); | 171 CHECK_EQ(0.0, StringToDouble(&uc, "0", NO_FLAGS)); |
138 CHECK_EQ(0.0, StringToDouble(&uc, "00", NO_FLAGS)); | 172 CHECK_EQ(0.0, StringToDouble(&uc, "00", NO_FLAGS)); |
139 CHECK_EQ(0.0, StringToDouble(&uc, "000", NO_FLAGS)); | 173 CHECK_EQ(0.0, StringToDouble(&uc, "000", NO_FLAGS)); |
140 CHECK_EQ(1.0, StringToDouble(&uc, "1", NO_FLAGS)); | 174 CHECK_EQ(1.0, StringToDouble(&uc, "1", NO_FLAGS)); |
141 CHECK_EQ(-1.0, StringToDouble(&uc, "-1", NO_FLAGS)); | 175 CHECK_EQ(-1.0, StringToDouble(&uc, "-1", NO_FLAGS)); |
142 CHECK_EQ(-1.0, StringToDouble(&uc, " -1 ", NO_FLAGS)); | 176 CHECK_EQ(-1.0, StringToDouble(&uc, " -1 ", NO_FLAGS)); |
143 CHECK_EQ(1.0, StringToDouble(&uc, " +1 ", NO_FLAGS)); | 177 CHECK_EQ(1.0, StringToDouble(&uc, " +1 ", NO_FLAGS)); |
144 CHECK(std::isnan(StringToDouble(&uc, " - 1 ", NO_FLAGS))); | 178 CHECK(std::isnan(StringToDouble(&uc, " - 1 ", NO_FLAGS))); |
145 CHECK(std::isnan(StringToDouble(&uc, " + 1 ", NO_FLAGS))); | 179 CHECK(std::isnan(StringToDouble(&uc, " + 1 ", NO_FLAGS))); |
146 | 180 |
147 CHECK_EQ(0.0, StringToDouble(&uc, "0e0", ALLOW_HEX | ALLOW_OCTALS)); | 181 CHECK_EQ(0.0, StringToDouble(&uc, "0e0", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
148 CHECK_EQ(0.0, StringToDouble(&uc, "0e1", ALLOW_HEX | ALLOW_OCTALS)); | 182 CHECK_EQ(0.0, StringToDouble(&uc, "0e1", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
149 CHECK_EQ(0.0, StringToDouble(&uc, "0e-1", ALLOW_HEX | ALLOW_OCTALS)); | 183 CHECK_EQ(0.0, StringToDouble(&uc, "0e-1", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
150 CHECK_EQ(0.0, StringToDouble(&uc, "0e-100000", ALLOW_HEX | ALLOW_OCTALS)); | 184 CHECK_EQ(0.0, StringToDouble(&uc, "0e-100000", ALLOW_HEX | ALLOW_IMPLICIT_OCTA
L)); |
151 CHECK_EQ(0.0, StringToDouble(&uc, "0e+100000", ALLOW_HEX | ALLOW_OCTALS)); | 185 CHECK_EQ(0.0, StringToDouble(&uc, "0e+100000", ALLOW_HEX | ALLOW_IMPLICIT_OCTA
L)); |
152 CHECK_EQ(0.0, StringToDouble(&uc, "0.", ALLOW_HEX | ALLOW_OCTALS)); | 186 CHECK_EQ(0.0, StringToDouble(&uc, "0.", ALLOW_HEX | ALLOW_IMPLICIT_OCTAL)); |
153 } | 187 } |
154 | 188 |
155 | 189 |
156 TEST(LongNumberStr) { | 190 TEST(LongNumberStr) { |
157 UnicodeCache uc; | 191 UnicodeCache uc; |
158 CHECK_EQ(1e10, StringToDouble(&uc, "1" "0000000000", NO_FLAGS)); | 192 CHECK_EQ(1e10, StringToDouble(&uc, "1" "0000000000", NO_FLAGS)); |
159 CHECK_EQ(1e20, StringToDouble(&uc, "1" "0000000000" "0000000000", NO_FLAGS)); | 193 CHECK_EQ(1e20, StringToDouble(&uc, "1" "0000000000" "0000000000", NO_FLAGS)); |
160 | 194 |
161 CHECK_EQ(1e60, StringToDouble(&uc, "1" "0000000000" "0000000000" "0000000000" | 195 CHECK_EQ(1e60, StringToDouble(&uc, "1" "0000000000" "0000000000" "0000000000" |
162 "0000000000" "0000000000" "0000000000", NO_FLAGS)); | 196 "0000000000" "0000000000" "0000000000", NO_FLAGS)); |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 // Test most significant bits. | 335 // Test most significant bits. |
302 x = V8_2PART_UINT64_C(0xE0000000, 00000000); | 336 x = V8_2PART_UINT64_C(0xE0000000, 00000000); |
303 CHECK(x == UpperBits::encode(7)); | 337 CHECK(x == UpperBits::encode(7)); |
304 CHECK_EQ(7, UpperBits::decode(x)); | 338 CHECK_EQ(7, UpperBits::decode(x)); |
305 | 339 |
306 // Test the 32/64-bit boundary bits. | 340 // Test the 32/64-bit boundary bits. |
307 x = V8_2PART_UINT64_C(0x00000001, 80000000); | 341 x = V8_2PART_UINT64_C(0x00000001, 80000000); |
308 CHECK(x == MiddleBits::encode(3)); | 342 CHECK(x == MiddleBits::encode(3)); |
309 CHECK_EQ(3, MiddleBits::decode(x)); | 343 CHECK_EQ(3, MiddleBits::decode(x)); |
310 } | 344 } |
OLD | NEW |