bug681185.js (8767B)
1 function test_lsh(x, y) { 2 return x << y; 3 } 4 5 function test_ursh(x, y) { 6 return x >>> y; 7 } 8 9 function test_rsh(x, y) { 10 return x >> y; 11 } 12 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); 86 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); 160 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); 234 235 236 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); 249 250 251 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);