js/src/jit-test/tests/ion/bug681185.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 function test_lsh(x, y) {
     2     return x << y;
     3 }
     5 function test_ursh(x, y) {
     6     return x >>> y;
     7 }
     9 function test_rsh(x, y) {
    10     return x >> y;
    11 }
    13 var x = 1;
    14 assertEq(test_rsh(x, -1), 0);
    15 assertEq(test_rsh(-1, x), -1);
    16 assertEq(test_ursh(x, -1), 0);
    17 assertEq(test_ursh(-1, x), 2147483647);
    18 assertEq(test_lsh(x, -1), -2147483648);
    19 assertEq(test_lsh(-1, x), -2);
    20 assertEq(test_rsh(x, 1), 0);
    21 assertEq(test_rsh(1, x), 0);
    22 assertEq(test_ursh(x, 1), 0);
    23 assertEq(test_ursh(1, x), 0);
    24 assertEq(test_lsh(x, 1), 2);
    25 assertEq(test_lsh(1, x), 2);
    26 assertEq(test_rsh(x, 0), 1);
    27 assertEq(test_rsh(0, x), 0);
    28 assertEq(test_ursh(x, 0), 1);
    29 assertEq(test_ursh(0, x), 0);
    30 assertEq(test_lsh(x, 0), 1);
    31 assertEq(test_lsh(0, x), 0);
    32 assertEq(test_rsh(x, 0xffffffff), 0);
    33 assertEq(test_rsh(0xffffffff, x), -1);
    34 assertEq(test_ursh(x, 0xffffffff), 0);
    35 assertEq(test_ursh(0xffffffff, x), 2147483647);
    36 assertEq(test_lsh(x, 0xffffffff), -2147483648);
    37 assertEq(test_lsh(0xffffffff, x), -2);
    38 assertEq(test_rsh(x, "10.6"), 0);
    39 assertEq(test_rsh("10.6", x), 5);
    40 assertEq(test_ursh(x, "10.6"), 0);
    41 assertEq(test_ursh("10.6", x), 5);
    42 assertEq(test_lsh(x, "10.6"), 1024);
    43 assertEq(test_lsh("10.6", x), 20);
    44 assertEq(test_rsh(x, 2147483648), 1);
    45 assertEq(test_rsh(2147483648, x), -1073741824);
    46 assertEq(test_ursh(x, 2147483648), 1);
    47 assertEq(test_ursh(2147483648, x), 1073741824);
    48 assertEq(test_lsh(x, 2147483648), 1);
    49 assertEq(test_lsh(2147483648, x), 0);
    50 assertEq(test_rsh(x, 4294967296), 1);
    51 assertEq(test_rsh(4294967296, x), 0);
    52 assertEq(test_ursh(x, 4294967296), 1);
    53 assertEq(test_ursh(4294967296, x), 0);
    54 assertEq(test_lsh(x, 4294967296), 1);
    55 assertEq(test_lsh(4294967296, x), 0);
    56 assertEq(test_rsh(x, undefined), 1);
    57 assertEq(test_rsh(undefined, x), 0);
    58 assertEq(test_ursh(x, undefined), 1);
    59 assertEq(test_ursh(undefined, x), 0);
    60 assertEq(test_lsh(x, undefined), 1);
    61 assertEq(test_lsh(undefined, x), 0);
    62 assertEq(test_rsh(x, null), 1);
    63 assertEq(test_rsh(null, x), 0);
    64 assertEq(test_ursh(x, null), 1);
    65 assertEq(test_ursh(null, x), 0);
    66 assertEq(test_lsh(x, null), 1);
    67 assertEq(test_lsh(null, x), 0);
    68 assertEq(test_rsh(x, false), 1);
    69 assertEq(test_rsh(false, x), 0);
    70 assertEq(test_ursh(x, false), 1);
    71 assertEq(test_ursh(false, x), 0);
    72 assertEq(test_lsh(x, false), 1);
    73 assertEq(test_lsh(false, x), 0);
    74 assertEq(test_rsh(x, true), 0);
    75 assertEq(test_rsh(true, x), 0);
    76 assertEq(test_ursh(x, true), 0);
    77 assertEq(test_ursh(true, x), 0);
    78 assertEq(test_lsh(x, true), 2);
    79 assertEq(test_lsh(true, x), 2);
    80 assertEq(test_rsh(x, -1.5), 0);
    81 assertEq(test_rsh(-1.5, x), -1);
    82 assertEq(test_ursh(x, -1.5), 0);
    83 assertEq(test_ursh(-1.5, x), 2147483647);
    84 assertEq(test_lsh(x, -1.5), -2147483648);
    85 assertEq(test_lsh(-1.5, x), -2);
    87 var x = 0;
    88 assertEq(test_rsh(x, -1), 0);
    89 assertEq(test_rsh(-1, x), -1);
    90 assertEq(test_ursh(x, -1), 0);
    91 assertEq(test_ursh(-1, x), 4294967295);
    92 assertEq(test_lsh(x, -1), 0);
    93 assertEq(test_lsh(-1, x), -1);
    94 assertEq(test_rsh(x, 1), 0);
    95 assertEq(test_rsh(1, x), 1);
    96 assertEq(test_ursh(x, 1), 0);
    97 assertEq(test_ursh(1, x), 1);
    98 assertEq(test_lsh(x, 1), 0);
    99 assertEq(test_lsh(1, x), 1);
   100 assertEq(test_rsh(x, 0), 0);
   101 assertEq(test_rsh(0, x), 0);
   102 assertEq(test_ursh(x, 0), 0);
   103 assertEq(test_ursh(0, x), 0);
   104 assertEq(test_lsh(x, 0), 0);
   105 assertEq(test_lsh(0, x), 0);
   106 assertEq(test_rsh(x, 0xffffffff), 0);
   107 assertEq(test_rsh(0xffffffff, x), -1);
   108 assertEq(test_ursh(x, 0xffffffff), 0);
   109 assertEq(test_ursh(0xffffffff, x), 4294967295);
   110 assertEq(test_lsh(x, 0xffffffff), 0);
   111 assertEq(test_lsh(0xffffffff, x), -1);
   112 assertEq(test_rsh(x, "10.6"), 0);
   113 assertEq(test_rsh("10.6", x), 10);
   114 assertEq(test_ursh(x, "10.6"), 0);
   115 assertEq(test_ursh("10.6", x), 10);
   116 assertEq(test_lsh(x, "10.6"), 0);
   117 assertEq(test_lsh("10.6", x), 10);
   118 assertEq(test_rsh(x, 2147483648), 0);
   119 assertEq(test_rsh(2147483648, x), -2147483648);
   120 assertEq(test_ursh(x, 2147483648), 0);
   121 assertEq(test_ursh(2147483648, x), 2147483648);
   122 assertEq(test_lsh(x, 2147483648), 0);
   123 assertEq(test_lsh(2147483648, x), -2147483648);
   124 assertEq(test_rsh(x, 4294967296), 0);
   125 assertEq(test_rsh(4294967296, x), 0);
   126 assertEq(test_ursh(x, 4294967296), 0);
   127 assertEq(test_ursh(4294967296, x), 0);
   128 assertEq(test_lsh(x, 4294967296), 0);
   129 assertEq(test_lsh(4294967296, x), 0);
   130 assertEq(test_rsh(x, undefined), 0);
   131 assertEq(test_rsh(undefined, x), 0);
   132 assertEq(test_ursh(x, undefined), 0);
   133 assertEq(test_ursh(undefined, x), 0);
   134 assertEq(test_lsh(x, undefined), 0);
   135 assertEq(test_lsh(undefined, x), 0);
   136 assertEq(test_rsh(x, null), 0);
   137 assertEq(test_rsh(null, x), 0);
   138 assertEq(test_ursh(x, null), 0);
   139 assertEq(test_ursh(null, x), 0);
   140 assertEq(test_lsh(x, null), 0);
   141 assertEq(test_lsh(null, x), 0);
   142 assertEq(test_rsh(x, false), 0);
   143 assertEq(test_rsh(false, x), 0);
   144 assertEq(test_ursh(x, false), 0);
   145 assertEq(test_ursh(false, x), 0);
   146 assertEq(test_lsh(x, false), 0);
   147 assertEq(test_lsh(false, x), 0);
   148 assertEq(test_rsh(x, true), 0);
   149 assertEq(test_rsh(true, x), 1);
   150 assertEq(test_ursh(x, true), 0);
   151 assertEq(test_ursh(true, x), 1);
   152 assertEq(test_lsh(x, true), 0);
   153 assertEq(test_lsh(true, x), 1);
   154 assertEq(test_rsh(x, -1.5), 0);
   155 assertEq(test_rsh(-1.5, x), -1);
   156 assertEq(test_ursh(x, -1.5), 0);
   157 assertEq(test_ursh(-1.5, x), 4294967295);
   158 assertEq(test_lsh(x, -1.5), 0);
   159 assertEq(test_lsh(-1.5, x), -1);
   161 var x = -1;
   162 assertEq(test_rsh(x, -1), -1);
   163 assertEq(test_rsh(-1, x), -1);
   164 assertEq(test_ursh(x, -1), 1);
   165 assertEq(test_ursh(-1, x), 1);
   166 assertEq(test_lsh(x, -1), -2147483648);
   167 assertEq(test_lsh(-1, x), -2147483648);
   168 assertEq(test_rsh(x, 1), -1);
   169 assertEq(test_rsh(1, x), 0);
   170 assertEq(test_ursh(x, 1), 2147483647);
   171 assertEq(test_ursh(1, x), 0);
   172 assertEq(test_lsh(x, 1), -2);
   173 assertEq(test_lsh(1, x), -2147483648);
   174 assertEq(test_rsh(x, 0), -1);
   175 assertEq(test_rsh(0, x), 0);
   176 assertEq(test_ursh(x, 0), 4294967295);
   177 assertEq(test_ursh(0, x), 0);
   178 assertEq(test_lsh(x, 0), -1);
   179 assertEq(test_lsh(0, x), 0);
   180 assertEq(test_rsh(x, 0xffffffff), -1);
   181 assertEq(test_rsh(0xffffffff, x), -1);
   182 assertEq(test_ursh(x, 0xffffffff), 1);
   183 assertEq(test_ursh(0xffffffff, x), 1);
   184 assertEq(test_lsh(x, 0xffffffff), -2147483648);
   185 assertEq(test_lsh(0xffffffff, x), -2147483648);
   186 assertEq(test_rsh(x, "10.6"), -1);
   187 assertEq(test_rsh("10.6", x), 0);
   188 assertEq(test_ursh(x, "10.6"), 4194303);
   189 assertEq(test_ursh("10.6", x), 0);
   190 assertEq(test_lsh(x, "10.6"), -1024);
   191 assertEq(test_lsh("10.6", x), 0);
   192 assertEq(test_rsh(x, 2147483648), -1);
   193 assertEq(test_rsh(2147483648, x), -1);
   194 assertEq(test_ursh(x, 2147483648), 4294967295);
   195 assertEq(test_ursh(2147483648, x), 1);
   196 assertEq(test_lsh(x, 2147483648), -1);
   197 assertEq(test_lsh(2147483648, x), 0);
   198 assertEq(test_rsh(x, 4294967296), -1);
   199 assertEq(test_rsh(4294967296, x), 0);
   200 assertEq(test_ursh(x, 4294967296), 4294967295);
   201 assertEq(test_ursh(4294967296, x), 0);
   202 assertEq(test_lsh(x, 4294967296), -1);
   203 assertEq(test_lsh(4294967296, x), 0);
   204 assertEq(test_rsh(x, undefined), -1);
   205 assertEq(test_rsh(undefined, x), 0);
   206 assertEq(test_ursh(x, undefined), 4294967295);
   207 assertEq(test_ursh(undefined, x), 0);
   208 assertEq(test_lsh(x, undefined), -1);
   209 assertEq(test_lsh(undefined, x), 0);
   210 assertEq(test_rsh(x, null), -1);
   211 assertEq(test_rsh(null, x), 0);
   212 assertEq(test_ursh(x, null), 4294967295);
   213 assertEq(test_ursh(null, x), 0);
   214 assertEq(test_lsh(x, null), -1);
   215 assertEq(test_lsh(null, x), 0);
   216 assertEq(test_rsh(x, false), -1);
   217 assertEq(test_rsh(false, x), 0);
   218 assertEq(test_ursh(x, false), 4294967295);
   219 assertEq(test_ursh(false, x), 0);
   220 assertEq(test_lsh(x, false), -1);
   221 assertEq(test_lsh(false, x), 0);
   222 assertEq(test_rsh(x, true), -1);
   223 assertEq(test_rsh(true, x), 0);
   224 assertEq(test_ursh(x, true), 2147483647);
   225 assertEq(test_ursh(true, x), 0);
   226 assertEq(test_lsh(x, true), -2);
   227 assertEq(test_lsh(true, x), -2147483648);
   228 assertEq(test_rsh(x, -1.5), -1);
   229 assertEq(test_rsh(-1.5, x), -1);
   230 assertEq(test_ursh(x, -1.5), 1);
   231 assertEq(test_ursh(-1.5, x), 1);
   232 assertEq(test_lsh(x, -1.5), -2147483648);
   233 assertEq(test_lsh(-1.5, x), -2147483648);
   237 assertEq(test_ursh(0, -2147483648), 0);
   238 assertEq(test_ursh(0, 2147483648), 0);
   239 assertEq(test_ursh(0, 45), 0);
   240 assertEq(test_ursh(0, -45), 0);
   241 assertEq(test_ursh(100, -2147483648), 100);
   242 assertEq(test_ursh(100, 2147483648), 100);
   243 assertEq(test_ursh(100, 45), 0);
   244 assertEq(test_ursh(100, -45), 0);
   245 assertEq(test_ursh(-100, -2147483648), 4294967196);
   246 assertEq(test_ursh(-100, 2147483648), 4294967196);
   247 assertEq(test_ursh(-100, 45), 524287);
   248 assertEq(test_ursh(-100, -45), 8191);
   252 function test1() {
   253     var i = 0;
   254     return 2147483647 >>> i;
   255 }
   256 assertEq(test1(), 2147483647);
   257 function test2() {
   258     var i = 1;
   259     return 2147483647 >>> i;
   260 }
   261 assertEq(test2(), 1073741823);
   262 function test3() {
   263     var i = 0;
   264     return -1 >>> i;
   265 }
   266 assertEq(test3(), 4294967295);
   267 function test4() {
   268     var i = 3;
   269     return -1 >>> i;
   270 }
   271 assertEq(test4(), 536870911);
   272 function test5() {
   273     var i = 0;
   274     return -3648 >>> i;
   275 }
   276 assertEq(test5(), 4294963648);

mercurial