js/src/jit-test/tests/ion/compareAll.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 load(libdir + 'array-compare.js');
     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 }
    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 }
    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 }
   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 }
   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 }
   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 }
   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 ];
   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),
   226   compareIAndBranch(1),
   227   compareIAndBranch(2),
   228   compareIAndBranch(3),
   229   compareIAndBranch(4),
   230   compareIAndBranch(5),
   231   compareIAndBranch(6),
   232   compareIAndBranch(7),
   233   compareIAndBranch(8),
   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),
   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),
   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(""),
   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 ];
   279 assertEq(arraysEqual(result, expected), true);

mercurial