tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

incdec.js (1310B)


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