Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
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 }
12 for (var i=0; i<10; i++)
13 [173, 173, 173].sort(f);
14 assertEq(called, true);
15 }
16 testOverflow();
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 }
29 for (var i=0; i<10; i++)
30 [173, 173, 173].sort(f);
31 assertEq(called, true);
32 }
33 testEqual();
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 }
47 for (var i=0; i<10; i++)
48 [173, 173, 173].sort(f);
49 assertEq(called, true);
50 }
51 testUnderflow();
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 }
69 for (var i=0; i<10; i++)
70 [173, 173, 173].map(f);
71 assertEq(called, 30);
72 }
73 testUnderflowMany();