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.

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

mercurial