tor-browser

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

compareAll.js (5036B)


      1 load(libdir + 'array-compare.js');
      2 
      3 function compareIAndSet(v) {
      4    var res = 0;
      5    var c;
      6    var i = 0;
      7    c = (v >  1);
      8    res |= (c << i);
      9    i++;
     10    c = (v >= 2);
     11    res |= (c << i);
     12    i++;
     13    c = (v <  3);
     14    res |= (c << i);
     15    i++;
     16    c = (v <= 4);
     17    res |= (c << i);
     18    i++;
     19    c = (v == 5);
     20    res |= (c << i);
     21    i++;
     22    c = (v != 6);
     23    res |= (c << i);
     24    i++;
     25    c = (v === 7);
     26    res |= (c << i);
     27    i++;
     28    c = (v !== 8);
     29    res |= (c << i);
     30    i++;
     31    return res;
     32 }
     33 
     34 function compareIAndBranch(v) {
     35    var res = 0;
     36    var c = 1;
     37    var i = 0;
     38    if (v >  1)
     39        res |= (c << i);
     40    i++;
     41    if (v >= 2)
     42        res |= (c << i);
     43    i++;
     44    if (v <  3)
     45        res |= (c << i);
     46    i++;
     47    if (v <= 4)
     48        res |= (c << i);
     49    i++;
     50    if (v == 5)
     51        res |= (c << i);
     52    i++;
     53    if (v != 6)
     54        res |= (c << i);
     55    i++;
     56    if (v === 7)
     57        res |= (c << i);
     58    i++;
     59    if (v !== 8)
     60        res |= (c << i);
     61    i++;
     62    if (v)
     63        res |= (c << i);
     64    i++;
     65    return res;
     66 }
     67 
     68 function compareDAndSet(v) {
     69    var res = 0;
     70    var c;
     71    var i = 0;
     72    c = (v >  1.5);
     73    res |= (c << i);
     74    i++;
     75    c = (v >= 2.5);
     76    res |= (c << i);
     77    i++;
     78    c = (v <  3.5);
     79    res |= (c << i);
     80    i++;
     81    c = (v <= 4.5);
     82    res |= (c << i);
     83    i++;
     84    c = (v == 5.5);
     85    res |= (c << i);
     86    i++;
     87    c = (v != 6.5);
     88    res |= (c << i);
     89    i++;
     90    c = (v === 7.5);
     91    res |= (c << i);
     92    i++;
     93    c = (v !== 8.5);
     94    res |= (c << i);
     95    i++;
     96    c = (v !== 0.0);
     97    res |= (c << i);
     98    i++;
     99    return res;
    100 }
    101 
    102 function compareDAndBranch(v) {
    103    var res = 0;
    104    var c = 1;
    105    var i = 0;
    106    if (v >  1.5)
    107        res |= (c << i);
    108    i++;
    109    if (v >= 2.5)
    110        res |= (c << i);
    111    i++;
    112    if (v <  3.5)
    113        res |= (c << i);
    114    i++;
    115    if (v <= 4.5)
    116        res |= (c << i);
    117    i++;
    118    if (v == 5.5)
    119        res |= (c << i);
    120    i++;
    121    if (v != 6.5)
    122        res |= (c << i);
    123    i++;
    124    if (v === 7.5)
    125        res |= (c << i);
    126    i++;
    127    if (v !== 8.5)
    128        res |= (c << i);
    129    i++;
    130    if (v)
    131        res |= (c << i);
    132    i++;
    133    return res;
    134 }
    135 
    136 function compareSAndSet(v) {
    137    var res = 0;
    138    var c;
    139    var i = 0;
    140    c = (v >  "a");
    141    res |= (c << i);
    142    i++;
    143    c = (v >= "b");
    144    res |= (c << i);
    145    i++;
    146    c = (v <  "c");
    147    res |= (c << i);
    148    i++;
    149    c = (v <= "d");
    150    res |= (c << i);
    151    i++;
    152    c = (v == "e");
    153    res |= (c << i);
    154    i++;
    155    c = (v != "f");
    156    res |= (c << i);
    157    i++;
    158    c = (v === "g");
    159    res |= (c << i);
    160    i++;
    161    c = (v !== "h");
    162    res |= (c << i);
    163    i++;
    164    return res;
    165 }
    166 
    167 function compareSAndBranch(v) {
    168    var res = 0;
    169    var c = 1;
    170    var i = 0;
    171    if (v >  "a")
    172        res |= (c << i);
    173    i++;
    174    if (v >= "b")
    175        res |= (c << i);
    176    i++;
    177    if (v <  "c")
    178        res |= (c << i);
    179    i++;
    180    if (v <= "d")
    181        res |= (c << i);
    182    i++;
    183    if (v == "e")
    184        res |= (c << i);
    185    i++;
    186    if (v != "f")
    187        res |= (c << i);
    188    i++;
    189    if (v === "g")
    190        res |= (c << i);
    191    i++;
    192    if (v !== "h")
    193        res |= (c << i);
    194    i++;
    195    if (v)
    196        res |= (c << i);
    197    i++;
    198    return res;
    199 }
    200 
    201 var expected = [
    202  // compareIAndSet
    203  172, 175, 171, 171, 179, 131, 227, 35,
    204  // compareIAndBranch
    205  428, 431, 427, 427, 435, 387, 483, 291,
    206  // compareDAndSet
    207  428, 428, 431, 427, 427, 435, 387, 483, 291, 416,
    208  // compareDAndBranch
    209  428, 428, 431, 427, 427, 435, 387, 483, 291, 160, 172,
    210  // compareSAndSet
    211  172, 175, 171, 171, 179, 131, 227, 35, 172,
    212  // compareSAndBranch
    213  428, 431, 427, 427, 435, 387, 483, 291, 172
    214 ];
    215 
    216 var result = [
    217  compareIAndSet(1),
    218  compareIAndSet(2),
    219  compareIAndSet(3),
    220  compareIAndSet(4),
    221  compareIAndSet(5),
    222  compareIAndSet(6),
    223  compareIAndSet(7),
    224  compareIAndSet(8),
    225 
    226  compareIAndBranch(1),
    227  compareIAndBranch(2),
    228  compareIAndBranch(3),
    229  compareIAndBranch(4),
    230  compareIAndBranch(5),
    231  compareIAndBranch(6),
    232  compareIAndBranch(7),
    233  compareIAndBranch(8),
    234 
    235  compareDAndSet(0.5),
    236  compareDAndSet(1.5),
    237  compareDAndSet(2.5),
    238  compareDAndSet(3.5),
    239  compareDAndSet(4.5),
    240  compareDAndSet(5.5),
    241  compareDAndSet(6.5),
    242  compareDAndSet(7.5),
    243  compareDAndSet(8.5),
    244  compareDAndSet(NaN),
    245 
    246  compareDAndBranch(0.5),
    247  compareDAndBranch(1.5),
    248  compareDAndBranch(2.5),
    249  compareDAndBranch(3.5),
    250  compareDAndBranch(4.5),
    251  compareDAndBranch(5.5),
    252  compareDAndBranch(6.5),
    253  compareDAndBranch(7.5),
    254  compareDAndBranch(8.5),
    255  compareDAndBranch(NaN),
    256  compareDAndBranch(0.0),
    257 
    258  compareSAndSet("a"),
    259  compareSAndSet("b"),
    260  compareSAndSet("c"),
    261  compareSAndSet("d"),
    262  compareSAndSet("e"),
    263  compareSAndSet("f"),
    264  compareSAndSet("g"),
    265  compareSAndSet("h"),
    266  compareSAndSet(""),
    267 
    268  compareSAndBranch("a"),
    269  compareSAndBranch("b"),
    270  compareSAndBranch("c"),
    271  compareSAndBranch("d"),
    272  compareSAndBranch("e"),
    273  compareSAndBranch("f"),
    274  compareSAndBranch("g"),
    275  compareSAndBranch("h"),
    276  compareSAndBranch("")
    277 ];
    278 
    279 assertEq(arraysEqual(result, expected), true);