/* Handle recompilation on overflow of inc/dec operations. */ function local() { var j = 0x7ffffff0; for (var i = 0; i < 100; i++) j++; assertEq(j, 2147483732); } local(); function olocal() { var j = 0x7ffffff0; for (var i = 0; i < 100; i++) { if (j++ == 5000) break; } assertEq(j, 2147483732); } olocal(); function arg(j) { for (var i = 0; i < 100; i++) j++; assertEq(j, 2147483732); } arg(0x7ffffff0); function oarg(j) { for (var i = 0; i < 100; i++) { if (j++ == 5000) break; } assertEq(j, 2147483732); } oarg(0x7ffffff0); // basic global inc/dec correctness var x = 1.23; x = x--; x = x++; x = ++x; x = --x; assertEq(x, 1.23); var g = 0x7ffffff0; function glob() { for (var i = 0; i < 100; i++) g++; assertEq(g, 2147483732); } glob(); function gname() { n = 0x7ffffff0; for (var i = 0; i < 100; i++) n++; assertEq(n, 2147483732); } gname(); function prop() { var v = {f: 0x7ffffff0}; for (var i = 0; i < 100; i++) v.f++; assertEq(v.f, 2147483732); } prop(); function elem(v, f) { for (var i = 0; i < 100; i++) v[f]++; assertEq(v.f, 2147483732); } elem({f: 0x7ffffff0}, "f"); function name() { var v = 0x7ffffff0; var i; eval("for (i = 0; i < 100; i++) v++"); assertEq(v + 10, 2147483742); } name();