bigint-arithmetic.js (20049B)
1 // Copyright (C) 2017 Robin Templeton. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 esid: sec-multiplicative-operators-runtime-semantics-evaluation 5 description: BigInt multiplication arithmetic 6 features: [BigInt] 7 ---*/ 8 assert.sameValue( 9 0xFEDCBA9876543210n * 0xFEDCBA9876543210n, 10 0xFDBAC097C8DC5ACCDEEC6CD7A44A4100n, 11 'The result of (0xFEDCBA9876543210n * 0xFEDCBA9876543210n) is 0xFDBAC097C8DC5ACCDEEC6CD7A44A4100n' 12 ); 13 14 assert.sameValue( 15 0xFEDCBA9876543210n * 0xFEDCBA987654320Fn, 16 0xFDBAC097C8DC5ACBE00FB23F2DF60EF0n, 17 'The result of (0xFEDCBA9876543210n * 0xFEDCBA987654320Fn) is 0xFDBAC097C8DC5ACBE00FB23F2DF60EF0n' 18 ); 19 20 assert.sameValue( 21 0xFEDCBA9876543210n * 0xFEDCBA98n, 22 0xFDBAC097530ECA86541D5980n, 23 'The result of (0xFEDCBA9876543210n * 0xFEDCBA98n) is 0xFDBAC097530ECA86541D5980n' 24 ); 25 26 assert.sameValue( 27 0xFEDCBA9876543210n * 0xFEDCBA97n, 28 0xFDBAC09654320FEDDDC92770n, 29 'The result of (0xFEDCBA9876543210n * 0xFEDCBA97n) is 0xFDBAC09654320FEDDDC92770n' 30 ); 31 32 assert.sameValue( 33 0xFEDCBA9876543210n * 0x1234n, 34 0x121F49F49F49F49F4B40n, 35 'The result of (0xFEDCBA9876543210n * 0x1234n) is 0x121F49F49F49F49F4B40n' 36 ); 37 38 assert.sameValue( 39 0xFEDCBA9876543210n * 0x3n, 40 0x2FC962FC962FC9630n, 41 'The result of (0xFEDCBA9876543210n * 0x3n) is 0x2FC962FC962FC9630n' 42 ); 43 44 assert.sameValue( 45 0xFEDCBA9876543210n * 0x2n, 46 0x1FDB97530ECA86420n, 47 'The result of (0xFEDCBA9876543210n * 0x2n) is 0x1FDB97530ECA86420n' 48 ); 49 50 assert.sameValue( 51 0xFEDCBA9876543210n * 0x1n, 52 0xFEDCBA9876543210n, 53 'The result of (0xFEDCBA9876543210n * 0x1n) is 0xFEDCBA9876543210n' 54 ); 55 56 assert.sameValue( 57 0xFEDCBA9876543210n * 0x0n, 58 0x0n, 59 'The result of (0xFEDCBA9876543210n * 0x0n) is 0x0n' 60 ); 61 62 assert.sameValue( 63 0xFEDCBA9876543210n * -0x1n, 64 -0xFEDCBA9876543210n, 65 'The result of (0xFEDCBA9876543210n * -0x1n) is -0xFEDCBA9876543210n' 66 ); 67 68 assert.sameValue( 69 0xFEDCBA9876543210n * -0x2n, 70 -0x1FDB97530ECA86420n, 71 'The result of (0xFEDCBA9876543210n * -0x2n) is -0x1FDB97530ECA86420n' 72 ); 73 74 assert.sameValue( 75 0xFEDCBA9876543210n * -0x3n, 76 -0x2FC962FC962FC9630n, 77 'The result of (0xFEDCBA9876543210n * -0x3n) is -0x2FC962FC962FC9630n' 78 ); 79 80 assert.sameValue( 81 0xFEDCBA9876543210n * -0x1234n, 82 -0x121F49F49F49F49F4B40n, 83 'The result of (0xFEDCBA9876543210n * -0x1234n) is -0x121F49F49F49F49F4B40n' 84 ); 85 86 assert.sameValue( 87 0xFEDCBA9876543210n * -0xFEDCBA97n, 88 -0xFDBAC09654320FEDDDC92770n, 89 'The result of (0xFEDCBA9876543210n * -0xFEDCBA97n) is -0xFDBAC09654320FEDDDC92770n' 90 ); 91 92 assert.sameValue( 93 0xFEDCBA9876543210n * -0xFEDCBA98n, 94 -0xFDBAC097530ECA86541D5980n, 95 'The result of (0xFEDCBA9876543210n * -0xFEDCBA98n) is -0xFDBAC097530ECA86541D5980n' 96 ); 97 98 assert.sameValue( 99 0xFEDCBA9876543210n * -0xFEDCBA987654320Fn, 100 -0xFDBAC097C8DC5ACBE00FB23F2DF60EF0n, 101 'The result of (0xFEDCBA9876543210n * -0xFEDCBA987654320Fn) is -0xFDBAC097C8DC5ACBE00FB23F2DF60EF0n' 102 ); 103 104 assert.sameValue( 105 0xFEDCBA9876543210n * -0xFEDCBA9876543210n, 106 -0xFDBAC097C8DC5ACCDEEC6CD7A44A4100n, 107 'The result of (0xFEDCBA9876543210n * -0xFEDCBA9876543210n) is -0xFDBAC097C8DC5ACCDEEC6CD7A44A4100n' 108 ); 109 110 assert.sameValue( 111 0xFEDCBA987654320Fn * 0xFEDCBA987654320Fn, 112 0xFDBAC097C8DC5ACAE132F7A6B7A1DCE1n, 113 'The result of (0xFEDCBA987654320Fn * 0xFEDCBA987654320Fn) is 0xFDBAC097C8DC5ACAE132F7A6B7A1DCE1n' 114 ); 115 116 assert.sameValue( 117 0xFEDCBA987654320Fn * 0xFEDCBA98n, 118 0xFDBAC097530ECA8555409EE8n, 119 'The result of (0xFEDCBA987654320Fn * 0xFEDCBA98n) is 0xFDBAC097530ECA8555409EE8n' 120 ); 121 122 assert.sameValue( 123 0xFEDCBA987654320Fn * 0xFEDCBA97n, 124 0xFDBAC09654320FECDEEC6CD9n, 125 'The result of (0xFEDCBA987654320Fn * 0xFEDCBA97n) is 0xFDBAC09654320FECDEEC6CD9n' 126 ); 127 128 assert.sameValue( 129 0xFEDCBA987654320Fn * 0x1234n, 130 0x121F49F49F49F49F390Cn, 131 'The result of (0xFEDCBA987654320Fn * 0x1234n) is 0x121F49F49F49F49F390Cn' 132 ); 133 134 assert.sameValue( 135 0xFEDCBA987654320Fn * 0x3n, 136 0x2FC962FC962FC962Dn, 137 'The result of (0xFEDCBA987654320Fn * 0x3n) is 0x2FC962FC962FC962Dn' 138 ); 139 140 assert.sameValue( 141 0xFEDCBA987654320Fn * 0x2n, 142 0x1FDB97530ECA8641En, 143 'The result of (0xFEDCBA987654320Fn * 0x2n) is 0x1FDB97530ECA8641En' 144 ); 145 146 assert.sameValue( 147 0xFEDCBA987654320Fn * 0x1n, 148 0xFEDCBA987654320Fn, 149 'The result of (0xFEDCBA987654320Fn * 0x1n) is 0xFEDCBA987654320Fn' 150 ); 151 152 assert.sameValue( 153 0xFEDCBA987654320Fn * 0x0n, 154 0x0n, 155 'The result of (0xFEDCBA987654320Fn * 0x0n) is 0x0n' 156 ); 157 158 assert.sameValue( 159 0xFEDCBA987654320Fn * -0x1n, 160 -0xFEDCBA987654320Fn, 161 'The result of (0xFEDCBA987654320Fn * -0x1n) is -0xFEDCBA987654320Fn' 162 ); 163 164 assert.sameValue( 165 0xFEDCBA987654320Fn * -0x2n, 166 -0x1FDB97530ECA8641En, 167 'The result of (0xFEDCBA987654320Fn * -0x2n) is -0x1FDB97530ECA8641En' 168 ); 169 170 assert.sameValue( 171 0xFEDCBA987654320Fn * -0x3n, 172 -0x2FC962FC962FC962Dn, 173 'The result of (0xFEDCBA987654320Fn * -0x3n) is -0x2FC962FC962FC962Dn' 174 ); 175 176 assert.sameValue( 177 0xFEDCBA987654320Fn * -0x1234n, 178 -0x121F49F49F49F49F390Cn, 179 'The result of (0xFEDCBA987654320Fn * -0x1234n) is -0x121F49F49F49F49F390Cn' 180 ); 181 182 assert.sameValue( 183 0xFEDCBA987654320Fn * -0xFEDCBA97n, 184 -0xFDBAC09654320FECDEEC6CD9n, 185 'The result of (0xFEDCBA987654320Fn * -0xFEDCBA97n) is -0xFDBAC09654320FECDEEC6CD9n' 186 ); 187 188 assert.sameValue( 189 0xFEDCBA987654320Fn * -0xFEDCBA98n, 190 -0xFDBAC097530ECA8555409EE8n, 191 'The result of (0xFEDCBA987654320Fn * -0xFEDCBA98n) is -0xFDBAC097530ECA8555409EE8n' 192 ); 193 194 assert.sameValue( 195 0xFEDCBA987654320Fn * -0xFEDCBA987654320Fn, 196 -0xFDBAC097C8DC5ACAE132F7A6B7A1DCE1n, 197 'The result of (0xFEDCBA987654320Fn * -0xFEDCBA987654320Fn) is -0xFDBAC097C8DC5ACAE132F7A6B7A1DCE1n' 198 ); 199 200 assert.sameValue( 201 0xFEDCBA987654320Fn * -0xFEDCBA9876543210n, 202 -0xFDBAC097C8DC5ACBE00FB23F2DF60EF0n, 203 'The result of (0xFEDCBA987654320Fn * -0xFEDCBA9876543210n) is -0xFDBAC097C8DC5ACBE00FB23F2DF60EF0n' 204 ); 205 206 assert.sameValue( 207 0xFEDCBA98n * 0xFEDCBA98n, 208 0xFDBAC096DD413A40n, 209 'The result of (0xFEDCBA98n * 0xFEDCBA98n) is 0xFDBAC096DD413A40n' 210 ); 211 212 assert.sameValue( 213 0xFEDCBA98n * 0xFEDCBA97n, 214 0xFDBAC095DE647FA8n, 215 'The result of (0xFEDCBA98n * 0xFEDCBA97n) is 0xFDBAC095DE647FA8n' 216 ); 217 218 assert.sameValue( 219 0xFEDCBA98n * 0x1234n, 220 0x121F49F496E0n, 221 'The result of (0xFEDCBA98n * 0x1234n) is 0x121F49F496E0n' 222 ); 223 224 assert.sameValue( 225 0xFEDCBA98n * 0x3n, 226 0x2FC962FC8n, 227 'The result of (0xFEDCBA98n * 0x3n) is 0x2FC962FC8n' 228 ); 229 230 assert.sameValue( 231 0xFEDCBA98n * 0x2n, 232 0x1FDB97530n, 233 'The result of (0xFEDCBA98n * 0x2n) is 0x1FDB97530n' 234 ); 235 236 assert.sameValue( 237 0xFEDCBA98n * 0x1n, 238 0xFEDCBA98n, 239 'The result of (0xFEDCBA98n * 0x1n) is 0xFEDCBA98n' 240 ); 241 242 assert.sameValue(0xFEDCBA98n * 0x0n, 0x0n, 'The result of (0xFEDCBA98n * 0x0n) is 0x0n'); 243 244 assert.sameValue( 245 0xFEDCBA98n * -0x1n, 246 -0xFEDCBA98n, 247 'The result of (0xFEDCBA98n * -0x1n) is -0xFEDCBA98n' 248 ); 249 250 assert.sameValue( 251 0xFEDCBA98n * -0x2n, 252 -0x1FDB97530n, 253 'The result of (0xFEDCBA98n * -0x2n) is -0x1FDB97530n' 254 ); 255 256 assert.sameValue( 257 0xFEDCBA98n * -0x3n, 258 -0x2FC962FC8n, 259 'The result of (0xFEDCBA98n * -0x3n) is -0x2FC962FC8n' 260 ); 261 262 assert.sameValue( 263 0xFEDCBA98n * -0x1234n, 264 -0x121F49F496E0n, 265 'The result of (0xFEDCBA98n * -0x1234n) is -0x121F49F496E0n' 266 ); 267 268 assert.sameValue( 269 0xFEDCBA98n * -0xFEDCBA97n, 270 -0xFDBAC095DE647FA8n, 271 'The result of (0xFEDCBA98n * -0xFEDCBA97n) is -0xFDBAC095DE647FA8n' 272 ); 273 274 assert.sameValue( 275 0xFEDCBA98n * -0xFEDCBA98n, 276 -0xFDBAC096DD413A40n, 277 'The result of (0xFEDCBA98n * -0xFEDCBA98n) is -0xFDBAC096DD413A40n' 278 ); 279 280 assert.sameValue( 281 0xFEDCBA98n * -0xFEDCBA987654320Fn, 282 -0xFDBAC097530ECA8555409EE8n, 283 'The result of (0xFEDCBA98n * -0xFEDCBA987654320Fn) is -0xFDBAC097530ECA8555409EE8n' 284 ); 285 286 assert.sameValue( 287 0xFEDCBA98n * -0xFEDCBA9876543210n, 288 -0xFDBAC097530ECA86541D5980n, 289 'The result of (0xFEDCBA98n * -0xFEDCBA9876543210n) is -0xFDBAC097530ECA86541D5980n' 290 ); 291 292 assert.sameValue( 293 0xFEDCBA97n * 0xFEDCBA97n, 294 0xFDBAC094DF87C511n, 295 'The result of (0xFEDCBA97n * 0xFEDCBA97n) is 0xFDBAC094DF87C511n' 296 ); 297 298 assert.sameValue( 299 0xFEDCBA97n * 0x1234n, 300 0x121F49F484ACn, 301 'The result of (0xFEDCBA97n * 0x1234n) is 0x121F49F484ACn' 302 ); 303 304 assert.sameValue( 305 0xFEDCBA97n * 0x3n, 306 0x2FC962FC5n, 307 'The result of (0xFEDCBA97n * 0x3n) is 0x2FC962FC5n' 308 ); 309 310 assert.sameValue( 311 0xFEDCBA97n * 0x2n, 312 0x1FDB9752En, 313 'The result of (0xFEDCBA97n * 0x2n) is 0x1FDB9752En' 314 ); 315 316 assert.sameValue( 317 0xFEDCBA97n * 0x1n, 318 0xFEDCBA97n, 319 'The result of (0xFEDCBA97n * 0x1n) is 0xFEDCBA97n' 320 ); 321 322 assert.sameValue(0xFEDCBA97n * 0x0n, 0x0n, 'The result of (0xFEDCBA97n * 0x0n) is 0x0n'); 323 324 assert.sameValue( 325 0xFEDCBA97n * -0x1n, 326 -0xFEDCBA97n, 327 'The result of (0xFEDCBA97n * -0x1n) is -0xFEDCBA97n' 328 ); 329 330 assert.sameValue( 331 0xFEDCBA97n * -0x2n, 332 -0x1FDB9752En, 333 'The result of (0xFEDCBA97n * -0x2n) is -0x1FDB9752En' 334 ); 335 336 assert.sameValue( 337 0xFEDCBA97n * -0x3n, 338 -0x2FC962FC5n, 339 'The result of (0xFEDCBA97n * -0x3n) is -0x2FC962FC5n' 340 ); 341 342 assert.sameValue( 343 0xFEDCBA97n * -0x1234n, 344 -0x121F49F484ACn, 345 'The result of (0xFEDCBA97n * -0x1234n) is -0x121F49F484ACn' 346 ); 347 348 assert.sameValue( 349 0xFEDCBA97n * -0xFEDCBA97n, 350 -0xFDBAC094DF87C511n, 351 'The result of (0xFEDCBA97n * -0xFEDCBA97n) is -0xFDBAC094DF87C511n' 352 ); 353 354 assert.sameValue( 355 0xFEDCBA97n * -0xFEDCBA98n, 356 -0xFDBAC095DE647FA8n, 357 'The result of (0xFEDCBA97n * -0xFEDCBA98n) is -0xFDBAC095DE647FA8n' 358 ); 359 360 assert.sameValue( 361 0xFEDCBA97n * -0xFEDCBA987654320Fn, 362 -0xFDBAC09654320FECDEEC6CD9n, 363 'The result of (0xFEDCBA97n * -0xFEDCBA987654320Fn) is -0xFDBAC09654320FECDEEC6CD9n' 364 ); 365 366 assert.sameValue( 367 0xFEDCBA97n * -0xFEDCBA9876543210n, 368 -0xFDBAC09654320FEDDDC92770n, 369 'The result of (0xFEDCBA97n * -0xFEDCBA9876543210n) is -0xFDBAC09654320FEDDDC92770n' 370 ); 371 372 assert.sameValue(0x1234n * 0x1234n, 0x14B5A90n, 'The result of (0x1234n * 0x1234n) is 0x14B5A90n'); 373 assert.sameValue(0x1234n * 0x3n, 0x369Cn, 'The result of (0x1234n * 0x3n) is 0x369Cn'); 374 assert.sameValue(0x1234n * 0x2n, 0x2468n, 'The result of (0x1234n * 0x2n) is 0x2468n'); 375 assert.sameValue(0x1234n * 0x1n, 0x1234n, 'The result of (0x1234n * 0x1n) is 0x1234n'); 376 assert.sameValue(0x1234n * 0x0n, 0x0n, 'The result of (0x1234n * 0x0n) is 0x0n'); 377 assert.sameValue(0x1234n * -0x1n, -0x1234n, 'The result of (0x1234n * -0x1n) is -0x1234n'); 378 assert.sameValue(0x1234n * -0x2n, -0x2468n, 'The result of (0x1234n * -0x2n) is -0x2468n'); 379 assert.sameValue(0x1234n * -0x3n, -0x369Cn, 'The result of (0x1234n * -0x3n) is -0x369Cn'); 380 381 assert.sameValue( 382 0x1234n * -0x1234n, 383 -0x14B5A90n, 384 'The result of (0x1234n * -0x1234n) is -0x14B5A90n' 385 ); 386 387 assert.sameValue( 388 0x1234n * -0xFEDCBA97n, 389 -0x121F49F484ACn, 390 'The result of (0x1234n * -0xFEDCBA97n) is -0x121F49F484ACn' 391 ); 392 393 assert.sameValue( 394 0x1234n * -0xFEDCBA98n, 395 -0x121F49F496E0n, 396 'The result of (0x1234n * -0xFEDCBA98n) is -0x121F49F496E0n' 397 ); 398 399 assert.sameValue( 400 0x1234n * -0xFEDCBA987654320Fn, 401 -0x121F49F49F49F49F390Cn, 402 'The result of (0x1234n * -0xFEDCBA987654320Fn) is -0x121F49F49F49F49F390Cn' 403 ); 404 405 assert.sameValue( 406 0x1234n * -0xFEDCBA9876543210n, 407 -0x121F49F49F49F49F4B40n, 408 'The result of (0x1234n * -0xFEDCBA9876543210n) is -0x121F49F49F49F49F4B40n' 409 ); 410 411 assert.sameValue(0x3n * 0x3n, 0x9n, 'The result of (0x3n * 0x3n) is 0x9n'); 412 assert.sameValue(0x3n * 0x2n, 0x6n, 'The result of (0x3n * 0x2n) is 0x6n'); 413 assert.sameValue(0x3n * 0x1n, 0x3n, 'The result of (0x3n * 0x1n) is 0x3n'); 414 assert.sameValue(0x3n * 0x0n, 0x0n, 'The result of (0x3n * 0x0n) is 0x0n'); 415 assert.sameValue(0x3n * -0x1n, -0x3n, 'The result of (0x3n * -0x1n) is -0x3n'); 416 assert.sameValue(0x3n * -0x2n, -0x6n, 'The result of (0x3n * -0x2n) is -0x6n'); 417 assert.sameValue(0x3n * -0x3n, -0x9n, 'The result of (0x3n * -0x3n) is -0x9n'); 418 assert.sameValue(0x3n * -0x1234n, -0x369Cn, 'The result of (0x3n * -0x1234n) is -0x369Cn'); 419 420 assert.sameValue( 421 0x3n * -0xFEDCBA97n, 422 -0x2FC962FC5n, 423 'The result of (0x3n * -0xFEDCBA97n) is -0x2FC962FC5n' 424 ); 425 426 assert.sameValue( 427 0x3n * -0xFEDCBA98n, 428 -0x2FC962FC8n, 429 'The result of (0x3n * -0xFEDCBA98n) is -0x2FC962FC8n' 430 ); 431 432 assert.sameValue( 433 0x3n * -0xFEDCBA987654320Fn, 434 -0x2FC962FC962FC962Dn, 435 'The result of (0x3n * -0xFEDCBA987654320Fn) is -0x2FC962FC962FC962Dn' 436 ); 437 438 assert.sameValue( 439 0x3n * -0xFEDCBA9876543210n, 440 -0x2FC962FC962FC9630n, 441 'The result of (0x3n * -0xFEDCBA9876543210n) is -0x2FC962FC962FC9630n' 442 ); 443 444 assert.sameValue(0x2n * 0x2n, 0x4n, 'The result of (0x2n * 0x2n) is 0x4n'); 445 assert.sameValue(0x2n * 0x1n, 0x2n, 'The result of (0x2n * 0x1n) is 0x2n'); 446 assert.sameValue(0x2n * 0x0n, 0x0n, 'The result of (0x2n * 0x0n) is 0x0n'); 447 assert.sameValue(0x2n * -0x1n, -0x2n, 'The result of (0x2n * -0x1n) is -0x2n'); 448 assert.sameValue(0x2n * -0x2n, -0x4n, 'The result of (0x2n * -0x2n) is -0x4n'); 449 assert.sameValue(0x2n * -0x3n, -0x6n, 'The result of (0x2n * -0x3n) is -0x6n'); 450 assert.sameValue(0x2n * -0x1234n, -0x2468n, 'The result of (0x2n * -0x1234n) is -0x2468n'); 451 452 assert.sameValue( 453 0x2n * -0xFEDCBA97n, 454 -0x1FDB9752En, 455 'The result of (0x2n * -0xFEDCBA97n) is -0x1FDB9752En' 456 ); 457 458 assert.sameValue( 459 0x2n * -0xFEDCBA98n, 460 -0x1FDB97530n, 461 'The result of (0x2n * -0xFEDCBA98n) is -0x1FDB97530n' 462 ); 463 464 assert.sameValue( 465 0x2n * -0xFEDCBA987654320Fn, 466 -0x1FDB97530ECA8641En, 467 'The result of (0x2n * -0xFEDCBA987654320Fn) is -0x1FDB97530ECA8641En' 468 ); 469 470 assert.sameValue( 471 0x2n * -0xFEDCBA9876543210n, 472 -0x1FDB97530ECA86420n, 473 'The result of (0x2n * -0xFEDCBA9876543210n) is -0x1FDB97530ECA86420n' 474 ); 475 476 assert.sameValue(0x1n * 0x1n, 0x1n, 'The result of (0x1n * 0x1n) is 0x1n'); 477 assert.sameValue(0x1n * 0x0n, 0x0n, 'The result of (0x1n * 0x0n) is 0x0n'); 478 assert.sameValue(0x1n * -0x1n, -0x1n, 'The result of (0x1n * -0x1n) is -0x1n'); 479 assert.sameValue(0x1n * -0x2n, -0x2n, 'The result of (0x1n * -0x2n) is -0x2n'); 480 assert.sameValue(0x1n * -0x3n, -0x3n, 'The result of (0x1n * -0x3n) is -0x3n'); 481 assert.sameValue(0x1n * -0x1234n, -0x1234n, 'The result of (0x1n * -0x1234n) is -0x1234n'); 482 483 assert.sameValue( 484 0x1n * -0xFEDCBA97n, 485 -0xFEDCBA97n, 486 'The result of (0x1n * -0xFEDCBA97n) is -0xFEDCBA97n' 487 ); 488 489 assert.sameValue( 490 0x1n * -0xFEDCBA98n, 491 -0xFEDCBA98n, 492 'The result of (0x1n * -0xFEDCBA98n) is -0xFEDCBA98n' 493 ); 494 495 assert.sameValue( 496 0x1n * -0xFEDCBA987654320Fn, 497 -0xFEDCBA987654320Fn, 498 'The result of (0x1n * -0xFEDCBA987654320Fn) is -0xFEDCBA987654320Fn' 499 ); 500 501 assert.sameValue( 502 0x1n * -0xFEDCBA9876543210n, 503 -0xFEDCBA9876543210n, 504 'The result of (0x1n * -0xFEDCBA9876543210n) is -0xFEDCBA9876543210n' 505 ); 506 507 assert.sameValue(0x0n * 0x0n, 0x0n, 'The result of (0x0n * 0x0n) is 0x0n'); 508 assert.sameValue(0x0n * -0x1n, 0x0n, 'The result of (0x0n * -0x1n) is 0x0n'); 509 assert.sameValue(0x0n * -0x2n, 0x0n, 'The result of (0x0n * -0x2n) is 0x0n'); 510 assert.sameValue(0x0n * -0x3n, 0x0n, 'The result of (0x0n * -0x3n) is 0x0n'); 511 assert.sameValue(0x0n * -0x1234n, 0x0n, 'The result of (0x0n * -0x1234n) is 0x0n'); 512 assert.sameValue(0x0n * -0xFEDCBA97n, 0x0n, 'The result of (0x0n * -0xFEDCBA97n) is 0x0n'); 513 assert.sameValue(0x0n * -0xFEDCBA98n, 0x0n, 'The result of (0x0n * -0xFEDCBA98n) is 0x0n'); 514 515 assert.sameValue( 516 0x0n * -0xFEDCBA987654320Fn, 517 0x0n, 518 'The result of (0x0n * -0xFEDCBA987654320Fn) is 0x0n' 519 ); 520 521 assert.sameValue( 522 0x0n * -0xFEDCBA9876543210n, 523 0x0n, 524 'The result of (0x0n * -0xFEDCBA9876543210n) is 0x0n' 525 ); 526 527 assert.sameValue(-0x1n * -0x1n, 0x1n, 'The result of (-0x1n * -0x1n) is 0x1n'); 528 assert.sameValue(-0x1n * -0x2n, 0x2n, 'The result of (-0x1n * -0x2n) is 0x2n'); 529 assert.sameValue(-0x1n * -0x3n, 0x3n, 'The result of (-0x1n * -0x3n) is 0x3n'); 530 assert.sameValue(-0x1n * -0x1234n, 0x1234n, 'The result of (-0x1n * -0x1234n) is 0x1234n'); 531 532 assert.sameValue( 533 -0x1n * -0xFEDCBA97n, 534 0xFEDCBA97n, 535 'The result of (-0x1n * -0xFEDCBA97n) is 0xFEDCBA97n' 536 ); 537 538 assert.sameValue( 539 -0x1n * -0xFEDCBA98n, 540 0xFEDCBA98n, 541 'The result of (-0x1n * -0xFEDCBA98n) is 0xFEDCBA98n' 542 ); 543 544 assert.sameValue( 545 -0x1n * -0xFEDCBA987654320Fn, 546 0xFEDCBA987654320Fn, 547 'The result of (-0x1n * -0xFEDCBA987654320Fn) is 0xFEDCBA987654320Fn' 548 ); 549 550 assert.sameValue( 551 -0x1n * -0xFEDCBA9876543210n, 552 0xFEDCBA9876543210n, 553 'The result of (-0x1n * -0xFEDCBA9876543210n) is 0xFEDCBA9876543210n' 554 ); 555 556 assert.sameValue(-0x2n * -0x2n, 0x4n, 'The result of (-0x2n * -0x2n) is 0x4n'); 557 assert.sameValue(-0x2n * -0x3n, 0x6n, 'The result of (-0x2n * -0x3n) is 0x6n'); 558 assert.sameValue(-0x2n * -0x1234n, 0x2468n, 'The result of (-0x2n * -0x1234n) is 0x2468n'); 559 560 assert.sameValue( 561 -0x2n * -0xFEDCBA97n, 562 0x1FDB9752En, 563 'The result of (-0x2n * -0xFEDCBA97n) is 0x1FDB9752En' 564 ); 565 566 assert.sameValue( 567 -0x2n * -0xFEDCBA98n, 568 0x1FDB97530n, 569 'The result of (-0x2n * -0xFEDCBA98n) is 0x1FDB97530n' 570 ); 571 572 assert.sameValue( 573 -0x2n * -0xFEDCBA987654320Fn, 574 0x1FDB97530ECA8641En, 575 'The result of (-0x2n * -0xFEDCBA987654320Fn) is 0x1FDB97530ECA8641En' 576 ); 577 578 assert.sameValue( 579 -0x2n * -0xFEDCBA9876543210n, 580 0x1FDB97530ECA86420n, 581 'The result of (-0x2n * -0xFEDCBA9876543210n) is 0x1FDB97530ECA86420n' 582 ); 583 584 assert.sameValue(-0x3n * -0x3n, 0x9n, 'The result of (-0x3n * -0x3n) is 0x9n'); 585 assert.sameValue(-0x3n * -0x1234n, 0x369Cn, 'The result of (-0x3n * -0x1234n) is 0x369Cn'); 586 587 assert.sameValue( 588 -0x3n * -0xFEDCBA97n, 589 0x2FC962FC5n, 590 'The result of (-0x3n * -0xFEDCBA97n) is 0x2FC962FC5n' 591 ); 592 593 assert.sameValue( 594 -0x3n * -0xFEDCBA98n, 595 0x2FC962FC8n, 596 'The result of (-0x3n * -0xFEDCBA98n) is 0x2FC962FC8n' 597 ); 598 599 assert.sameValue( 600 -0x3n * -0xFEDCBA987654320Fn, 601 0x2FC962FC962FC962Dn, 602 'The result of (-0x3n * -0xFEDCBA987654320Fn) is 0x2FC962FC962FC962Dn' 603 ); 604 605 assert.sameValue( 606 -0x3n * -0xFEDCBA9876543210n, 607 0x2FC962FC962FC9630n, 608 'The result of (-0x3n * -0xFEDCBA9876543210n) is 0x2FC962FC962FC9630n' 609 ); 610 611 assert.sameValue( 612 -0x1234n * -0x1234n, 613 0x14B5A90n, 614 'The result of (-0x1234n * -0x1234n) is 0x14B5A90n' 615 ); 616 617 assert.sameValue( 618 -0x1234n * -0xFEDCBA97n, 619 0x121F49F484ACn, 620 'The result of (-0x1234n * -0xFEDCBA97n) is 0x121F49F484ACn' 621 ); 622 623 assert.sameValue( 624 -0x1234n * -0xFEDCBA98n, 625 0x121F49F496E0n, 626 'The result of (-0x1234n * -0xFEDCBA98n) is 0x121F49F496E0n' 627 ); 628 629 assert.sameValue( 630 -0x1234n * -0xFEDCBA987654320Fn, 631 0x121F49F49F49F49F390Cn, 632 'The result of (-0x1234n * -0xFEDCBA987654320Fn) is 0x121F49F49F49F49F390Cn' 633 ); 634 635 assert.sameValue( 636 -0x1234n * -0xFEDCBA9876543210n, 637 0x121F49F49F49F49F4B40n, 638 'The result of (-0x1234n * -0xFEDCBA9876543210n) is 0x121F49F49F49F49F4B40n' 639 ); 640 641 assert.sameValue( 642 -0xFEDCBA97n * -0xFEDCBA97n, 643 0xFDBAC094DF87C511n, 644 'The result of (-0xFEDCBA97n * -0xFEDCBA97n) is 0xFDBAC094DF87C511n' 645 ); 646 647 assert.sameValue( 648 -0xFEDCBA97n * -0xFEDCBA98n, 649 0xFDBAC095DE647FA8n, 650 'The result of (-0xFEDCBA97n * -0xFEDCBA98n) is 0xFDBAC095DE647FA8n' 651 ); 652 653 assert.sameValue( 654 -0xFEDCBA97n * -0xFEDCBA987654320Fn, 655 0xFDBAC09654320FECDEEC6CD9n, 656 'The result of (-0xFEDCBA97n * -0xFEDCBA987654320Fn) is 0xFDBAC09654320FECDEEC6CD9n' 657 ); 658 659 assert.sameValue( 660 -0xFEDCBA97n * -0xFEDCBA9876543210n, 661 0xFDBAC09654320FEDDDC92770n, 662 'The result of (-0xFEDCBA97n * -0xFEDCBA9876543210n) is 0xFDBAC09654320FEDDDC92770n' 663 ); 664 665 assert.sameValue( 666 -0xFEDCBA98n * -0xFEDCBA98n, 667 0xFDBAC096DD413A40n, 668 'The result of (-0xFEDCBA98n * -0xFEDCBA98n) is 0xFDBAC096DD413A40n' 669 ); 670 671 assert.sameValue( 672 -0xFEDCBA98n * -0xFEDCBA987654320Fn, 673 0xFDBAC097530ECA8555409EE8n, 674 'The result of (-0xFEDCBA98n * -0xFEDCBA987654320Fn) is 0xFDBAC097530ECA8555409EE8n' 675 ); 676 677 assert.sameValue( 678 -0xFEDCBA98n * -0xFEDCBA9876543210n, 679 0xFDBAC097530ECA86541D5980n, 680 'The result of (-0xFEDCBA98n * -0xFEDCBA9876543210n) is 0xFDBAC097530ECA86541D5980n' 681 ); 682 683 assert.sameValue( 684 -0xFEDCBA987654320Fn * -0xFEDCBA987654320Fn, 685 0xFDBAC097C8DC5ACAE132F7A6B7A1DCE1n, 686 'The result of (-0xFEDCBA987654320Fn * -0xFEDCBA987654320Fn) is 0xFDBAC097C8DC5ACAE132F7A6B7A1DCE1n' 687 ); 688 689 assert.sameValue( 690 -0xFEDCBA987654320Fn * -0xFEDCBA9876543210n, 691 0xFDBAC097C8DC5ACBE00FB23F2DF60EF0n, 692 'The result of (-0xFEDCBA987654320Fn * -0xFEDCBA9876543210n) is 0xFDBAC097C8DC5ACBE00FB23F2DF60EF0n' 693 ); 694 695 assert.sameValue( 696 -0xFEDCBA9876543210n * -0xFEDCBA9876543210n, 697 0xFDBAC097C8DC5ACCDEEC6CD7A44A4100n, 698 'The result of (-0xFEDCBA9876543210n * -0xFEDCBA9876543210n) is 0xFDBAC097C8DC5ACCDEEC6CD7A44A4100n' 699 ); 700 701 reportCompare(0, 0);