tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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);