tor-browser

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

bigint-mul-64.js (27716B)


      1 const tests = [
      2  [-0x100000001n, -2n, 0x200000002n],
      3  [-0x100000000n, -2n, 0x200000000n],
      4  [-0xffffffffn, -2n, 0x1fffffffen],
      5  [-0xfffffffen, -2n, 0x1fffffffcn],
      6  [-0x80000001n, -2n, 0x100000002n],
      7  [-0x80000000n, -2n, 0x100000000n],
      8  [-0x7fffffffn, -2n, 0xfffffffen],
      9  [-0x7ffffffen, -2n, 0xfffffffcn],
     10  [-0x10001n, -2n, 0x20002n],
     11  [-0x10000n, -2n, 0x20000n],
     12  [-0xffffn, -2n, 0x1fffen],
     13  [-0xfffen, -2n, 0x1fffcn],
     14  [-0x8001n, -2n, 0x10002n],
     15  [-0x8000n, -2n, 0x10000n],
     16  [-0x7fffn, -2n, 0xfffen],
     17  [-0x7ffen, -2n, 0xfffcn],
     18  [-2n, -2n, 4n],
     19  [-1n, -2n, 2n],
     20  [0n, -2n, 0n],
     21  [1n, -2n, -2n],
     22  [2n, -2n, -4n],
     23  [0x7ffen, -2n, -0xfffcn],
     24  [0x7fffn, -2n, -0xfffen],
     25  [0x8000n, -2n, -0x10000n],
     26  [0x8001n, -2n, -0x10002n],
     27  [0xfffen, -2n, -0x1fffcn],
     28  [0xffffn, -2n, -0x1fffen],
     29  [0x10000n, -2n, -0x20000n],
     30  [0x10001n, -2n, -0x20002n],
     31  [0x7ffffffen, -2n, -0xfffffffcn],
     32  [0x7fffffffn, -2n, -0xfffffffen],
     33  [0x80000000n, -2n, -0x100000000n],
     34  [0x80000001n, -2n, -0x100000002n],
     35  [0xfffffffen, -2n, -0x1fffffffcn],
     36  [0xffffffffn, -2n, -0x1fffffffen],
     37  [0x100000000n, -2n, -0x200000000n],
     38  [0x100000001n, -2n, -0x200000002n],
     39  [-0x7fffffffffffffffn, -1n, 0x7fffffffffffffffn],
     40  [-0x7ffffffffffffffen, -1n, 0x7ffffffffffffffen],
     41  [-0x100000001n, -1n, 0x100000001n],
     42  [-0x100000000n, -1n, 0x100000000n],
     43  [-0xffffffffn, -1n, 0xffffffffn],
     44  [-0xfffffffen, -1n, 0xfffffffen],
     45  [-0x80000001n, -1n, 0x80000001n],
     46  [-0x80000000n, -1n, 0x80000000n],
     47  [-0x7fffffffn, -1n, 0x7fffffffn],
     48  [-0x7ffffffen, -1n, 0x7ffffffen],
     49  [-0x10001n, -1n, 0x10001n],
     50  [-0x10000n, -1n, 0x10000n],
     51  [-0xffffn, -1n, 0xffffn],
     52  [-0xfffen, -1n, 0xfffen],
     53  [-0x8001n, -1n, 0x8001n],
     54  [-0x8000n, -1n, 0x8000n],
     55  [-0x7fffn, -1n, 0x7fffn],
     56  [-0x7ffen, -1n, 0x7ffen],
     57  [-1n, -1n, 1n],
     58  [0n, -1n, 0n],
     59  [1n, -1n, -1n],
     60  [2n, -1n, -2n],
     61  [0x7ffen, -1n, -0x7ffen],
     62  [0x7fffn, -1n, -0x7fffn],
     63  [0x8000n, -1n, -0x8000n],
     64  [0x8001n, -1n, -0x8001n],
     65  [0xfffen, -1n, -0xfffen],
     66  [0xffffn, -1n, -0xffffn],
     67  [0x10000n, -1n, -0x10000n],
     68  [0x10001n, -1n, -0x10001n],
     69  [0x7ffffffen, -1n, -0x7ffffffen],
     70  [0x7fffffffn, -1n, -0x7fffffffn],
     71  [0x80000000n, -1n, -0x80000000n],
     72  [0x80000001n, -1n, -0x80000001n],
     73  [0xfffffffen, -1n, -0xfffffffen],
     74  [0xffffffffn, -1n, -0xffffffffn],
     75  [0x100000000n, -1n, -0x100000000n],
     76  [0x100000001n, -1n, -0x100000001n],
     77  [0x7ffffffffffffffen, -1n, -0x7ffffffffffffffen],
     78  [0x7fffffffffffffffn, -1n, -0x7fffffffffffffffn],
     79  [-0x8000000000000000n, 0n, 0n],
     80  [-0x7fffffffffffffffn, 0n, 0n],
     81  [-0x7ffffffffffffffen, 0n, 0n],
     82  [-0x100000001n, 0n, 0n],
     83  [-0x100000000n, 0n, 0n],
     84  [-0xffffffffn, 0n, 0n],
     85  [-0xfffffffen, 0n, 0n],
     86  [-0x80000001n, 0n, 0n],
     87  [-0x80000000n, 0n, 0n],
     88  [-0x7fffffffn, 0n, 0n],
     89  [-0x7ffffffen, 0n, 0n],
     90  [-0x10001n, 0n, 0n],
     91  [-0x10000n, 0n, 0n],
     92  [-0xffffn, 0n, 0n],
     93  [-0xfffen, 0n, 0n],
     94  [-0x8001n, 0n, 0n],
     95  [-0x8000n, 0n, 0n],
     96  [-0x7fffn, 0n, 0n],
     97  [-0x7ffen, 0n, 0n],
     98  [0n, 0n, 0n],
     99  [1n, 0n, 0n],
    100  [2n, 0n, 0n],
    101  [0x7ffen, 0n, 0n],
    102  [0x7fffn, 0n, 0n],
    103  [0x8000n, 0n, 0n],
    104  [0x8001n, 0n, 0n],
    105  [0xfffen, 0n, 0n],
    106  [0xffffn, 0n, 0n],
    107  [0x10000n, 0n, 0n],
    108  [0x10001n, 0n, 0n],
    109  [0x7ffffffen, 0n, 0n],
    110  [0x7fffffffn, 0n, 0n],
    111  [0x80000000n, 0n, 0n],
    112  [0x80000001n, 0n, 0n],
    113  [0xfffffffen, 0n, 0n],
    114  [0xffffffffn, 0n, 0n],
    115  [0x100000000n, 0n, 0n],
    116  [0x100000001n, 0n, 0n],
    117  [0x7ffffffffffffffen, 0n, 0n],
    118  [0x7fffffffffffffffn, 0n, 0n],
    119  [-0x8000000000000000n, 1n, -0x8000000000000000n],
    120  [-0x7fffffffffffffffn, 1n, -0x7fffffffffffffffn],
    121  [-0x7ffffffffffffffen, 1n, -0x7ffffffffffffffen],
    122  [-0x100000001n, 1n, -0x100000001n],
    123  [-0x100000000n, 1n, -0x100000000n],
    124  [-0xffffffffn, 1n, -0xffffffffn],
    125  [-0xfffffffen, 1n, -0xfffffffen],
    126  [-0x80000001n, 1n, -0x80000001n],
    127  [-0x80000000n, 1n, -0x80000000n],
    128  [-0x7fffffffn, 1n, -0x7fffffffn],
    129  [-0x7ffffffen, 1n, -0x7ffffffen],
    130  [-0x10001n, 1n, -0x10001n],
    131  [-0x10000n, 1n, -0x10000n],
    132  [-0xffffn, 1n, -0xffffn],
    133  [-0xfffen, 1n, -0xfffen],
    134  [-0x8001n, 1n, -0x8001n],
    135  [-0x8000n, 1n, -0x8000n],
    136  [-0x7fffn, 1n, -0x7fffn],
    137  [-0x7ffen, 1n, -0x7ffen],
    138  [1n, 1n, 1n],
    139  [2n, 1n, 2n],
    140  [0x7ffen, 1n, 0x7ffen],
    141  [0x7fffn, 1n, 0x7fffn],
    142  [0x8000n, 1n, 0x8000n],
    143  [0x8001n, 1n, 0x8001n],
    144  [0xfffen, 1n, 0xfffen],
    145  [0xffffn, 1n, 0xffffn],
    146  [0x10000n, 1n, 0x10000n],
    147  [0x10001n, 1n, 0x10001n],
    148  [0x7ffffffen, 1n, 0x7ffffffen],
    149  [0x7fffffffn, 1n, 0x7fffffffn],
    150  [0x80000000n, 1n, 0x80000000n],
    151  [0x80000001n, 1n, 0x80000001n],
    152  [0xfffffffen, 1n, 0xfffffffen],
    153  [0xffffffffn, 1n, 0xffffffffn],
    154  [0x100000000n, 1n, 0x100000000n],
    155  [0x100000001n, 1n, 0x100000001n],
    156  [0x7ffffffffffffffen, 1n, 0x7ffffffffffffffen],
    157  [0x7fffffffffffffffn, 1n, 0x7fffffffffffffffn],
    158  [-0x100000001n, 2n, -0x200000002n],
    159  [-0x100000000n, 2n, -0x200000000n],
    160  [-0xffffffffn, 2n, -0x1fffffffen],
    161  [-0xfffffffen, 2n, -0x1fffffffcn],
    162  [-0x80000001n, 2n, -0x100000002n],
    163  [-0x80000000n, 2n, -0x100000000n],
    164  [-0x7fffffffn, 2n, -0xfffffffen],
    165  [-0x7ffffffen, 2n, -0xfffffffcn],
    166  [-0x10001n, 2n, -0x20002n],
    167  [-0x10000n, 2n, -0x20000n],
    168  [-0xffffn, 2n, -0x1fffen],
    169  [-0xfffen, 2n, -0x1fffcn],
    170  [-0x8001n, 2n, -0x10002n],
    171  [-0x8000n, 2n, -0x10000n],
    172  [-0x7fffn, 2n, -0xfffen],
    173  [-0x7ffen, 2n, -0xfffcn],
    174  [2n, 2n, 4n],
    175  [0x7ffen, 2n, 0xfffcn],
    176  [0x7fffn, 2n, 0xfffen],
    177  [0x8000n, 2n, 0x10000n],
    178  [0x8001n, 2n, 0x10002n],
    179  [0xfffen, 2n, 0x1fffcn],
    180  [0xffffn, 2n, 0x1fffen],
    181  [0x10000n, 2n, 0x20000n],
    182  [0x10001n, 2n, 0x20002n],
    183  [0x7ffffffen, 2n, 0xfffffffcn],
    184  [0x7fffffffn, 2n, 0xfffffffen],
    185  [0x80000000n, 2n, 0x100000000n],
    186  [0x80000001n, 2n, 0x100000002n],
    187  [0xfffffffen, 2n, 0x1fffffffcn],
    188  [0xffffffffn, 2n, 0x1fffffffen],
    189  [0x100000000n, 2n, 0x200000000n],
    190  [0x100000001n, 2n, 0x200000002n],
    191  [-0x100000001n, 0x7ffen, -0x7ffe00007ffen],
    192  [-0x100000000n, 0x7ffen, -0x7ffe00000000n],
    193  [-0xffffffffn, 0x7ffen, -0x7ffdffff8002n],
    194  [-0xfffffffen, 0x7ffen, -0x7ffdffff0004n],
    195  [-0x80000001n, 0x7ffen, -0x3fff00007ffen],
    196  [-0x80000000n, 0x7ffen, -0x3fff00000000n],
    197  [-0x7fffffffn, 0x7ffen, -0x3ffeffff8002n],
    198  [-0x7ffffffen, 0x7ffen, -0x3ffeffff0004n],
    199  [-0x10001n, 0x7ffen, -0x7ffe7ffen],
    200  [-0x10000n, 0x7ffen, -0x7ffe0000n],
    201  [-0xffffn, 0x7ffen, -0x7ffd8002n],
    202  [-0xfffen, 0x7ffen, -0x7ffd0004n],
    203  [-0x8001n, 0x7ffen, -0x3fff7ffen],
    204  [-0x8000n, 0x7ffen, -0x3fff0000n],
    205  [-0x7fffn, 0x7ffen, -0x3ffe8002n],
    206  [-0x7ffen, 0x7ffen, -0x3ffe0004n],
    207  [0x7ffen, 0x7ffen, 0x3ffe0004n],
    208  [0x7fffn, 0x7ffen, 0x3ffe8002n],
    209  [0x8000n, 0x7ffen, 0x3fff0000n],
    210  [0x8001n, 0x7ffen, 0x3fff7ffen],
    211  [0xfffen, 0x7ffen, 0x7ffd0004n],
    212  [0xffffn, 0x7ffen, 0x7ffd8002n],
    213  [0x10000n, 0x7ffen, 0x7ffe0000n],
    214  [0x10001n, 0x7ffen, 0x7ffe7ffen],
    215  [0x7ffffffen, 0x7ffen, 0x3ffeffff0004n],
    216  [0x7fffffffn, 0x7ffen, 0x3ffeffff8002n],
    217  [0x80000000n, 0x7ffen, 0x3fff00000000n],
    218  [0x80000001n, 0x7ffen, 0x3fff00007ffen],
    219  [0xfffffffen, 0x7ffen, 0x7ffdffff0004n],
    220  [0xffffffffn, 0x7ffen, 0x7ffdffff8002n],
    221  [0x100000000n, 0x7ffen, 0x7ffe00000000n],
    222  [0x100000001n, 0x7ffen, 0x7ffe00007ffen],
    223  [-0x100000001n, 0x7fffn, -0x7fff00007fffn],
    224  [-0x100000000n, 0x7fffn, -0x7fff00000000n],
    225  [-0xffffffffn, 0x7fffn, -0x7ffeffff8001n],
    226  [-0xfffffffen, 0x7fffn, -0x7ffeffff0002n],
    227  [-0x80000001n, 0x7fffn, -0x3fff80007fffn],
    228  [-0x80000000n, 0x7fffn, -0x3fff80000000n],
    229  [-0x7fffffffn, 0x7fffn, -0x3fff7fff8001n],
    230  [-0x7ffffffen, 0x7fffn, -0x3fff7fff0002n],
    231  [-0x10001n, 0x7fffn, -0x7fff7fffn],
    232  [-0x10000n, 0x7fffn, -0x7fff0000n],
    233  [-0xffffn, 0x7fffn, -0x7ffe8001n],
    234  [-0xfffen, 0x7fffn, -0x7ffe0002n],
    235  [-0x8001n, 0x7fffn, -0x3fffffffn],
    236  [-0x8000n, 0x7fffn, -0x3fff8000n],
    237  [-0x7fffn, 0x7fffn, -0x3fff0001n],
    238  [-0x7ffen, 0x7fffn, -0x3ffe8002n],
    239  [0x7fffn, 0x7fffn, 0x3fff0001n],
    240  [0x8000n, 0x7fffn, 0x3fff8000n],
    241  [0x8001n, 0x7fffn, 0x3fffffffn],
    242  [0xfffen, 0x7fffn, 0x7ffe0002n],
    243  [0xffffn, 0x7fffn, 0x7ffe8001n],
    244  [0x10000n, 0x7fffn, 0x7fff0000n],
    245  [0x10001n, 0x7fffn, 0x7fff7fffn],
    246  [0x7ffffffen, 0x7fffn, 0x3fff7fff0002n],
    247  [0x7fffffffn, 0x7fffn, 0x3fff7fff8001n],
    248  [0x80000000n, 0x7fffn, 0x3fff80000000n],
    249  [0x80000001n, 0x7fffn, 0x3fff80007fffn],
    250  [0xfffffffen, 0x7fffn, 0x7ffeffff0002n],
    251  [0xffffffffn, 0x7fffn, 0x7ffeffff8001n],
    252  [0x100000000n, 0x7fffn, 0x7fff00000000n],
    253  [0x100000001n, 0x7fffn, 0x7fff00007fffn],
    254  [-0x100000001n, 0x8000n, -0x800000008000n],
    255  [-0x100000000n, 0x8000n, -0x800000000000n],
    256  [-0xffffffffn, 0x8000n, -0x7fffffff8000n],
    257  [-0xfffffffen, 0x8000n, -0x7fffffff0000n],
    258  [-0x80000001n, 0x8000n, -0x400000008000n],
    259  [-0x80000000n, 0x8000n, -0x400000000000n],
    260  [-0x7fffffffn, 0x8000n, -0x3fffffff8000n],
    261  [-0x7ffffffen, 0x8000n, -0x3fffffff0000n],
    262  [-0x10001n, 0x8000n, -0x80008000n],
    263  [-0x10000n, 0x8000n, -0x80000000n],
    264  [-0xffffn, 0x8000n, -0x7fff8000n],
    265  [-0xfffen, 0x8000n, -0x7fff0000n],
    266  [-0x8001n, 0x8000n, -0x40008000n],
    267  [-0x8000n, 0x8000n, -0x40000000n],
    268  [-0x7fffn, 0x8000n, -0x3fff8000n],
    269  [-0x7ffen, 0x8000n, -0x3fff0000n],
    270  [0x8000n, 0x8000n, 0x40000000n],
    271  [0x8001n, 0x8000n, 0x40008000n],
    272  [0xfffen, 0x8000n, 0x7fff0000n],
    273  [0xffffn, 0x8000n, 0x7fff8000n],
    274  [0x10000n, 0x8000n, 0x80000000n],
    275  [0x10001n, 0x8000n, 0x80008000n],
    276  [0x7ffffffen, 0x8000n, 0x3fffffff0000n],
    277  [0x7fffffffn, 0x8000n, 0x3fffffff8000n],
    278  [0x80000000n, 0x8000n, 0x400000000000n],
    279  [0x80000001n, 0x8000n, 0x400000008000n],
    280  [0xfffffffen, 0x8000n, 0x7fffffff0000n],
    281  [0xffffffffn, 0x8000n, 0x7fffffff8000n],
    282  [0x100000000n, 0x8000n, 0x800000000000n],
    283  [0x100000001n, 0x8000n, 0x800000008000n],
    284  [-0x100000001n, 0x8001n, -0x800100008001n],
    285  [-0x100000000n, 0x8001n, -0x800100000000n],
    286  [-0xffffffffn, 0x8001n, -0x8000ffff7fffn],
    287  [-0xfffffffen, 0x8001n, -0x8000fffefffen],
    288  [-0x80000001n, 0x8001n, -0x400080008001n],
    289  [-0x80000000n, 0x8001n, -0x400080000000n],
    290  [-0x7fffffffn, 0x8001n, -0x40007fff7fffn],
    291  [-0x7ffffffen, 0x8001n, -0x40007ffefffen],
    292  [-0x10001n, 0x8001n, -0x80018001n],
    293  [-0x10000n, 0x8001n, -0x80010000n],
    294  [-0xffffn, 0x8001n, -0x80007fffn],
    295  [-0xfffen, 0x8001n, -0x7ffffffen],
    296  [-0x8001n, 0x8001n, -0x40010001n],
    297  [-0x8000n, 0x8001n, -0x40008000n],
    298  [-0x7fffn, 0x8001n, -0x3fffffffn],
    299  [-0x7ffen, 0x8001n, -0x3fff7ffen],
    300  [0x8001n, 0x8001n, 0x40010001n],
    301  [0xfffen, 0x8001n, 0x7ffffffen],
    302  [0xffffn, 0x8001n, 0x80007fffn],
    303  [0x10000n, 0x8001n, 0x80010000n],
    304  [0x10001n, 0x8001n, 0x80018001n],
    305  [0x7ffffffen, 0x8001n, 0x40007ffefffen],
    306  [0x7fffffffn, 0x8001n, 0x40007fff7fffn],
    307  [0x80000000n, 0x8001n, 0x400080000000n],
    308  [0x80000001n, 0x8001n, 0x400080008001n],
    309  [0xfffffffen, 0x8001n, 0x8000fffefffen],
    310  [0xffffffffn, 0x8001n, 0x8000ffff7fffn],
    311  [0x100000000n, 0x8001n, 0x800100000000n],
    312  [0x100000001n, 0x8001n, 0x800100008001n],
    313  [-0x100000001n, -0x8001n, 0x800100008001n],
    314  [-0x100000000n, -0x8001n, 0x800100000000n],
    315  [-0xffffffffn, -0x8001n, 0x8000ffff7fffn],
    316  [-0xfffffffen, -0x8001n, 0x8000fffefffen],
    317  [-0x80000001n, -0x8001n, 0x400080008001n],
    318  [-0x80000000n, -0x8001n, 0x400080000000n],
    319  [-0x7fffffffn, -0x8001n, 0x40007fff7fffn],
    320  [-0x7ffffffen, -0x8001n, 0x40007ffefffen],
    321  [-0x10001n, -0x8001n, 0x80018001n],
    322  [-0x10000n, -0x8001n, 0x80010000n],
    323  [-0xffffn, -0x8001n, 0x80007fffn],
    324  [-0xfffen, -0x8001n, 0x7ffffffen],
    325  [-0x8001n, -0x8001n, 0x40010001n],
    326  [-0x8000n, -0x8001n, 0x40008000n],
    327  [-0x7fffn, -0x8001n, 0x3fffffffn],
    328  [-0x7ffen, -0x8001n, 0x3fff7ffen],
    329  [0xfffen, -0x8001n, -0x7ffffffen],
    330  [0xffffn, -0x8001n, -0x80007fffn],
    331  [0x10000n, -0x8001n, -0x80010000n],
    332  [0x10001n, -0x8001n, -0x80018001n],
    333  [0x7ffffffen, -0x8001n, -0x40007ffefffen],
    334  [0x7fffffffn, -0x8001n, -0x40007fff7fffn],
    335  [0x80000000n, -0x8001n, -0x400080000000n],
    336  [0x80000001n, -0x8001n, -0x400080008001n],
    337  [0xfffffffen, -0x8001n, -0x8000fffefffen],
    338  [0xffffffffn, -0x8001n, -0x8000ffff7fffn],
    339  [0x100000000n, -0x8001n, -0x800100000000n],
    340  [0x100000001n, -0x8001n, -0x800100008001n],
    341  [-0x100000001n, -0x8000n, 0x800000008000n],
    342  [-0x100000000n, -0x8000n, 0x800000000000n],
    343  [-0xffffffffn, -0x8000n, 0x7fffffff8000n],
    344  [-0xfffffffen, -0x8000n, 0x7fffffff0000n],
    345  [-0x80000001n, -0x8000n, 0x400000008000n],
    346  [-0x80000000n, -0x8000n, 0x400000000000n],
    347  [-0x7fffffffn, -0x8000n, 0x3fffffff8000n],
    348  [-0x7ffffffen, -0x8000n, 0x3fffffff0000n],
    349  [-0x10001n, -0x8000n, 0x80008000n],
    350  [-0x10000n, -0x8000n, 0x80000000n],
    351  [-0xffffn, -0x8000n, 0x7fff8000n],
    352  [-0xfffen, -0x8000n, 0x7fff0000n],
    353  [-0x8000n, -0x8000n, 0x40000000n],
    354  [-0x7fffn, -0x8000n, 0x3fff8000n],
    355  [-0x7ffen, -0x8000n, 0x3fff0000n],
    356  [0xfffen, -0x8000n, -0x7fff0000n],
    357  [0xffffn, -0x8000n, -0x7fff8000n],
    358  [0x10000n, -0x8000n, -0x80000000n],
    359  [0x10001n, -0x8000n, -0x80008000n],
    360  [0x7ffffffen, -0x8000n, -0x3fffffff0000n],
    361  [0x7fffffffn, -0x8000n, -0x3fffffff8000n],
    362  [0x80000000n, -0x8000n, -0x400000000000n],
    363  [0x80000001n, -0x8000n, -0x400000008000n],
    364  [0xfffffffen, -0x8000n, -0x7fffffff0000n],
    365  [0xffffffffn, -0x8000n, -0x7fffffff8000n],
    366  [0x100000000n, -0x8000n, -0x800000000000n],
    367  [0x100000001n, -0x8000n, -0x800000008000n],
    368  [-0x100000001n, -0x7fffn, 0x7fff00007fffn],
    369  [-0x100000000n, -0x7fffn, 0x7fff00000000n],
    370  [-0xffffffffn, -0x7fffn, 0x7ffeffff8001n],
    371  [-0xfffffffen, -0x7fffn, 0x7ffeffff0002n],
    372  [-0x80000001n, -0x7fffn, 0x3fff80007fffn],
    373  [-0x80000000n, -0x7fffn, 0x3fff80000000n],
    374  [-0x7fffffffn, -0x7fffn, 0x3fff7fff8001n],
    375  [-0x7ffffffen, -0x7fffn, 0x3fff7fff0002n],
    376  [-0x10001n, -0x7fffn, 0x7fff7fffn],
    377  [-0x10000n, -0x7fffn, 0x7fff0000n],
    378  [-0xffffn, -0x7fffn, 0x7ffe8001n],
    379  [-0xfffen, -0x7fffn, 0x7ffe0002n],
    380  [-0x7fffn, -0x7fffn, 0x3fff0001n],
    381  [-0x7ffen, -0x7fffn, 0x3ffe8002n],
    382  [0xfffen, -0x7fffn, -0x7ffe0002n],
    383  [0xffffn, -0x7fffn, -0x7ffe8001n],
    384  [0x10000n, -0x7fffn, -0x7fff0000n],
    385  [0x10001n, -0x7fffn, -0x7fff7fffn],
    386  [0x7ffffffen, -0x7fffn, -0x3fff7fff0002n],
    387  [0x7fffffffn, -0x7fffn, -0x3fff7fff8001n],
    388  [0x80000000n, -0x7fffn, -0x3fff80000000n],
    389  [0x80000001n, -0x7fffn, -0x3fff80007fffn],
    390  [0xfffffffen, -0x7fffn, -0x7ffeffff0002n],
    391  [0xffffffffn, -0x7fffn, -0x7ffeffff8001n],
    392  [0x100000000n, -0x7fffn, -0x7fff00000000n],
    393  [0x100000001n, -0x7fffn, -0x7fff00007fffn],
    394  [-0x100000001n, -0x7ffen, 0x7ffe00007ffen],
    395  [-0x100000000n, -0x7ffen, 0x7ffe00000000n],
    396  [-0xffffffffn, -0x7ffen, 0x7ffdffff8002n],
    397  [-0xfffffffen, -0x7ffen, 0x7ffdffff0004n],
    398  [-0x80000001n, -0x7ffen, 0x3fff00007ffen],
    399  [-0x80000000n, -0x7ffen, 0x3fff00000000n],
    400  [-0x7fffffffn, -0x7ffen, 0x3ffeffff8002n],
    401  [-0x7ffffffen, -0x7ffen, 0x3ffeffff0004n],
    402  [-0x10001n, -0x7ffen, 0x7ffe7ffen],
    403  [-0x10000n, -0x7ffen, 0x7ffe0000n],
    404  [-0xffffn, -0x7ffen, 0x7ffd8002n],
    405  [-0xfffen, -0x7ffen, 0x7ffd0004n],
    406  [-0x7ffen, -0x7ffen, 0x3ffe0004n],
    407  [0xfffen, -0x7ffen, -0x7ffd0004n],
    408  [0xffffn, -0x7ffen, -0x7ffd8002n],
    409  [0x10000n, -0x7ffen, -0x7ffe0000n],
    410  [0x10001n, -0x7ffen, -0x7ffe7ffen],
    411  [0x7ffffffen, -0x7ffen, -0x3ffeffff0004n],
    412  [0x7fffffffn, -0x7ffen, -0x3ffeffff8002n],
    413  [0x80000000n, -0x7ffen, -0x3fff00000000n],
    414  [0x80000001n, -0x7ffen, -0x3fff00007ffen],
    415  [0xfffffffen, -0x7ffen, -0x7ffdffff0004n],
    416  [0xffffffffn, -0x7ffen, -0x7ffdffff8002n],
    417  [0x100000000n, -0x7ffen, -0x7ffe00000000n],
    418  [0x100000001n, -0x7ffen, -0x7ffe00007ffen],
    419  [-0x100000001n, 0xfffen, -0xfffe0000fffen],
    420  [-0x100000000n, 0xfffen, -0xfffe00000000n],
    421  [-0xffffffffn, 0xfffen, -0xfffdffff0002n],
    422  [-0xfffffffen, 0xfffen, -0xfffdfffe0004n],
    423  [-0x80000001n, 0xfffen, -0x7fff0000fffen],
    424  [-0x80000000n, 0xfffen, -0x7fff00000000n],
    425  [-0x7fffffffn, 0xfffen, -0x7ffeffff0002n],
    426  [-0x7ffffffen, 0xfffen, -0x7ffefffe0004n],
    427  [-0x10001n, 0xfffen, -0xfffefffen],
    428  [-0x10000n, 0xfffen, -0xfffe0000n],
    429  [-0xffffn, 0xfffen, -0xfffd0002n],
    430  [-0xfffen, 0xfffen, -0xfffc0004n],
    431  [0xfffen, 0xfffen, 0xfffc0004n],
    432  [0xffffn, 0xfffen, 0xfffd0002n],
    433  [0x10000n, 0xfffen, 0xfffe0000n],
    434  [0x10001n, 0xfffen, 0xfffefffen],
    435  [0x7ffffffen, 0xfffen, 0x7ffefffe0004n],
    436  [0x7fffffffn, 0xfffen, 0x7ffeffff0002n],
    437  [0x80000000n, 0xfffen, 0x7fff00000000n],
    438  [0x80000001n, 0xfffen, 0x7fff0000fffen],
    439  [0xfffffffen, 0xfffen, 0xfffdfffe0004n],
    440  [0xffffffffn, 0xfffen, 0xfffdffff0002n],
    441  [0x100000000n, 0xfffen, 0xfffe00000000n],
    442  [0x100000001n, 0xfffen, 0xfffe0000fffen],
    443  [-0x100000001n, 0xffffn, -0xffff0000ffffn],
    444  [-0x100000000n, 0xffffn, -0xffff00000000n],
    445  [-0xffffffffn, 0xffffn, -0xfffeffff0001n],
    446  [-0xfffffffen, 0xffffn, -0xfffefffe0002n],
    447  [-0x80000001n, 0xffffn, -0x7fff8000ffffn],
    448  [-0x80000000n, 0xffffn, -0x7fff80000000n],
    449  [-0x7fffffffn, 0xffffn, -0x7fff7fff0001n],
    450  [-0x7ffffffen, 0xffffn, -0x7fff7ffe0002n],
    451  [-0x10001n, 0xffffn, -0xffffffffn],
    452  [-0x10000n, 0xffffn, -0xffff0000n],
    453  [-0xffffn, 0xffffn, -0xfffe0001n],
    454  [-0xfffen, 0xffffn, -0xfffd0002n],
    455  [0xffffn, 0xffffn, 0xfffe0001n],
    456  [0x10000n, 0xffffn, 0xffff0000n],
    457  [0x10001n, 0xffffn, 0xffffffffn],
    458  [0x7ffffffen, 0xffffn, 0x7fff7ffe0002n],
    459  [0x7fffffffn, 0xffffn, 0x7fff7fff0001n],
    460  [0x80000000n, 0xffffn, 0x7fff80000000n],
    461  [0x80000001n, 0xffffn, 0x7fff8000ffffn],
    462  [0xfffffffen, 0xffffn, 0xfffefffe0002n],
    463  [0xffffffffn, 0xffffn, 0xfffeffff0001n],
    464  [0x100000000n, 0xffffn, 0xffff00000000n],
    465  [0x100000001n, 0xffffn, 0xffff0000ffffn],
    466  [-0x100000001n, 0x10000n, -0x1000000010000n],
    467  [-0x100000000n, 0x10000n, -0x1000000000000n],
    468  [-0xffffffffn, 0x10000n, -0xffffffff0000n],
    469  [-0xfffffffen, 0x10000n, -0xfffffffe0000n],
    470  [-0x80000001n, 0x10000n, -0x800000010000n],
    471  [-0x80000000n, 0x10000n, -0x800000000000n],
    472  [-0x7fffffffn, 0x10000n, -0x7fffffff0000n],
    473  [-0x7ffffffen, 0x10000n, -0x7ffffffe0000n],
    474  [-0x10001n, 0x10000n, -0x100010000n],
    475  [-0x10000n, 0x10000n, -0x100000000n],
    476  [-0xffffn, 0x10000n, -0xffff0000n],
    477  [-0xfffen, 0x10000n, -0xfffe0000n],
    478  [0x10000n, 0x10000n, 0x100000000n],
    479  [0x10001n, 0x10000n, 0x100010000n],
    480  [0x7ffffffen, 0x10000n, 0x7ffffffe0000n],
    481  [0x7fffffffn, 0x10000n, 0x7fffffff0000n],
    482  [0x80000000n, 0x10000n, 0x800000000000n],
    483  [0x80000001n, 0x10000n, 0x800000010000n],
    484  [0xfffffffen, 0x10000n, 0xfffffffe0000n],
    485  [0xffffffffn, 0x10000n, 0xffffffff0000n],
    486  [0x100000000n, 0x10000n, 0x1000000000000n],
    487  [0x100000001n, 0x10000n, 0x1000000010000n],
    488  [-0x100000001n, 0x10001n, -0x1000100010001n],
    489  [-0x100000000n, 0x10001n, -0x1000100000000n],
    490  [-0xffffffffn, 0x10001n, -0x10000fffeffffn],
    491  [-0xfffffffen, 0x10001n, -0x10000fffdfffen],
    492  [-0x80000001n, 0x10001n, -0x800080010001n],
    493  [-0x80000000n, 0x10001n, -0x800080000000n],
    494  [-0x7fffffffn, 0x10001n, -0x80007ffeffffn],
    495  [-0x7ffffffen, 0x10001n, -0x80007ffdfffen],
    496  [-0x10001n, 0x10001n, -0x100020001n],
    497  [-0x10000n, 0x10001n, -0x100010000n],
    498  [-0xffffn, 0x10001n, -0xffffffffn],
    499  [-0xfffen, 0x10001n, -0xfffefffen],
    500  [0x10001n, 0x10001n, 0x100020001n],
    501  [0x7ffffffen, 0x10001n, 0x80007ffdfffen],
    502  [0x7fffffffn, 0x10001n, 0x80007ffeffffn],
    503  [0x80000000n, 0x10001n, 0x800080000000n],
    504  [0x80000001n, 0x10001n, 0x800080010001n],
    505  [0xfffffffen, 0x10001n, 0x10000fffdfffen],
    506  [0xffffffffn, 0x10001n, 0x10000fffeffffn],
    507  [0x100000000n, 0x10001n, 0x1000100000000n],
    508  [0x100000001n, 0x10001n, 0x1000100010001n],
    509  [-0x100000001n, -0x10001n, 0x1000100010001n],
    510  [-0x100000000n, -0x10001n, 0x1000100000000n],
    511  [-0xffffffffn, -0x10001n, 0x10000fffeffffn],
    512  [-0xfffffffen, -0x10001n, 0x10000fffdfffen],
    513  [-0x80000001n, -0x10001n, 0x800080010001n],
    514  [-0x80000000n, -0x10001n, 0x800080000000n],
    515  [-0x7fffffffn, -0x10001n, 0x80007ffeffffn],
    516  [-0x7ffffffen, -0x10001n, 0x80007ffdfffen],
    517  [-0x10001n, -0x10001n, 0x100020001n],
    518  [-0x10000n, -0x10001n, 0x100010000n],
    519  [-0xffffn, -0x10001n, 0xffffffffn],
    520  [-0xfffen, -0x10001n, 0xfffefffen],
    521  [0x7ffffffen, -0x10001n, -0x80007ffdfffen],
    522  [0x7fffffffn, -0x10001n, -0x80007ffeffffn],
    523  [0x80000000n, -0x10001n, -0x800080000000n],
    524  [0x80000001n, -0x10001n, -0x800080010001n],
    525  [0xfffffffen, -0x10001n, -0x10000fffdfffen],
    526  [0xffffffffn, -0x10001n, -0x10000fffeffffn],
    527  [0x100000000n, -0x10001n, -0x1000100000000n],
    528  [0x100000001n, -0x10001n, -0x1000100010001n],
    529  [-0x100000001n, -0x10000n, 0x1000000010000n],
    530  [-0x100000000n, -0x10000n, 0x1000000000000n],
    531  [-0xffffffffn, -0x10000n, 0xffffffff0000n],
    532  [-0xfffffffen, -0x10000n, 0xfffffffe0000n],
    533  [-0x80000001n, -0x10000n, 0x800000010000n],
    534  [-0x80000000n, -0x10000n, 0x800000000000n],
    535  [-0x7fffffffn, -0x10000n, 0x7fffffff0000n],
    536  [-0x7ffffffen, -0x10000n, 0x7ffffffe0000n],
    537  [-0x10000n, -0x10000n, 0x100000000n],
    538  [-0xffffn, -0x10000n, 0xffff0000n],
    539  [-0xfffen, -0x10000n, 0xfffe0000n],
    540  [0x7ffffffen, -0x10000n, -0x7ffffffe0000n],
    541  [0x7fffffffn, -0x10000n, -0x7fffffff0000n],
    542  [0x80000000n, -0x10000n, -0x800000000000n],
    543  [0x80000001n, -0x10000n, -0x800000010000n],
    544  [0xfffffffen, -0x10000n, -0xfffffffe0000n],
    545  [0xffffffffn, -0x10000n, -0xffffffff0000n],
    546  [0x100000000n, -0x10000n, -0x1000000000000n],
    547  [0x100000001n, -0x10000n, -0x1000000010000n],
    548  [-0x100000001n, -0xffffn, 0xffff0000ffffn],
    549  [-0x100000000n, -0xffffn, 0xffff00000000n],
    550  [-0xffffffffn, -0xffffn, 0xfffeffff0001n],
    551  [-0xfffffffen, -0xffffn, 0xfffefffe0002n],
    552  [-0x80000001n, -0xffffn, 0x7fff8000ffffn],
    553  [-0x80000000n, -0xffffn, 0x7fff80000000n],
    554  [-0x7fffffffn, -0xffffn, 0x7fff7fff0001n],
    555  [-0x7ffffffen, -0xffffn, 0x7fff7ffe0002n],
    556  [-0xffffn, -0xffffn, 0xfffe0001n],
    557  [-0xfffen, -0xffffn, 0xfffd0002n],
    558  [0x7ffffffen, -0xffffn, -0x7fff7ffe0002n],
    559  [0x7fffffffn, -0xffffn, -0x7fff7fff0001n],
    560  [0x80000000n, -0xffffn, -0x7fff80000000n],
    561  [0x80000001n, -0xffffn, -0x7fff8000ffffn],
    562  [0xfffffffen, -0xffffn, -0xfffefffe0002n],
    563  [0xffffffffn, -0xffffn, -0xfffeffff0001n],
    564  [0x100000000n, -0xffffn, -0xffff00000000n],
    565  [0x100000001n, -0xffffn, -0xffff0000ffffn],
    566  [-0x100000001n, -0xfffen, 0xfffe0000fffen],
    567  [-0x100000000n, -0xfffen, 0xfffe00000000n],
    568  [-0xffffffffn, -0xfffen, 0xfffdffff0002n],
    569  [-0xfffffffen, -0xfffen, 0xfffdfffe0004n],
    570  [-0x80000001n, -0xfffen, 0x7fff0000fffen],
    571  [-0x80000000n, -0xfffen, 0x7fff00000000n],
    572  [-0x7fffffffn, -0xfffen, 0x7ffeffff0002n],
    573  [-0x7ffffffen, -0xfffen, 0x7ffefffe0004n],
    574  [-0xfffen, -0xfffen, 0xfffc0004n],
    575  [0x7ffffffen, -0xfffen, -0x7ffefffe0004n],
    576  [0x7fffffffn, -0xfffen, -0x7ffeffff0002n],
    577  [0x80000000n, -0xfffen, -0x7fff00000000n],
    578  [0x80000001n, -0xfffen, -0x7fff0000fffen],
    579  [0xfffffffen, -0xfffen, -0xfffdfffe0004n],
    580  [0xffffffffn, -0xfffen, -0xfffdffff0002n],
    581  [0x100000000n, -0xfffen, -0xfffe00000000n],
    582  [0x100000001n, -0xfffen, -0xfffe0000fffen],
    583  [-0x100000001n, 0x7ffffffen, -0x7ffffffe7ffffffen],
    584  [-0x100000000n, 0x7ffffffen, -0x7ffffffe00000000n],
    585  [-0xffffffffn, 0x7ffffffen, -0x7ffffffd80000002n],
    586  [-0xfffffffen, 0x7ffffffen, -0x7ffffffd00000004n],
    587  [-0x80000001n, 0x7ffffffen, -0x3fffffff7ffffffen],
    588  [-0x80000000n, 0x7ffffffen, -0x3fffffff00000000n],
    589  [-0x7fffffffn, 0x7ffffffen, -0x3ffffffe80000002n],
    590  [-0x7ffffffen, 0x7ffffffen, -0x3ffffffe00000004n],
    591  [0x7ffffffen, 0x7ffffffen, 0x3ffffffe00000004n],
    592  [0x7fffffffn, 0x7ffffffen, 0x3ffffffe80000002n],
    593  [0x80000000n, 0x7ffffffen, 0x3fffffff00000000n],
    594  [0x80000001n, 0x7ffffffen, 0x3fffffff7ffffffen],
    595  [0xfffffffen, 0x7ffffffen, 0x7ffffffd00000004n],
    596  [0xffffffffn, 0x7ffffffen, 0x7ffffffd80000002n],
    597  [0x100000000n, 0x7ffffffen, 0x7ffffffe00000000n],
    598  [0x100000001n, 0x7ffffffen, 0x7ffffffe7ffffffen],
    599  [-0x100000001n, 0x7fffffffn, -0x7fffffff7fffffffn],
    600  [-0x100000000n, 0x7fffffffn, -0x7fffffff00000000n],
    601  [-0xffffffffn, 0x7fffffffn, -0x7ffffffe80000001n],
    602  [-0xfffffffen, 0x7fffffffn, -0x7ffffffe00000002n],
    603  [-0x80000001n, 0x7fffffffn, -0x3fffffffffffffffn],
    604  [-0x80000000n, 0x7fffffffn, -0x3fffffff80000000n],
    605  [-0x7fffffffn, 0x7fffffffn, -0x3fffffff00000001n],
    606  [-0x7ffffffen, 0x7fffffffn, -0x3ffffffe80000002n],
    607  [0x7fffffffn, 0x7fffffffn, 0x3fffffff00000001n],
    608  [0x80000000n, 0x7fffffffn, 0x3fffffff80000000n],
    609  [0x80000001n, 0x7fffffffn, 0x3fffffffffffffffn],
    610  [0xfffffffen, 0x7fffffffn, 0x7ffffffe00000002n],
    611  [0xffffffffn, 0x7fffffffn, 0x7ffffffe80000001n],
    612  [0x100000000n, 0x7fffffffn, 0x7fffffff00000000n],
    613  [0x100000001n, 0x7fffffffn, 0x7fffffff7fffffffn],
    614  [-0x100000000n, 0x80000000n, -0x8000000000000000n],
    615  [-0xffffffffn, 0x80000000n, -0x7fffffff80000000n],
    616  [-0xfffffffen, 0x80000000n, -0x7fffffff00000000n],
    617  [-0x80000001n, 0x80000000n, -0x4000000080000000n],
    618  [-0x80000000n, 0x80000000n, -0x4000000000000000n],
    619  [-0x7fffffffn, 0x80000000n, -0x3fffffff80000000n],
    620  [-0x7ffffffen, 0x80000000n, -0x3fffffff00000000n],
    621  [0x80000000n, 0x80000000n, 0x4000000000000000n],
    622  [0x80000001n, 0x80000000n, 0x4000000080000000n],
    623  [0xfffffffen, 0x80000000n, 0x7fffffff00000000n],
    624  [0xffffffffn, 0x80000000n, 0x7fffffff80000000n],
    625  [-0xfffffffen, 0x80000001n, -0x7ffffffffffffffen],
    626  [-0x80000001n, 0x80000001n, -0x4000000100000001n],
    627  [-0x80000000n, 0x80000001n, -0x4000000080000000n],
    628  [-0x7fffffffn, 0x80000001n, -0x3fffffffffffffffn],
    629  [-0x7ffffffen, 0x80000001n, -0x3fffffff7ffffffen],
    630  [0x80000001n, 0x80000001n, 0x4000000100000001n],
    631  [0xfffffffen, 0x80000001n, 0x7ffffffffffffffen],
    632  [-0xfffffffen, -0x80000001n, 0x7ffffffffffffffen],
    633  [-0x80000001n, -0x80000001n, 0x4000000100000001n],
    634  [-0x80000000n, -0x80000001n, 0x4000000080000000n],
    635  [-0x7fffffffn, -0x80000001n, 0x3fffffffffffffffn],
    636  [-0x7ffffffen, -0x80000001n, 0x3fffffff7ffffffen],
    637  [0xfffffffen, -0x80000001n, -0x7ffffffffffffffen],
    638  [-0xffffffffn, -0x80000000n, 0x7fffffff80000000n],
    639  [-0xfffffffen, -0x80000000n, 0x7fffffff00000000n],
    640  [-0x80000000n, -0x80000000n, 0x4000000000000000n],
    641  [-0x7fffffffn, -0x80000000n, 0x3fffffff80000000n],
    642  [-0x7ffffffen, -0x80000000n, 0x3fffffff00000000n],
    643  [0xfffffffen, -0x80000000n, -0x7fffffff00000000n],
    644  [0xffffffffn, -0x80000000n, -0x7fffffff80000000n],
    645  [0x100000000n, -0x80000000n, -0x8000000000000000n],
    646  [-0x100000001n, -0x7fffffffn, 0x7fffffff7fffffffn],
    647  [-0x100000000n, -0x7fffffffn, 0x7fffffff00000000n],
    648  [-0xffffffffn, -0x7fffffffn, 0x7ffffffe80000001n],
    649  [-0xfffffffen, -0x7fffffffn, 0x7ffffffe00000002n],
    650  [-0x7fffffffn, -0x7fffffffn, 0x3fffffff00000001n],
    651  [-0x7ffffffen, -0x7fffffffn, 0x3ffffffe80000002n],
    652  [0xfffffffen, -0x7fffffffn, -0x7ffffffe00000002n],
    653  [0xffffffffn, -0x7fffffffn, -0x7ffffffe80000001n],
    654  [0x100000000n, -0x7fffffffn, -0x7fffffff00000000n],
    655  [0x100000001n, -0x7fffffffn, -0x7fffffff7fffffffn],
    656  [-0x100000001n, -0x7ffffffen, 0x7ffffffe7ffffffen],
    657  [-0x100000000n, -0x7ffffffen, 0x7ffffffe00000000n],
    658  [-0xffffffffn, -0x7ffffffen, 0x7ffffffd80000002n],
    659  [-0xfffffffen, -0x7ffffffen, 0x7ffffffd00000004n],
    660  [-0x7ffffffen, -0x7ffffffen, 0x3ffffffe00000004n],
    661  [0xfffffffen, -0x7ffffffen, -0x7ffffffd00000004n],
    662  [0xffffffffn, -0x7ffffffen, -0x7ffffffd80000002n],
    663  [0x100000000n, -0x7ffffffen, -0x7ffffffe00000000n],
    664  [0x100000001n, -0x7ffffffen, -0x7ffffffe7ffffffen],
    665 ];
    666 
    667 // Cases not covered above.
    668 tests.push(
    669  // Int32 overflow:
    670  //
    671  //   Math.floor(2 ** (Math.log2(2147483648) / 2))
    672  // = Math.floor(2 ** 15.5)
    673  // = 46340
    674  //
    675  //   Math.ceil(2 ** (Math.log2(2147483648) / 2))
    676  // = Math.ceil(2 ** 15.5)
    677  // = 46341
    678  [46340n, 46340n, 2147395600n],
    679  [46341n, 46341n, 2147488281n],
    680  [46340n, -46340n, -2147395600n],
    681  [46341n, -46341n, -2147488281n],
    682  [-46340n, -46340n, 2147395600n],
    683  [-46341n, -46341n, 2147488281n],
    684 
    685  // Int64 overflow
    686  [3037000499n, 3037000499n, 9223372030926249001n],
    687  [3037000499n, -3037000499n, -9223372030926249001n],
    688  [-3037000499n, -3037000499n, 9223372030926249001n],
    689 );
    690 
    691 function f(tests) {
    692  for (let test of tests) {
    693    let lhs = test[0], rhs = test[1], expected = test[2];
    694    assertEq(BigInt.asIntN(64, lhs), lhs);
    695    assertEq(BigInt.asIntN(64, rhs), rhs);
    696    assertEq(BigInt.asIntN(64, expected), expected);
    697 
    698    assertEq(lhs * rhs, expected);
    699    assertEq(rhs * lhs, expected);
    700  }
    701 }
    702 
    703 for (let i = 0; i < 10; ++i) {
    704  f(tests);
    705 }