Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: test/mjsunit/mul-exhaustive-part1.js

Issue 11028027: Revert trunk to bleeding_edge at r12484 (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « test/mjsunit/mul-exhaustive.js ('k') | test/mjsunit/mul-exhaustive-part10.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are
4 // met:
5 //
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided
11 // with the distribution.
12 // * Neither the name of Google Inc. nor the names of its
13 // contributors may be used to endorse or promote products derived
14 // from this software without specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28 var x;
29
30 // Converts a number to string respecting -0.
31 function stringify(n) {
32 if ((1 / n) === -Infinity) return "-0";
33 return String(n);
34 }
35
36 function f(expected, y) {
37 function testEval(string, x, y) {
38 var mulFunction = Function("x, y", "return " + string);
39 return mulFunction(x, y);
40 }
41 function mulTest(expected, x, y) {
42 assertEquals(expected, x * y);
43 assertEquals(expected, testEval(stringify(x) + " * y", x, y));
44 assertEquals(expected, testEval("x * " + stringify(y), x, y));
45 assertEquals(expected, testEval(stringify(x) + " * " + stringify(y), x, y));
46 }
47 mulTest(expected, x, y);
48 mulTest(-expected, -x, y);
49 mulTest(-expected, x, -y);
50 mulTest(expected, -x, -y);
51 if (x === y) return; // Symmetric cases not necessary.
52 mulTest(expected, y, x);
53 mulTest(-expected, -y, x);
54 mulTest(-expected, y, -x);
55 mulTest(expected, -y, -x);
56 }
57
58 x = 0;
59 f(0, 0);
60 x = 1;
61 f(0, 0);
62 f(1, 1);
63 x = 2;
64 f(0, 0);
65 f(2, 1);
66 f(4, 2);
67 x = 3;
68 f(0, 0);
69 f(3, 1);
70 f(6, 2);
71 f(9, 3);
72 x = 4;
73 f(0, 0);
74 f(4, 1);
75 f(8, 2);
76 f(12, 3);
77 f(16, 4);
78 x = 5;
79 f(0, 0);
80 f(5, 1);
81 f(10, 2);
82 f(15, 3);
83 f(20, 4);
84 f(25, 5);
85 x = 7;
86 f(0, 0);
87 f(7, 1);
88 f(14, 2);
89 f(21, 3);
90 f(28, 4);
91 f(35, 5);
92 f(49, 7);
93 x = 8;
94 f(0, 0);
95 f(8, 1);
96 f(16, 2);
97 f(24, 3);
98 f(32, 4);
99 f(40, 5);
100 f(56, 7);
101 f(64, 8);
102 x = 9;
103 f(0, 0);
104 f(9, 1);
105 f(18, 2);
106 f(27, 3);
107 f(36, 4);
108 f(45, 5);
109 f(63, 7);
110 f(72, 8);
111 f(81, 9);
112 x = 15;
113 f(0, 0);
114 f(15, 1);
115 f(30, 2);
116 f(45, 3);
117 f(60, 4);
118 f(75, 5);
119 f(105, 7);
120 f(120, 8);
121 f(135, 9);
122 f(225, 15);
123 x = 16;
124 f(0, 0);
125 f(16, 1);
126 f(32, 2);
127 f(48, 3);
128 f(64, 4);
129 f(80, 5);
130 f(112, 7);
131 f(128, 8);
132 f(144, 9);
133 f(240, 15);
134 f(256, 16);
135 x = 17;
136 f(0, 0);
137 f(17, 1);
138 f(34, 2);
139 f(51, 3);
140 f(68, 4);
141 f(85, 5);
142 f(119, 7);
143 f(136, 8);
144 f(153, 9);
145 f(255, 15);
146 f(272, 16);
147 f(289, 17);
148 x = 31;
149 f(0, 0);
150 f(31, 1);
151 f(62, 2);
152 f(93, 3);
153 f(124, 4);
154 f(155, 5);
155 f(217, 7);
156 f(248, 8);
157 f(279, 9);
158 f(465, 15);
159 f(496, 16);
160 f(527, 17);
161 f(961, 31);
162 x = 32;
163 f(0, 0);
164 f(32, 1);
165 f(64, 2);
166 f(96, 3);
167 f(128, 4);
168 f(160, 5);
169 f(224, 7);
170 f(256, 8);
171 f(288, 9);
172 f(480, 15);
173 f(512, 16);
174 f(544, 17);
175 f(992, 31);
176 f(1024, 32);
177 x = 33;
178 f(0, 0);
179 f(33, 1);
180 f(66, 2);
181 f(99, 3);
182 f(132, 4);
183 f(165, 5);
184 f(231, 7);
185 f(264, 8);
186 f(297, 9);
187 f(495, 15);
188 f(528, 16);
189 f(561, 17);
190 f(1023, 31);
191 f(1056, 32);
192 f(1089, 33);
193 x = 63;
194 f(0, 0);
195 f(63, 1);
196 f(126, 2);
197 f(189, 3);
198 f(252, 4);
199 f(315, 5);
200 f(441, 7);
201 f(504, 8);
202 f(567, 9);
203 f(945, 15);
204 f(1008, 16);
205 f(1071, 17);
206 f(1953, 31);
207 f(2016, 32);
208 f(2079, 33);
209 f(3969, 63);
210 x = 64;
211 f(0, 0);
212 f(64, 1);
213 f(128, 2);
214 f(192, 3);
215 f(256, 4);
216 f(320, 5);
217 f(448, 7);
218 f(512, 8);
219 f(576, 9);
220 f(960, 15);
221 f(1024, 16);
222 f(1088, 17);
223 f(1984, 31);
224 f(2048, 32);
225 f(2112, 33);
226 f(4032, 63);
227 f(4096, 64);
228 x = 65;
229 f(0, 0);
230 f(65, 1);
231 f(130, 2);
232 f(195, 3);
233 f(260, 4);
234 f(325, 5);
235 f(455, 7);
236 f(520, 8);
237 f(585, 9);
238 f(975, 15);
239 f(1040, 16);
240 f(1105, 17);
241 f(2015, 31);
242 f(2080, 32);
243 f(2145, 33);
244 f(4095, 63);
245 f(4160, 64);
246 f(4225, 65);
247 x = 127;
248 f(0, 0);
249 f(127, 1);
250 f(254, 2);
251 f(381, 3);
252 f(508, 4);
253 f(635, 5);
254 f(889, 7);
255 f(1016, 8);
256 f(1143, 9);
257 f(1905, 15);
258 f(2032, 16);
259 f(2159, 17);
260 f(3937, 31);
261 f(4064, 32);
262 f(4191, 33);
263 f(8001, 63);
264 f(8128, 64);
265 f(8255, 65);
266 f(16129, 127);
267 x = 128;
268 f(0, 0);
269 f(128, 1);
270 f(256, 2);
271 f(384, 3);
272 f(512, 4);
273 f(640, 5);
274 f(896, 7);
275 f(1024, 8);
276 f(1152, 9);
277 f(1920, 15);
278 f(2048, 16);
279 f(2176, 17);
280 f(3968, 31);
281 f(4096, 32);
282 f(4224, 33);
283 f(8064, 63);
284 f(8192, 64);
285 f(8320, 65);
286 f(16256, 127);
287 f(16384, 128);
288 x = 129;
289 f(0, 0);
290 f(129, 1);
291 f(258, 2);
292 f(387, 3);
293 f(516, 4);
294 f(645, 5);
295 f(903, 7);
296 f(1032, 8);
297 f(1161, 9);
298 f(1935, 15);
299 f(2064, 16);
300 f(2193, 17);
301 f(3999, 31);
302 f(4128, 32);
303 f(4257, 33);
304 f(8127, 63);
305 f(8256, 64);
306 f(8385, 65);
307 f(16383, 127);
308 f(16512, 128);
309 f(16641, 129);
310 x = 255;
311 f(0, 0);
312 f(255, 1);
313 f(510, 2);
314 f(765, 3);
315 f(1020, 4);
316 f(1275, 5);
317 f(1785, 7);
318 f(2040, 8);
319 f(2295, 9);
320 f(3825, 15);
321 f(4080, 16);
322 f(4335, 17);
323 f(7905, 31);
324 f(8160, 32);
325 f(8415, 33);
326 f(16065, 63);
327 f(16320, 64);
328 f(16575, 65);
329 f(32385, 127);
330 f(32640, 128);
331 f(32895, 129);
332 f(65025, 255);
333 x = 256;
334 f(0, 0);
335 f(256, 1);
336 f(512, 2);
337 f(768, 3);
338 f(1024, 4);
339 f(1280, 5);
340 f(1792, 7);
341 f(2048, 8);
342 f(2304, 9);
343 f(3840, 15);
344 f(4096, 16);
345 f(4352, 17);
346 f(7936, 31);
347 f(8192, 32);
348 f(8448, 33);
349 f(16128, 63);
350 f(16384, 64);
351 f(16640, 65);
352 f(32512, 127);
353 f(32768, 128);
354 f(33024, 129);
355 f(65280, 255);
356 f(65536, 256);
357 x = 257;
358 f(0, 0);
359 f(257, 1);
360 f(514, 2);
361 f(771, 3);
362 f(1028, 4);
363 f(1285, 5);
364 f(1799, 7);
365 f(2056, 8);
366 f(2313, 9);
367 f(3855, 15);
368 f(4112, 16);
369 f(4369, 17);
370 f(7967, 31);
371 f(8224, 32);
372 f(8481, 33);
373 f(16191, 63);
374 f(16448, 64);
375 f(16705, 65);
376 f(32639, 127);
377 f(32896, 128);
378 f(33153, 129);
379 f(65535, 255);
380 f(65792, 256);
381 f(66049, 257);
382 x = 511;
383 f(0, 0);
384 f(511, 1);
385 f(1022, 2);
386 f(1533, 3);
387 f(2044, 4);
388 f(2555, 5);
389 f(3577, 7);
390 f(4088, 8);
391 f(4599, 9);
392 f(7665, 15);
393 f(8176, 16);
394 f(8687, 17);
395 f(15841, 31);
396 f(16352, 32);
397 f(16863, 33);
398 f(32193, 63);
399 f(32704, 64);
400 f(33215, 65);
401 f(64897, 127);
402 f(65408, 128);
403 f(65919, 129);
404 f(130305, 255);
405 f(130816, 256);
406 f(131327, 257);
407 f(261121, 511);
408 x = 512;
409 f(0, 0);
410 f(512, 1);
411 f(1024, 2);
412 f(1536, 3);
413 f(2048, 4);
414 f(2560, 5);
415 f(3584, 7);
416 f(4096, 8);
417 f(4608, 9);
418 f(7680, 15);
419 f(8192, 16);
420 f(8704, 17);
421 f(15872, 31);
422 f(16384, 32);
423 f(16896, 33);
424 f(32256, 63);
425 f(32768, 64);
426 f(33280, 65);
427 f(65024, 127);
428 f(65536, 128);
429 f(66048, 129);
430 f(130560, 255);
431 f(131072, 256);
432 f(131584, 257);
433 f(261632, 511);
434 f(262144, 512);
435 x = 513;
436 f(0, 0);
437 f(513, 1);
438 f(1026, 2);
439 f(1539, 3);
440 f(2052, 4);
441 f(2565, 5);
442 f(3591, 7);
443 f(4104, 8);
444 f(4617, 9);
445 f(7695, 15);
446 f(8208, 16);
447 f(8721, 17);
448 f(15903, 31);
449 f(16416, 32);
450 f(16929, 33);
451 f(32319, 63);
452 f(32832, 64);
453 f(33345, 65);
454 f(65151, 127);
455 f(65664, 128);
456 f(66177, 129);
457 f(130815, 255);
458 f(131328, 256);
459 f(131841, 257);
460 f(262143, 511);
461 f(262656, 512);
462 f(263169, 513);
463 x = 1023;
464 f(0, 0);
465 f(1023, 1);
466 f(2046, 2);
467 f(3069, 3);
468 f(4092, 4);
469 f(5115, 5);
470 f(7161, 7);
471 f(8184, 8);
472 f(9207, 9);
473 f(15345, 15);
474 f(16368, 16);
475 f(17391, 17);
476 f(31713, 31);
477 f(32736, 32);
478 f(33759, 33);
479 f(64449, 63);
480 f(65472, 64);
481 f(66495, 65);
482 f(129921, 127);
483 f(130944, 128);
484 f(131967, 129);
485 f(260865, 255);
486 f(261888, 256);
487 f(262911, 257);
488 f(522753, 511);
489 f(523776, 512);
490 f(524799, 513);
491 f(1046529, 1023);
OLDNEW
« no previous file with comments | « test/mjsunit/mul-exhaustive.js ('k') | test/mjsunit/mul-exhaustive-part10.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698