tor-browser

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

bigint-rsh-64.js (16482B)


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