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

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     2 /* Handle recompilation on overflow of inc/dec operations. */
     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();
    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();
    24 function arg(j)
    25 {
    26   for (var i = 0; i < 100; i++)
    27     j++;
    28   assertEq(j, 2147483732);
    29 }
    30 arg(0x7ffffff0);
    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);
    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);
    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();
    59 function gname()
    60 {
    61   n = 0x7ffffff0;
    62   for (var i = 0; i < 100; i++)
    63     n++;
    64   assertEq(n, 2147483732);
    65 }
    66 gname();
    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();
    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");
    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