js/src/jit-test/tests/ion/range-analysis.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.

     1 // |jit-test|
     3 // Only fails with Ion.
     4 function add_xors_1() {
     5     var res = 0;
     6     var step = 4;
     7     for (var i = 0x7fffffff | 0; i >= (1 << step); i -= (i >> step)) {
     8         var x = i ^ (i << 1);
     9         res += (((x + x) + res + res) | 0);
    10     }
    11     return res;
    12 }
    14 var r1 = add_xors_1();
    15 for (var i = 0; i < 100; i++) {
    16     var r2 = add_xors_1();
    17     assertEq(r2, r1);
    18 }
    20 // Only fails with JM
    21 function add_xors_2() {
    22     var res = 0;
    23     var step = 4;
    24     for (var i = 0x7fffffff | 0; i >= (1 << step); i -= (i >> step)) {
    25         var x = i ^ (i << 1);
    26         res += ((x + x) + res + res) | 0;
    27     }
    28     return res;
    29 }
    31 var r1 = add_xors_2();
    32 for (var i = 0; i < 100; i++) {
    33     var r2 = add_xors_2();
    34     assertEq(r1, r2);
    35 }

mercurial