js/src/jit-test/tests/ion/bug809021.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:d123f2acd0d9
1 // nactuals > nformals
2 function testOverflow() {
3 var called = false;
4 function f(a) {
5 assertEq(a, 173);
6 assertEq(arguments.length, 2);
7 assertEq(arguments[0], a);
8 assertEq(arguments[1], a);
9 called = true;
10 }
11
12 for (var i=0; i<10; i++)
13 [173, 173, 173].sort(f);
14 assertEq(called, true);
15 }
16 testOverflow();
17
18 // nactuals == nformals
19 function testEqual() {
20 var called = false;
21 function f(a, b) {
22 assertEq(a, 173);
23 assertEq(arguments.length, 2);
24 assertEq(arguments[0], a);
25 assertEq(arguments[1], b);
26 called = true;
27 }
28
29 for (var i=0; i<10; i++)
30 [173, 173, 173].sort(f);
31 assertEq(called, true);
32 }
33 testEqual();
34
35 // nactuals < nformals
36 function testUnderflow() {
37 var called = false;
38 function f(a, b, c) {
39 assertEq(a, 173);
40 assertEq(c, undefined);
41 assertEq(arguments.length, 2);
42 assertEq(arguments[0], a);
43 assertEq(arguments[1], b);
44 called = true;
45 }
46
47 for (var i=0; i<10; i++)
48 [173, 173, 173].sort(f);
49 assertEq(called, true);
50 }
51 testUnderflow();
52
53 function testUnderflowMany() {
54 var called = 0;
55 function f(a, b, c, d, e, f, g, h) {
56 assertEq(a, 173);
57 assertEq(arguments.length, 3);
58 assertEq(arguments[0], a);
59 assertEq(arguments[1] < 3, true);
60 assertEq(c.length, 3);
61 assertEq(d, undefined);
62 assertEq(e, undefined);
63 assertEq(f, undefined);
64 assertEq(g, undefined);
65 assertEq(h, undefined);
66 called += 1;
67 }
68
69 for (var i=0; i<10; i++)
70 [173, 173, 173].map(f);
71 assertEq(called, 30);
72 }
73 testUnderflowMany();

mercurial