tor-browser

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

bigint-lsh-64.js (16606B)


      1 const tests = [
      2  [-0x8000000000000000n, 0n, -0x8000000000000000n],
      3  [-0x7fffffffffffffffn, 0n, -0x7fffffffffffffffn],
      4  [-0x7ffffffffffffffen, 0n, -0x7ffffffffffffffen],
      5  [-0x100000001n, 0n, -0x100000001n],
      6  [-0x100000000n, 0n, -0x100000000n],
      7  [-0xffffffffn, 0n, -0xffffffffn],
      8  [-0xfffffffen, 0n, -0xfffffffen],
      9  [-0x80000001n, 0n, -0x80000001n],
     10  [-0x80000000n, 0n, -0x80000000n],
     11  [-0x7fffffffn, 0n, -0x7fffffffn],
     12  [-0x7ffffffen, 0n, -0x7ffffffen],
     13  [-9n, 0n, -9n],
     14  [-8n, 0n, -8n],
     15  [-7n, 0n, -7n],
     16  [-6n, 0n, -6n],
     17  [-5n, 0n, -5n],
     18  [-4n, 0n, -4n],
     19  [-3n, 0n, -3n],
     20  [-2n, 0n, -2n],
     21  [-1n, 0n, -1n],
     22  [0n, 0n, 0n],
     23  [1n, 0n, 1n],
     24  [2n, 0n, 2n],
     25  [3n, 0n, 3n],
     26  [4n, 0n, 4n],
     27  [5n, 0n, 5n],
     28  [6n, 0n, 6n],
     29  [7n, 0n, 7n],
     30  [8n, 0n, 8n],
     31  [9n, 0n, 9n],
     32  [0x7ffffffen, 0n, 0x7ffffffen],
     33  [0x7fffffffn, 0n, 0x7fffffffn],
     34  [0x80000000n, 0n, 0x80000000n],
     35  [0x80000001n, 0n, 0x80000001n],
     36  [0xfffffffen, 0n, 0xfffffffen],
     37  [0xffffffffn, 0n, 0xffffffffn],
     38  [0x100000000n, 0n, 0x100000000n],
     39  [0x100000001n, 0n, 0x100000001n],
     40  [0x7ffffffffffffffen, 0n, 0x7ffffffffffffffen],
     41  [0x7fffffffffffffffn, 0n, 0x7fffffffffffffffn],
     42  [-0x100000001n, 1n, -0x200000002n],
     43  [-0x100000000n, 1n, -0x200000000n],
     44  [-0xffffffffn, 1n, -0x1fffffffen],
     45  [-0xfffffffen, 1n, -0x1fffffffcn],
     46  [-0x80000001n, 1n, -0x100000002n],
     47  [-0x80000000n, 1n, -0x100000000n],
     48  [-0x7fffffffn, 1n, -0xfffffffen],
     49  [-0x7ffffffen, 1n, -0xfffffffcn],
     50  [-9n, 1n, -0x12n],
     51  [-8n, 1n, -0x10n],
     52  [-7n, 1n, -0xen],
     53  [-6n, 1n, -0xcn],
     54  [-5n, 1n, -0xan],
     55  [-4n, 1n, -8n],
     56  [-3n, 1n, -6n],
     57  [-2n, 1n, -4n],
     58  [-1n, 1n, -2n],
     59  [0n, 1n, 0n],
     60  [1n, 1n, 2n],
     61  [2n, 1n, 4n],
     62  [3n, 1n, 6n],
     63  [4n, 1n, 8n],
     64  [5n, 1n, 0xan],
     65  [6n, 1n, 0xcn],
     66  [7n, 1n, 0xen],
     67  [8n, 1n, 0x10n],
     68  [9n, 1n, 0x12n],
     69  [0x7ffffffen, 1n, 0xfffffffcn],
     70  [0x7fffffffn, 1n, 0xfffffffen],
     71  [0x80000000n, 1n, 0x100000000n],
     72  [0x80000001n, 1n, 0x100000002n],
     73  [0xfffffffen, 1n, 0x1fffffffcn],
     74  [0xffffffffn, 1n, 0x1fffffffen],
     75  [0x100000000n, 1n, 0x200000000n],
     76  [0x100000001n, 1n, 0x200000002n],
     77  [-0x100000001n, 2n, -0x400000004n],
     78  [-0x100000000n, 2n, -0x400000000n],
     79  [-0xffffffffn, 2n, -0x3fffffffcn],
     80  [-0xfffffffen, 2n, -0x3fffffff8n],
     81  [-0x80000001n, 2n, -0x200000004n],
     82  [-0x80000000n, 2n, -0x200000000n],
     83  [-0x7fffffffn, 2n, -0x1fffffffcn],
     84  [-0x7ffffffen, 2n, -0x1fffffff8n],
     85  [-9n, 2n, -0x24n],
     86  [-8n, 2n, -0x20n],
     87  [-7n, 2n, -0x1cn],
     88  [-6n, 2n, -0x18n],
     89  [-5n, 2n, -0x14n],
     90  [-4n, 2n, -0x10n],
     91  [-3n, 2n, -0xcn],
     92  [-2n, 2n, -8n],
     93  [-1n, 2n, -4n],
     94  [0n, 2n, 0n],
     95  [1n, 2n, 4n],
     96  [2n, 2n, 8n],
     97  [3n, 2n, 0xcn],
     98  [4n, 2n, 0x10n],
     99  [5n, 2n, 0x14n],
    100  [6n, 2n, 0x18n],
    101  [7n, 2n, 0x1cn],
    102  [8n, 2n, 0x20n],
    103  [9n, 2n, 0x24n],
    104  [0x7ffffffen, 2n, 0x1fffffff8n],
    105  [0x7fffffffn, 2n, 0x1fffffffcn],
    106  [0x80000000n, 2n, 0x200000000n],
    107  [0x80000001n, 2n, 0x200000004n],
    108  [0xfffffffen, 2n, 0x3fffffff8n],
    109  [0xffffffffn, 2n, 0x3fffffffcn],
    110  [0x100000000n, 2n, 0x400000000n],
    111  [0x100000001n, 2n, 0x400000004n],
    112  [-0x100000001n, 3n, -0x800000008n],
    113  [-0x100000000n, 3n, -0x800000000n],
    114  [-0xffffffffn, 3n, -0x7fffffff8n],
    115  [-0xfffffffen, 3n, -0x7fffffff0n],
    116  [-0x80000001n, 3n, -0x400000008n],
    117  [-0x80000000n, 3n, -0x400000000n],
    118  [-0x7fffffffn, 3n, -0x3fffffff8n],
    119  [-0x7ffffffen, 3n, -0x3fffffff0n],
    120  [-9n, 3n, -0x48n],
    121  [-8n, 3n, -0x40n],
    122  [-7n, 3n, -0x38n],
    123  [-6n, 3n, -0x30n],
    124  [-5n, 3n, -0x28n],
    125  [-4n, 3n, -0x20n],
    126  [-3n, 3n, -0x18n],
    127  [-2n, 3n, -0x10n],
    128  [-1n, 3n, -8n],
    129  [0n, 3n, 0n],
    130  [1n, 3n, 8n],
    131  [2n, 3n, 0x10n],
    132  [3n, 3n, 0x18n],
    133  [4n, 3n, 0x20n],
    134  [5n, 3n, 0x28n],
    135  [6n, 3n, 0x30n],
    136  [7n, 3n, 0x38n],
    137  [8n, 3n, 0x40n],
    138  [9n, 3n, 0x48n],
    139  [0x7ffffffen, 3n, 0x3fffffff0n],
    140  [0x7fffffffn, 3n, 0x3fffffff8n],
    141  [0x80000000n, 3n, 0x400000000n],
    142  [0x80000001n, 3n, 0x400000008n],
    143  [0xfffffffen, 3n, 0x7fffffff0n],
    144  [0xffffffffn, 3n, 0x7fffffff8n],
    145  [0x100000000n, 3n, 0x800000000n],
    146  [0x100000001n, 3n, 0x800000008n],
    147  [-0x100000001n, 4n, -0x1000000010n],
    148  [-0x100000000n, 4n, -0x1000000000n],
    149  [-0xffffffffn, 4n, -0xffffffff0n],
    150  [-0xfffffffen, 4n, -0xfffffffe0n],
    151  [-0x80000001n, 4n, -0x800000010n],
    152  [-0x80000000n, 4n, -0x800000000n],
    153  [-0x7fffffffn, 4n, -0x7fffffff0n],
    154  [-0x7ffffffen, 4n, -0x7ffffffe0n],
    155  [-9n, 4n, -0x90n],
    156  [-8n, 4n, -0x80n],
    157  [-7n, 4n, -0x70n],
    158  [-6n, 4n, -0x60n],
    159  [-5n, 4n, -0x50n],
    160  [-4n, 4n, -0x40n],
    161  [-3n, 4n, -0x30n],
    162  [-2n, 4n, -0x20n],
    163  [-1n, 4n, -0x10n],
    164  [0n, 4n, 0n],
    165  [1n, 4n, 0x10n],
    166  [2n, 4n, 0x20n],
    167  [3n, 4n, 0x30n],
    168  [4n, 4n, 0x40n],
    169  [5n, 4n, 0x50n],
    170  [6n, 4n, 0x60n],
    171  [7n, 4n, 0x70n],
    172  [8n, 4n, 0x80n],
    173  [9n, 4n, 0x90n],
    174  [0x7ffffffen, 4n, 0x7ffffffe0n],
    175  [0x7fffffffn, 4n, 0x7fffffff0n],
    176  [0x80000000n, 4n, 0x800000000n],
    177  [0x80000001n, 4n, 0x800000010n],
    178  [0xfffffffen, 4n, 0xfffffffe0n],
    179  [0xffffffffn, 4n, 0xffffffff0n],
    180  [0x100000000n, 4n, 0x1000000000n],
    181  [0x100000001n, 4n, 0x1000000010n],
    182  [-0x100000000n, 0x1fn, -0x8000000000000000n],
    183  [-0xffffffffn, 0x1fn, -0x7fffffff80000000n],
    184  [-0xfffffffen, 0x1fn, -0x7fffffff00000000n],
    185  [-0x80000001n, 0x1fn, -0x4000000080000000n],
    186  [-0x80000000n, 0x1fn, -0x4000000000000000n],
    187  [-0x7fffffffn, 0x1fn, -0x3fffffff80000000n],
    188  [-0x7ffffffen, 0x1fn, -0x3fffffff00000000n],
    189  [-9n, 0x1fn, -0x480000000n],
    190  [-8n, 0x1fn, -0x400000000n],
    191  [-7n, 0x1fn, -0x380000000n],
    192  [-6n, 0x1fn, -0x300000000n],
    193  [-5n, 0x1fn, -0x280000000n],
    194  [-4n, 0x1fn, -0x200000000n],
    195  [-3n, 0x1fn, -0x180000000n],
    196  [-2n, 0x1fn, -0x100000000n],
    197  [-1n, 0x1fn, -0x80000000n],
    198  [0n, 0x1fn, 0n],
    199  [1n, 0x1fn, 0x80000000n],
    200  [2n, 0x1fn, 0x100000000n],
    201  [3n, 0x1fn, 0x180000000n],
    202  [4n, 0x1fn, 0x200000000n],
    203  [5n, 0x1fn, 0x280000000n],
    204  [6n, 0x1fn, 0x300000000n],
    205  [7n, 0x1fn, 0x380000000n],
    206  [8n, 0x1fn, 0x400000000n],
    207  [9n, 0x1fn, 0x480000000n],
    208  [0x7ffffffen, 0x1fn, 0x3fffffff00000000n],
    209  [0x7fffffffn, 0x1fn, 0x3fffffff80000000n],
    210  [0x80000000n, 0x1fn, 0x4000000000000000n],
    211  [0x80000001n, 0x1fn, 0x4000000080000000n],
    212  [0xfffffffen, 0x1fn, 0x7fffffff00000000n],
    213  [0xffffffffn, 0x1fn, 0x7fffffff80000000n],
    214  [-0x80000000n, 0x20n, -0x8000000000000000n],
    215  [-0x7fffffffn, 0x20n, -0x7fffffff00000000n],
    216  [-0x7ffffffen, 0x20n, -0x7ffffffe00000000n],
    217  [-9n, 0x20n, -0x900000000n],
    218  [-8n, 0x20n, -0x800000000n],
    219  [-7n, 0x20n, -0x700000000n],
    220  [-6n, 0x20n, -0x600000000n],
    221  [-5n, 0x20n, -0x500000000n],
    222  [-4n, 0x20n, -0x400000000n],
    223  [-3n, 0x20n, -0x300000000n],
    224  [-2n, 0x20n, -0x200000000n],
    225  [-1n, 0x20n, -0x100000000n],
    226  [0n, 0x20n, 0n],
    227  [1n, 0x20n, 0x100000000n],
    228  [2n, 0x20n, 0x200000000n],
    229  [3n, 0x20n, 0x300000000n],
    230  [4n, 0x20n, 0x400000000n],
    231  [5n, 0x20n, 0x500000000n],
    232  [6n, 0x20n, 0x600000000n],
    233  [7n, 0x20n, 0x700000000n],
    234  [8n, 0x20n, 0x800000000n],
    235  [9n, 0x20n, 0x900000000n],
    236  [0x7ffffffen, 0x20n, 0x7ffffffe00000000n],
    237  [0x7fffffffn, 0x20n, 0x7fffffff00000000n],
    238  [-1n, 0x3fn, -0x8000000000000000n],
    239  [0n, 0x3fn, 0n],
    240  [0n, 0x40n, 0n],
    241  [-0x8000000000000000n, -1n, -0x4000000000000000n],
    242  [-0x7fffffffffffffffn, -1n, -0x4000000000000000n],
    243  [-0x7ffffffffffffffen, -1n, -0x3fffffffffffffffn],
    244  [-0x100000001n, -1n, -0x80000001n],
    245  [-0x100000000n, -1n, -0x80000000n],
    246  [-0xffffffffn, -1n, -0x80000000n],
    247  [-0xfffffffen, -1n, -0x7fffffffn],
    248  [-0x80000001n, -1n, -0x40000001n],
    249  [-0x80000000n, -1n, -0x40000000n],
    250  [-0x7fffffffn, -1n, -0x40000000n],
    251  [-0x7ffffffen, -1n, -0x3fffffffn],
    252  [-9n, -1n, -5n],
    253  [-8n, -1n, -4n],
    254  [-7n, -1n, -4n],
    255  [-6n, -1n, -3n],
    256  [-5n, -1n, -3n],
    257  [-4n, -1n, -2n],
    258  [-3n, -1n, -2n],
    259  [-2n, -1n, -1n],
    260  [-1n, -1n, -1n],
    261  [0n, -1n, 0n],
    262  [1n, -1n, 0n],
    263  [2n, -1n, 1n],
    264  [3n, -1n, 1n],
    265  [4n, -1n, 2n],
    266  [5n, -1n, 2n],
    267  [6n, -1n, 3n],
    268  [7n, -1n, 3n],
    269  [8n, -1n, 4n],
    270  [9n, -1n, 4n],
    271  [0x7ffffffen, -1n, 0x3fffffffn],
    272  [0x7fffffffn, -1n, 0x3fffffffn],
    273  [0x80000000n, -1n, 0x40000000n],
    274  [0x80000001n, -1n, 0x40000000n],
    275  [0xfffffffen, -1n, 0x7fffffffn],
    276  [0xffffffffn, -1n, 0x7fffffffn],
    277  [0x100000000n, -1n, 0x80000000n],
    278  [0x100000001n, -1n, 0x80000000n],
    279  [0x7ffffffffffffffen, -1n, 0x3fffffffffffffffn],
    280  [0x7fffffffffffffffn, -1n, 0x3fffffffffffffffn],
    281  [-0x8000000000000000n, -2n, -0x2000000000000000n],
    282  [-0x7fffffffffffffffn, -2n, -0x2000000000000000n],
    283  [-0x7ffffffffffffffen, -2n, -0x2000000000000000n],
    284  [-0x100000001n, -2n, -0x40000001n],
    285  [-0x100000000n, -2n, -0x40000000n],
    286  [-0xffffffffn, -2n, -0x40000000n],
    287  [-0xfffffffen, -2n, -0x40000000n],
    288  [-0x80000001n, -2n, -0x20000001n],
    289  [-0x80000000n, -2n, -0x20000000n],
    290  [-0x7fffffffn, -2n, -0x20000000n],
    291  [-0x7ffffffen, -2n, -0x20000000n],
    292  [-9n, -2n, -3n],
    293  [-8n, -2n, -2n],
    294  [-7n, -2n, -2n],
    295  [-6n, -2n, -2n],
    296  [-5n, -2n, -2n],
    297  [-4n, -2n, -1n],
    298  [-3n, -2n, -1n],
    299  [-2n, -2n, -1n],
    300  [-1n, -2n, -1n],
    301  [0n, -2n, 0n],
    302  [1n, -2n, 0n],
    303  [2n, -2n, 0n],
    304  [3n, -2n, 0n],
    305  [4n, -2n, 1n],
    306  [5n, -2n, 1n],
    307  [6n, -2n, 1n],
    308  [7n, -2n, 1n],
    309  [8n, -2n, 2n],
    310  [9n, -2n, 2n],
    311  [0x7ffffffen, -2n, 0x1fffffffn],
    312  [0x7fffffffn, -2n, 0x1fffffffn],
    313  [0x80000000n, -2n, 0x20000000n],
    314  [0x80000001n, -2n, 0x20000000n],
    315  [0xfffffffen, -2n, 0x3fffffffn],
    316  [0xffffffffn, -2n, 0x3fffffffn],
    317  [0x100000000n, -2n, 0x40000000n],
    318  [0x100000001n, -2n, 0x40000000n],
    319  [0x7ffffffffffffffen, -2n, 0x1fffffffffffffffn],
    320  [0x7fffffffffffffffn, -2n, 0x1fffffffffffffffn],
    321  [-0x8000000000000000n, -3n, -0x1000000000000000n],
    322  [-0x7fffffffffffffffn, -3n, -0x1000000000000000n],
    323  [-0x7ffffffffffffffen, -3n, -0x1000000000000000n],
    324  [-0x100000001n, -3n, -0x20000001n],
    325  [-0x100000000n, -3n, -0x20000000n],
    326  [-0xffffffffn, -3n, -0x20000000n],
    327  [-0xfffffffen, -3n, -0x20000000n],
    328  [-0x80000001n, -3n, -0x10000001n],
    329  [-0x80000000n, -3n, -0x10000000n],
    330  [-0x7fffffffn, -3n, -0x10000000n],
    331  [-0x7ffffffen, -3n, -0x10000000n],
    332  [-9n, -3n, -2n],
    333  [-8n, -3n, -1n],
    334  [-7n, -3n, -1n],
    335  [-6n, -3n, -1n],
    336  [-5n, -3n, -1n],
    337  [-4n, -3n, -1n],
    338  [-3n, -3n, -1n],
    339  [-2n, -3n, -1n],
    340  [-1n, -3n, -1n],
    341  [0n, -3n, 0n],
    342  [1n, -3n, 0n],
    343  [2n, -3n, 0n],
    344  [3n, -3n, 0n],
    345  [4n, -3n, 0n],
    346  [5n, -3n, 0n],
    347  [6n, -3n, 0n],
    348  [7n, -3n, 0n],
    349  [8n, -3n, 1n],
    350  [9n, -3n, 1n],
    351  [0x7ffffffen, -3n, 0xfffffffn],
    352  [0x7fffffffn, -3n, 0xfffffffn],
    353  [0x80000000n, -3n, 0x10000000n],
    354  [0x80000001n, -3n, 0x10000000n],
    355  [0xfffffffen, -3n, 0x1fffffffn],
    356  [0xffffffffn, -3n, 0x1fffffffn],
    357  [0x100000000n, -3n, 0x20000000n],
    358  [0x100000001n, -3n, 0x20000000n],
    359  [0x7ffffffffffffffen, -3n, 0xfffffffffffffffn],
    360  [0x7fffffffffffffffn, -3n, 0xfffffffffffffffn],
    361  [-0x8000000000000000n, -4n, -0x800000000000000n],
    362  [-0x7fffffffffffffffn, -4n, -0x800000000000000n],
    363  [-0x7ffffffffffffffen, -4n, -0x800000000000000n],
    364  [-0x100000001n, -4n, -0x10000001n],
    365  [-0x100000000n, -4n, -0x10000000n],
    366  [-0xffffffffn, -4n, -0x10000000n],
    367  [-0xfffffffen, -4n, -0x10000000n],
    368  [-0x80000001n, -4n, -0x8000001n],
    369  [-0x80000000n, -4n, -0x8000000n],
    370  [-0x7fffffffn, -4n, -0x8000000n],
    371  [-0x7ffffffen, -4n, -0x8000000n],
    372  [-9n, -4n, -1n],
    373  [-8n, -4n, -1n],
    374  [-7n, -4n, -1n],
    375  [-6n, -4n, -1n],
    376  [-5n, -4n, -1n],
    377  [-4n, -4n, -1n],
    378  [-3n, -4n, -1n],
    379  [-2n, -4n, -1n],
    380  [-1n, -4n, -1n],
    381  [0n, -4n, 0n],
    382  [1n, -4n, 0n],
    383  [2n, -4n, 0n],
    384  [3n, -4n, 0n],
    385  [4n, -4n, 0n],
    386  [5n, -4n, 0n],
    387  [6n, -4n, 0n],
    388  [7n, -4n, 0n],
    389  [8n, -4n, 0n],
    390  [9n, -4n, 0n],
    391  [0x7ffffffen, -4n, 0x7ffffffn],
    392  [0x7fffffffn, -4n, 0x7ffffffn],
    393  [0x80000000n, -4n, 0x8000000n],
    394  [0x80000001n, -4n, 0x8000000n],
    395  [0xfffffffen, -4n, 0xfffffffn],
    396  [0xffffffffn, -4n, 0xfffffffn],
    397  [0x100000000n, -4n, 0x10000000n],
    398  [0x100000001n, -4n, 0x10000000n],
    399  [0x7ffffffffffffffen, -4n, 0x7ffffffffffffffn],
    400  [0x7fffffffffffffffn, -4n, 0x7ffffffffffffffn],
    401  [-0x8000000000000000n, -0x1fn, -0x100000000n],
    402  [-0x7fffffffffffffffn, -0x1fn, -0x100000000n],
    403  [-0x7ffffffffffffffen, -0x1fn, -0x100000000n],
    404  [-0x100000001n, -0x1fn, -3n],
    405  [-0x100000000n, -0x1fn, -2n],
    406  [-0xffffffffn, -0x1fn, -2n],
    407  [-0xfffffffen, -0x1fn, -2n],
    408  [-0x80000001n, -0x1fn, -2n],
    409  [-0x80000000n, -0x1fn, -1n],
    410  [-0x7fffffffn, -0x1fn, -1n],
    411  [-0x7ffffffen, -0x1fn, -1n],
    412  [-9n, -0x1fn, -1n],
    413  [-8n, -0x1fn, -1n],
    414  [-7n, -0x1fn, -1n],
    415  [-6n, -0x1fn, -1n],
    416  [-5n, -0x1fn, -1n],
    417  [-4n, -0x1fn, -1n],
    418  [-3n, -0x1fn, -1n],
    419  [-2n, -0x1fn, -1n],
    420  [-1n, -0x1fn, -1n],
    421  [0n, -0x1fn, 0n],
    422  [1n, -0x1fn, 0n],
    423  [2n, -0x1fn, 0n],
    424  [3n, -0x1fn, 0n],
    425  [4n, -0x1fn, 0n],
    426  [5n, -0x1fn, 0n],
    427  [6n, -0x1fn, 0n],
    428  [7n, -0x1fn, 0n],
    429  [8n, -0x1fn, 0n],
    430  [9n, -0x1fn, 0n],
    431  [0x7ffffffen, -0x1fn, 0n],
    432  [0x7fffffffn, -0x1fn, 0n],
    433  [0x80000000n, -0x1fn, 1n],
    434  [0x80000001n, -0x1fn, 1n],
    435  [0xfffffffen, -0x1fn, 1n],
    436  [0xffffffffn, -0x1fn, 1n],
    437  [0x100000000n, -0x1fn, 2n],
    438  [0x100000001n, -0x1fn, 2n],
    439  [0x7ffffffffffffffen, -0x1fn, 0xffffffffn],
    440  [0x7fffffffffffffffn, -0x1fn, 0xffffffffn],
    441  [-0x8000000000000000n, -0x20n, -0x80000000n],
    442  [-0x7fffffffffffffffn, -0x20n, -0x80000000n],
    443  [-0x7ffffffffffffffen, -0x20n, -0x80000000n],
    444  [-0x100000001n, -0x20n, -2n],
    445  [-0x100000000n, -0x20n, -1n],
    446  [-0xffffffffn, -0x20n, -1n],
    447  [-0xfffffffen, -0x20n, -1n],
    448  [-0x80000001n, -0x20n, -1n],
    449  [-0x80000000n, -0x20n, -1n],
    450  [-0x7fffffffn, -0x20n, -1n],
    451  [-0x7ffffffen, -0x20n, -1n],
    452  [-9n, -0x20n, -1n],
    453  [-8n, -0x20n, -1n],
    454  [-7n, -0x20n, -1n],
    455  [-6n, -0x20n, -1n],
    456  [-5n, -0x20n, -1n],
    457  [-4n, -0x20n, -1n],
    458  [-3n, -0x20n, -1n],
    459  [-2n, -0x20n, -1n],
    460  [-1n, -0x20n, -1n],
    461  [0n, -0x20n, 0n],
    462  [1n, -0x20n, 0n],
    463  [2n, -0x20n, 0n],
    464  [3n, -0x20n, 0n],
    465  [4n, -0x20n, 0n],
    466  [5n, -0x20n, 0n],
    467  [6n, -0x20n, 0n],
    468  [7n, -0x20n, 0n],
    469  [8n, -0x20n, 0n],
    470  [9n, -0x20n, 0n],
    471  [0x7ffffffen, -0x20n, 0n],
    472  [0x7fffffffn, -0x20n, 0n],
    473  [0x80000000n, -0x20n, 0n],
    474  [0x80000001n, -0x20n, 0n],
    475  [0xfffffffen, -0x20n, 0n],
    476  [0xffffffffn, -0x20n, 0n],
    477  [0x100000000n, -0x20n, 1n],
    478  [0x100000001n, -0x20n, 1n],
    479  [0x7ffffffffffffffen, -0x20n, 0x7fffffffn],
    480  [0x7fffffffffffffffn, -0x20n, 0x7fffffffn],
    481  [-0x8000000000000000n, -0x3fn, -1n],
    482  [-0x7fffffffffffffffn, -0x3fn, -1n],
    483  [-0x7ffffffffffffffen, -0x3fn, -1n],
    484  [-0x100000001n, -0x3fn, -1n],
    485  [-0x100000000n, -0x3fn, -1n],
    486  [-0xffffffffn, -0x3fn, -1n],
    487  [-0xfffffffen, -0x3fn, -1n],
    488  [-0x80000001n, -0x3fn, -1n],
    489  [-0x80000000n, -0x3fn, -1n],
    490  [-0x7fffffffn, -0x3fn, -1n],
    491  [-0x7ffffffen, -0x3fn, -1n],
    492  [-9n, -0x3fn, -1n],
    493  [-8n, -0x3fn, -1n],
    494  [-7n, -0x3fn, -1n],
    495  [-6n, -0x3fn, -1n],
    496  [-5n, -0x3fn, -1n],
    497  [-4n, -0x3fn, -1n],
    498  [-3n, -0x3fn, -1n],
    499  [-2n, -0x3fn, -1n],
    500  [-1n, -0x3fn, -1n],
    501  [0n, -0x3fn, 0n],
    502  [1n, -0x3fn, 0n],
    503  [2n, -0x3fn, 0n],
    504  [3n, -0x3fn, 0n],
    505  [4n, -0x3fn, 0n],
    506  [5n, -0x3fn, 0n],
    507  [6n, -0x3fn, 0n],
    508  [7n, -0x3fn, 0n],
    509  [8n, -0x3fn, 0n],
    510  [9n, -0x3fn, 0n],
    511  [0x7ffffffen, -0x3fn, 0n],
    512  [0x7fffffffn, -0x3fn, 0n],
    513  [0x80000000n, -0x3fn, 0n],
    514  [0x80000001n, -0x3fn, 0n],
    515  [0xfffffffen, -0x3fn, 0n],
    516  [0xffffffffn, -0x3fn, 0n],
    517  [0x100000000n, -0x3fn, 0n],
    518  [0x100000001n, -0x3fn, 0n],
    519  [0x7ffffffffffffffen, -0x3fn, 0n],
    520  [0x7fffffffffffffffn, -0x3fn, 0n],
    521  [-0x8000000000000000n, -0x40n, -1n],
    522  [-0x7fffffffffffffffn, -0x40n, -1n],
    523  [-0x7ffffffffffffffen, -0x40n, -1n],
    524  [-0x100000001n, -0x40n, -1n],
    525  [-0x100000000n, -0x40n, -1n],
    526  [-0xffffffffn, -0x40n, -1n],
    527  [-0xfffffffen, -0x40n, -1n],
    528  [-0x80000001n, -0x40n, -1n],
    529  [-0x80000000n, -0x40n, -1n],
    530  [-0x7fffffffn, -0x40n, -1n],
    531  [-0x7ffffffen, -0x40n, -1n],
    532  [-9n, -0x40n, -1n],
    533  [-8n, -0x40n, -1n],
    534  [-7n, -0x40n, -1n],
    535  [-6n, -0x40n, -1n],
    536  [-5n, -0x40n, -1n],
    537  [-4n, -0x40n, -1n],
    538  [-3n, -0x40n, -1n],
    539  [-2n, -0x40n, -1n],
    540  [-1n, -0x40n, -1n],
    541  [0n, -0x40n, 0n],
    542  [1n, -0x40n, 0n],
    543  [2n, -0x40n, 0n],
    544  [3n, -0x40n, 0n],
    545  [4n, -0x40n, 0n],
    546  [5n, -0x40n, 0n],
    547  [6n, -0x40n, 0n],
    548  [7n, -0x40n, 0n],
    549  [8n, -0x40n, 0n],
    550  [9n, -0x40n, 0n],
    551  [0x7ffffffen, -0x40n, 0n],
    552  [0x7fffffffn, -0x40n, 0n],
    553  [0x80000000n, -0x40n, 0n],
    554  [0x80000001n, -0x40n, 0n],
    555  [0xfffffffen, -0x40n, 0n],
    556  [0xffffffffn, -0x40n, 0n],
    557  [0x100000000n, -0x40n, 0n],
    558  [0x100000001n, -0x40n, 0n],
    559  [0x7ffffffffffffffen, -0x40n, 0n],
    560  [0x7fffffffffffffffn, -0x40n, 0n],
    561 ];
    562 
    563 // Cases not covered above.
    564 tests.push(
    565  // Negative shift with sign-bit set when interpreted as pointer-sized value (32-bit).
    566  [-1n, -0xf000_0000n, -1n],
    567  [0n, -0xf000_0000n, 0n],
    568  [1n, -0xf000_0000n, 0n],
    569 );
    570 
    571 function f(tests) {
    572  for (let test of tests) {
    573    let lhs = test[0], rhs = test[1], expected = test[2];
    574    assertEq(BigInt.asIntN(64, lhs), lhs);
    575    assertEq(BigInt.asIntN(64, rhs), rhs);
    576    assertEq(BigInt.asIntN(64, expected), expected);
    577 
    578    assertEq(lhs << rhs, expected);
    579  }
    580 }
    581 
    582 for (let i = 0; i < 10; ++i) {
    583  f(tests);
    584 }