js/src/jit-test/tests/jaeger/recompile/incdec.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:86d6e2ec18f9
1
2 /* Handle recompilation on overflow of inc/dec operations. */
3
4 function local()
5 {
6 var j = 0x7ffffff0;
7 for (var i = 0; i < 100; i++)
8 j++;
9 assertEq(j, 2147483732);
10 }
11 local();
12
13 function olocal()
14 {
15 var j = 0x7ffffff0;
16 for (var i = 0; i < 100; i++) {
17 if (j++ == 5000)
18 break;
19 }
20 assertEq(j, 2147483732);
21 }
22 olocal();
23
24 function arg(j)
25 {
26 for (var i = 0; i < 100; i++)
27 j++;
28 assertEq(j, 2147483732);
29 }
30 arg(0x7ffffff0);
31
32 function oarg(j)
33 {
34 for (var i = 0; i < 100; i++) {
35 if (j++ == 5000)
36 break;
37 }
38 assertEq(j, 2147483732);
39 }
40 oarg(0x7ffffff0);
41
42 // basic global inc/dec correctness
43 var x = 1.23;
44 x = x--;
45 x = x++;
46 x = ++x;
47 x = --x;
48 assertEq(x, 1.23);
49
50 var g = 0x7ffffff0;
51 function glob()
52 {
53 for (var i = 0; i < 100; i++)
54 g++;
55 assertEq(g, 2147483732);
56 }
57 glob();
58
59 function gname()
60 {
61 n = 0x7ffffff0;
62 for (var i = 0; i < 100; i++)
63 n++;
64 assertEq(n, 2147483732);
65 }
66 gname();
67
68 function prop()
69 {
70 var v = {f: 0x7ffffff0};
71 for (var i = 0; i < 100; i++)
72 v.f++;
73 assertEq(v.f, 2147483732);
74 }
75 prop();
76
77 function elem(v, f)
78 {
79 for (var i = 0; i < 100; i++)
80 v[f]++;
81 assertEq(v.f, 2147483732);
82 }
83 elem({f: 0x7ffffff0}, "f");
84
85 function name()
86 {
87 var v = 0x7ffffff0;
88 var i;
89 eval("for (i = 0; i < 100; i++) v++");
90 assertEq(v + 10, 2147483742);
91 }
92 name();

mercurial