tor-browser

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

arith.js (723B)


      1 /* Handle recompilation of arithmetic operations, and on-stack int -> double conversion. */
      2 
      3 function add(x, y)
      4 {
      5  var z = x + y;
      6  assertEq(z, 2147483732);
      7  assertEq(z - 10, 2147483722);
      8 }
      9 add(0x7ffffff0, 100);
     10 
     11 function mul(x, y)
     12 {
     13  var z = x * y;
     14  assertEq(z, 4294967264);
     15 }
     16 mul(0x7ffffff0, 2);
     17 
     18 function div1(x, y)
     19 {
     20  var z = x / y;
     21  assertEq(z + 10, 20);
     22 }
     23 div1(100, 10);
     24 
     25 function div2(x, y)
     26 {
     27  var z = x / y;
     28  assertEq(z + 10, 20.5);
     29 }
     30 div2(105, 10);
     31 
     32 function uncopy(x, y)
     33 {
     34  var q = x;
     35  x += y;
     36  q++;
     37  assertEq(q, 2147483633);
     38  assertEq(x, 2147483732);
     39 }
     40 uncopy(0x7ffffff0, 100);
     41 
     42 function addmore(x, y)
     43 {
     44  var q = (x + 10) + (x + y);
     45  assertEq(q, 4294967374);
     46  x = q;
     47 }
     48 addmore(0x7ffffff0, 100);