tor-browser

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

compare.js (15954B)


      1 setJitCompilerOption('ion.forceinlineCaches', 1);
      2 
      3 function warmup(fun, input_array) {
      4    for (var index = 0; index < input_array.length; index++) {
      5        input = input_array[index];
      6        input_lhs = input[0];
      7        input_rhs = input[1];
      8        output    = input[2];
      9        for (var i = 0; i < 30; i++) {
     10            var str = "";
     11            var y = fun(input_lhs, input_rhs);
     12            if (y != output) {
     13                str = "Computed: "+y+ ", expected: "+ output + " ( " + fun + " lhs: "+ input_lhs + " rhs: " + input_rhs +")";
     14            }
     15            assertEq(str, "");
     16        }
     17    }
     18 }
     19 
     20 
     21 // Int32 + Int32
     22 var Int32Int32Fun_GT1 = (a, b) => { return a > b; }
     23 warmup(Int32Int32Fun_GT1, [[1,2, false], [1,1, false], [3,4, false], [4294967295, 2, true],
     24                           [NaN, 2, false], [-1000, NaN, false], [NaN, NaN, false], [10, undefined, false]]);
     25 
     26 var Int32Int32Fun_GTE1 = (a, b) => { return a >= b; }
     27 warmup(Int32Int32Fun_GTE1, [[1,2, false], [1,1, true], [3,4, false], [4294967295, 2, true],
     28                            [NaN, 2, false], [-1000, NaN, false], [NaN, NaN, false], [10, undefined, false]]);
     29 
     30 var Int32Int32Fun_LT1 = (a, b) => { return a < b; }
     31 warmup(Int32Int32Fun_LT1, [[1,2, true], [1,1, false], [3,4, true], [4294967295, 2, false],
     32                           [NaN, 2, false],[-1000, NaN, false], [NaN, NaN, false], [10, undefined, false]]);
     33 
     34 var Int32Int32Fun_LTE1 = (a, b) => { return a <= b; }
     35 warmup(Int32Int32Fun_LTE1, [[1,2, true], [1,1, true], [3,4, true], [4294967295, 2, false],
     36                            [NaN, 2, false], [-1000, NaN, false], [NaN, NaN, false], [10, undefined, false]]);
     37 
     38 var Int32Int32Fun_EQ1 = (a, b) => { return a == b; }
     39 warmup(Int32Int32Fun_EQ1, [[1,2, false], [1,1, true], [3,4, false], [4294967295, 2, false],
     40                            [NaN, 2, false], [-1000, NaN, false], [undefined, null, true],
     41                            ['0', 0, true], [new String('0'), 0, true], [10, undefined, false]]);
     42 
     43 var Int32Int32Fun_EQ2 = (a, b) => { return a == b; }
     44 warmup(Int32Int32Fun_EQ2, [[1, NaN, false], [1, undefined, false], [1, null, false]]);
     45 
     46 var Int32Int32Fun_EQ3 = (a, b) => { return a == b; }
     47 warmup(Int32Int32Fun_EQ3, [[{a: 1}, NaN, false], [{a: 1}, undefined, false], [{a: 1}, null, false]]);
     48 
     49 var Int32Int32Fun_EQ4 = (a, b) => { return a == b; }
     50 warmup(Int32Int32Fun_EQ4, [[undefined, undefined, true], [null, null, true], [null, undefined, true], [undefined, null, true]]);
     51 
     52 
     53 var Int32Int32Fun_NEQ1 = (a, b) => { return a != b; }
     54 warmup(Int32Int32Fun_NEQ1, [[1,2, true], [1,1, false], [3,4, true], [4294967295, 2, true],
     55                            [NaN, 2, true], [-1000, NaN, true], [undefined, null, false],
     56                            ['0', 0, false], [new String('0'), 0, false], [10, undefined, true]]);
     57 
     58 var Int32Int32Fun_NEQ2 = (a, b) => { return a != b; }
     59 warmup(Int32Int32Fun_NEQ2, [[1, NaN, true], [1, undefined, true], [1, null, true]]);
     60 
     61 var Int32Int32Fun_NEQ3 = (a, b) => { return a != b; }
     62 warmup(Int32Int32Fun_NEQ3, [[{a: 1}, NaN, true], [{a: 1}, undefined, true], [{a: 1}, null, true]]);
     63 
     64 var Int32Int32Fun_NEQ4 = (a, b) => { return a != b; }
     65 warmup(Int32Int32Fun_NEQ4, [[undefined, undefined, false], [null, null, false], [null, undefined, false], [undefined, null, false]]);
     66 
     67 var Int32Int32Fun_SEQ1 = (a, b) => { return a === b; }
     68 warmup(Int32Int32Fun_SEQ1, [[1,2, false], [1,1, true], [3,4, false], [4294967295, 2, false],
     69                            [NaN, 2, false], [-1000, NaN, false], [undefined, null, false],
     70                            ['0', 0, false], [new String('0'), 0, false], [10, undefined, false]]);
     71 
     72 var Int32Int32Fun_SEQ2 = (a, b) => { return a === b; }
     73 warmup(Int32Int32Fun_SEQ2, [[1, NaN, false], [1, undefined, false], [1, null, false]]);
     74 
     75 var Int32Int32Fun_SEQ3 = (a, b) => { return a === b; }
     76 warmup(Int32Int32Fun_SEQ3, [[{a: 1}, NaN, false], [{a: 1}, undefined, false], [{a: 1}, null, false]]);
     77 
     78 var Int32Int32Fun_SEQ4 = (a, b) => { return a === b; }
     79 warmup(Int32Int32Fun_SEQ4, [[undefined, undefined, true], [null, null, true], [null, undefined, false], [undefined, null, false] ]);
     80 
     81 var Int32Int32Fun_SEQ5 = (a, b) => { return a === b; }
     82 warmup(Int32Int32Fun_SEQ5, [[1, true, false], [1, false, false], [false, 1, false], [true, 0, false], [true, true, true]]);
     83 
     84 var Int32Int32Fun_SNEQ1 = (a, b) => { return a !== b; }
     85 warmup(Int32Int32Fun_SNEQ1, [[1,2, true], [1,1, false], [3,4, true], [4294967295, 2, true],
     86                            [NaN, 2, true], [-1000, NaN, true], [undefined, null, true],
     87                            ['0', 0, true], [new String('0'), 0, true], [10, undefined, true]]);
     88 
     89 var Int32Int32Fun_SNEQ2 = (a, b) => { return a !== b; }
     90 warmup(Int32Int32Fun_SNEQ2, [[1, NaN, true], [1, undefined, true], [1, null, true]]);
     91 
     92 var Int32Int32Fun_SNEQ3 = (a, b) => { return a !== b; }
     93 warmup(Int32Int32Fun_SNEQ3, [[{a: 1}, NaN, true], [{a: 1}, undefined, true], [{a: 1}, null, true]]);
     94 
     95 var Int32Int32Fun_SNEQ4 = (a, b) => { return a !== b; }
     96 warmup(Int32Int32Fun_SNEQ4, [[undefined, undefined, false], [null, null, false], [null, undefined, true], [undefined, null, true] ]);
     97 
     98 var Int32Int32Fun_SNEQ5 = (a, b) => { return a !== b; }
     99 warmup(Int32Int32Fun_SNEQ5, [[1, true, true], [1, false, true], [false, 1, true], [true, 0, true]]);
    100 
    101 
    102 // Number Number
    103 var NumberNumberFun_GT1 = (a, b) => { return a > b; }
    104 warmup(NumberNumberFun_GT1, [[1,2, false], [1.3, 2, false], [1, 2.6, false], [1.2,2.2, false],
    105                             [1,1, false], [3,4, false], [4294967295, 2, true],
    106                             [NaN, 2, false], [-1000, NaN, false], [NaN, NaN, false], [10.2, undefined, false]]);
    107 
    108 var NumberNumberFun_GTE1 = (a, b) => { return a >= b; }
    109 warmup(NumberNumberFun_GTE1, [[1,2, false], [1.3, 2, false], [1, 2.6, false], [1.2,2.2, false],
    110                             [1,1, true], [3,4, false], [4294967295, 2, true],
    111                              [NaN, 2, false], [-1000, NaN, false], [NaN, NaN, false], [10.2, undefined, false]]);
    112 
    113 var NumberNumberFun_LT1 = (a, b) => { return a < b; }
    114 warmup(NumberNumberFun_LT1, [[1,2, true], [1.3, 2, true], [1, 2.6, true], [1.2,2.2, true],
    115                             [1,1, false], [3,4, true], [4294967295, 2, false],
    116                             [NaN, 2, false],[-1000, NaN, false], [NaN, NaN, false, [10.2, undefined, false]]]);
    117 
    118 var NumberNumberFun_LTE1 = (a, b) => { return a <= b; }
    119 warmup(NumberNumberFun_LTE1, [[1,2, true], [1.3, 2, true], [1, 2.6, true], [1.2,2.2, true],
    120                              [1,1, true], [3,4, true], [4294967295, 2, false],
    121                              [NaN, 2, false], [-1000, NaN, false], [NaN, NaN, false], [10.2, undefined, false]]);
    122 
    123 var NumberNumberFun_EQ1 = (a, b) => { return a == b; }
    124 warmup(NumberNumberFun_EQ1, [[1,2, false], [1.3, 2, false], [1, 2.6, false], [1.2,2.2, false],
    125                             [1,1, true], [3,4, false], [4294967295, 2, false],
    126                              [NaN, 2, false], [-1000, NaN, false], [undefined, null, true],
    127                            ['0', 0, true], [new String('0'), 0, true], [10.2, undefined, false]]);
    128 
    129 var NumberNumberFun_NEQ1 = (a, b) => { return a != b; }
    130 warmup(NumberNumberFun_NEQ1, [[1,2, true], [1.3, 2, true], [1, 2.6, true], [1.2,2.2, true],
    131                              [1,1, false], [3,4, true], [4294967295, 2, true],
    132                              [NaN, 2, true], [-1000, NaN, true], [undefined, null, false],
    133                            ['0', 0, false], [new String('0'), 0, false], [10.2, undefined, true]]);
    134 
    135 var NumberNumberFun_SEQ1 = (a, b) => { return a === b; }
    136 warmup(NumberNumberFun_SEQ1, [[1,2, false], [1.3, 2, false], [1, 2.6, false], [1.2,2.2, false],
    137                             [1,1, true], [3,4, false], [4294967295, 2, false],
    138                              [NaN, 2, false], [-1000, NaN, false], [undefined, null, false],
    139                            ['0', 0, false], [new String('0'), 0, false], [10.2, undefined, false]]);
    140 
    141 var NumberNumberFun_SNEQ1 = (a, b) => { return a !== b; }
    142 warmup(NumberNumberFun_SNEQ1, [[1,2, true], [1.3, 2, true], [1, 2.6, true], [1.2,2.2, true],
    143                               [1,1, false], [3,4, true], [4294967295, 2, true],
    144                               [NaN, 2, true], [-1000, NaN, true], [undefined, null, true],
    145                               ['0', 0, true], [new String('0'), 0, true], [10.2, undefined, true]]);
    146 
    147 // Boolean + Int32
    148 var BooleanFun_GT1 = (a, b) => { return a > b; }
    149 warmup(BooleanFun_GT1, [[1,2, false], [true, 2, false], [1,1, false], [true,true, false], [3,4, false], ]);
    150 
    151 var BooleanFun_GTE1 = (a, b) => { return a >= b; }
    152 warmup(BooleanFun_GTE1, [[1,2, false], [true, 2, false], [1,1, true], [true,true, true], [3,4, false]]);
    153 
    154 var BooleanFun_LT1 = (a, b) => { return a < b; }
    155 warmup(BooleanFun_LT1, [[1,2, true], [true, 2, true], [1,1, false], [true,true, false], [3,4, true]]);
    156 
    157 var BooleanFun_LTE1 = (a, b) => { return a <= b; }
    158 warmup(BooleanFun_LTE1, [[1,2, true], [true, 2, true], [1,1, true], [true,true, true], [3,4, true]]);
    159 
    160 var BooleanFun_EQ1 = (a, b) => { return a == b; }
    161 warmup(BooleanFun_EQ1, [[1,2, false], [true, 2, false], [1,1, true], [true,true, true], [3,4, false],
    162               ['0', 0, true], [new String('0'), 0, true], [10, undefined, false]]);
    163 
    164 var BooleanFun_NEQ1 = (a, b) => { return a != b; }
    165 warmup(BooleanFun_NEQ1, [[1,2, true], [true, 2, true], [1,1, false], [true,true, false], [3,4, true],
    166             ['0', 0, false], [new String('0'), 0, false], [10, undefined, true]]);
    167 
    168 var BooleanFun_SEQ1 = (a, b) => { return a === b; }
    169 warmup(BooleanFun_SEQ1, [[1,2, false], [true, 2, false], [1,1, true], [true,true, true], [3,4, false]]);
    170 
    171 var BooleanFun_SNEQ1 = (a, b) => { return a !== b; }
    172 warmup(BooleanFun_SNEQ1, [[1,2, true], [true, 2, true], [1,1, false], [true,true, false], [3,4, true]]);
    173 
    174 // Undefined / Null equality.
    175 var UndefNull_EQ1 = (a, b) => { return a == b; }
    176 warmup(UndefNull_EQ1, [[undefined, null, true], [undefined, undefined, true], [null, undefined, true],
    177                        [null, null, true], [{a: 10}, undefined, false], [{a: 10}, null, false]]);
    178 
    179 var UndefNull_NEQ1 = (a, b) => { return a != b; }
    180 warmup(UndefNull_NEQ1, [[undefined, null, false], [undefined, undefined, false], [null, undefined, false],
    181                         [null, null, false],  [{a: 10}, undefined, true], [{a: 10}, null, true]]);
    182 
    183 var UndefNull_SEQ1 = (a, b) => { return a === b; }
    184 warmup(UndefNull_SEQ1, [[undefined, null, false], [undefined, undefined, true], [null, undefined, false],
    185                         [null, null, true],  [{a: 10}, undefined, false], [{a: 10}, null, false]]);
    186 
    187 var UndefNull_SNEQ1 = (a, b) => { return a !== b; }
    188 warmup(UndefNull_SNEQ1, [[undefined, null, true], [undefined, undefined, false], [null, undefined, true],
    189                          [null, null, false],  [{a: 10}, undefined, true], [{a: 10}, null, true]]);
    190 
    191 var typeDifference = function(a,b) { return a === b; }
    192 warmup(typeDifference, [[1,1, true], [3,3, true], [3, typeDifference, false],[typeDifference, {}, false],
    193                        [3.2, 1, false], [0, -0, true]]);
    194 
    195 // String + Number
    196 var String_Number_GT1 = (a, b) => { return a > b; }
    197 warmup(String_Number_GT1, [["1.4",2, false], [1,"1", false], ["3",4, false],
    198                           [-1024, "-1023", false], [1.3, "1.2", true]]);
    199 
    200 var String_Number_GTE1 = (a, b) => { return a >= b; }
    201 warmup(String_Number_GTE1, [["1.4",2, false], [1,"1", true], [3,"4", false],
    202                            [-1024, "-1023", false], [1.2, "1.2", true]]);
    203 
    204 var String_Number_LT1 = (a, b) => { return a < b; }
    205 warmup(String_Number_LT1, [["1.4",2, true], ["1",1, false], [3,"4", true],
    206                           [-1024, "-1023", true], [1.2, "1.2", false]]);
    207 
    208 var String_Number_LTE1 = (a, b) => { return a <= b; }
    209 warmup(String_Number_LTE1, [["1.4",2, true], ["1",1, true], [3,"4", true],
    210                            [-1024, "-1023", true], [1.2, "1.2", true]]);
    211 
    212 var String_Number_EQ1 = (a, b) => { return a == b; }
    213 warmup(String_Number_EQ1, [["1.4",2, false], ["1",1, true], [3,"4", false],
    214                          [-1024, "-1023", false], [1.2, "1.2", true]]);
    215 
    216 var String_Number_NEQ1 = (a, b) => { return a != b; }
    217 warmup(String_Number_NEQ1, [["1.4",2, true], ["1",1, false], [3,"4", true],
    218                            [-1024, "-1023", true], [1.2, "1.2", false]]);
    219 
    220 var String_Number_SEQ1 = (a, b) => { return a === b; }
    221 warmup(String_Number_SEQ1, [["1.4",2, false],  ["1",1, false], [3,"4", false],
    222                            [-1024, "-1023", false], [1.2, "1.2", false]]);
    223 
    224 var String_Number_SNEQ1 = (a, b) => { return a !== b; }
    225 warmup(String_Number_SNEQ1, [["1.4",2, true], ["1",1, true], [3,"4", true],
    226                             [-1024, "-1023", true], [1.2, "1.2", true]]);
    227 
    228 // String + String
    229 var String_String_GT1 = (a, b) => a > b;
    230 warmup(String_String_GT1, [["", "", false], ["a", "a", false], ["aa", "aa", false],
    231                           ["a", "", true], ["", "a", false],
    232                           ["a", "b", false], ["b", "a", true],
    233                           ["a", "ab", false], ["ab", "a", true],
    234                          ]);
    235 
    236 var String_String_GE1 = (a, b) => a >= b;
    237 warmup(String_String_GE1, [["", "", true], ["a", "a", true], ["aa", "aa", true],
    238                           ["a", "", true], ["", "a", false],
    239                           ["a", "b", false], ["b", "a", true],
    240                           ["a", "ab", false], ["ab", "a", true],
    241                          ]);
    242 
    243 var String_String_LT1 = (a, b) => a < b;
    244 warmup(String_String_LT1, [["", "", false], ["a", "a", false], ["aa", "aa", false],
    245                           ["a", "", false], ["", "a", true],
    246                           ["a", "b", true], ["b", "a", false],
    247                           ["a", "ab", true], ["ab", "a", false],
    248                          ]);
    249 
    250 var String_String_LE1 = (a, b) => a <= b;
    251 warmup(String_String_LE1, [["", "", true], ["a", "a", true], ["aa", "aa", true],
    252                           ["a", "", false], ["", "a", true],
    253                           ["a", "b", true], ["b", "a", false],
    254                           ["a", "ab", true], ["ab", "a", false],
    255                          ]);
    256 
    257 var String_String_EQ1 = (a, b) => a == b;
    258 warmup(String_String_EQ1, [["", "", true], ["a", "a", true], ["aa", "aa", true],
    259                           ["a", "", false], ["", "a", false],
    260                           ["a", "b", false], ["b", "a", false],
    261                           ["a", "ab", false], ["ab", "a", false],
    262                          ]);
    263 
    264 var String_String_SEQ1 = (a, b) => a === b;
    265 warmup(String_String_SEQ1, [["", "", true], ["a", "a", true], ["aa", "aa", true],
    266                            ["a", "", false], ["", "a", false],
    267                            ["a", "b", false], ["b", "a", false],
    268                            ["a", "ab", false], ["ab", "a", false],
    269                           ]);
    270 
    271 var String_String_NE1 = (a, b) => a != b;
    272 warmup(String_String_NE1, [["", "", false], ["a", "a", false], ["aa", "aa", false],
    273                           ["a", "", true], ["", "a", true],
    274                           ["a", "b", true], ["b", "a", true],
    275                           ["a", "ab", true], ["ab", "a", true],
    276                          ]);
    277 
    278 var String_String_SNE1 = (a, b) => a !== b;
    279 warmup(String_String_SNE1, [["", "", false], ["a", "a", false], ["aa", "aa", false],
    280                            ["a", "", true], ["", "a", true],
    281                            ["a", "b", true], ["b", "a", true],
    282                            ["a", "ab", true], ["ab", "a", true],
    283                           ]);
    284 
    285 // IsHTMLDDA internal slot
    286 // https://tc39.github.io/ecma262/#sec-IsHTMLDDA-internal-slot
    287 var IsHTMLDDA_EQ1 = (a, b) => a == b;
    288 warmup(IsHTMLDDA_EQ1, [[createIsHTMLDDA(), null, true],
    289                       [createIsHTMLDDA(), undefined, true],
    290                       [null, createIsHTMLDDA(), true],
    291                       [undefined, createIsHTMLDDA(), true],
    292                      ]);