js/src/jit-test/tests/asm.js/bug941877.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 (function(stdlib, n, heap) {
     2     "use asm"
     3     var Int16ArrayView = new stdlib.Int16Array(heap);
     4     function f(i0, d1) {
     5         i0 = i0 | 0
     6         d1 = +d1
     7         var d2 = 1.
     8         var i3 = 0
     9         Int16ArrayView[0] = i0
    10         d2 = (.0 / .0)
    11         switch ((i0 + i0) | 0) {
    12             case 0:
    13                 d2 = .0
    14                 break
    15         };
    16         (((i3 - (0 < 0)) >>> ((.0 < -0) + (.0 > .0))) / 0) >> (0 + (((0 + 0) ^
    17 (9 > 0)) | 0))
    18     }
    19 })(this, null, new ArrayBuffer(4096));
    21 (function(stdlib, n, heap) {
    22     "use asm"
    23     var Float64ArrayView = new stdlib.Float64Array(heap)
    24     function f() {
    25         Float64ArrayView[0] = +(0xffffffff / 0xffffffff >> 0)
    26     }
    27 })(this, null, new ArrayBuffer(4096));
    29 function test0(x)
    30 {
    31    return (x >>> 0) % 10;
    32 }
    33 assertEq(test0(25), 5);
    34 assertEq(test0(24), 4);
    35 assertEq(test0(23), 3);
    36 assertEq(test0(0), 0);
    37 assertEq(test0(4294967295), 5);
    39 function test1(x)
    40 {
    41    return (x >>> 2) % 10;
    42 }
    43 assertEq(test1(25), 6);
    44 assertEq(test1(24), 6);
    45 assertEq(test1(23), 5);
    46 assertEq(test1(4294967295), 3);
    48 function test2(x, y)
    49 {
    50    return (x >>> 0) % (y >>> 0);
    51 }
    52 assertEq(test2(25, 3), 1);
    53 assertEq(test2(24, 4), 0);
    54 assertEq(test2(4294967295, 10), 5);
    55 assertEq(test2(23, 0), NaN);
    57 function test3()
    58 {
    59     "use asm";
    60     function f(x, y)
    61     {
    62         x = x|0;
    63         y = y|0;
    64         var t = 0;
    65         t = (x % y) > -2;
    66         return t|0;
    67     }
    68     return f;
    69 }
    70 assertEq(test3()(4294967290, 4294967295), 1);
    71 assertEq(test3()(4294967290, 4294967295), 1);
    73 function test4()
    74 {
    75     "use asm";
    76     function f(x, y)
    77     {
    78         x = x|0;
    79         y = y|0;
    80         var t = 0;
    81         t = ((x>>>0) % (y>>>0)) > -2;
    82         return t|0;
    83     }
    84     return f;
    85 }
    86 assertEq(test4()(4294967290, 4294967295), 1);
    87 assertEq(test4()(4294967290, 4294967295), 1);
    89 function test5()
    90 {
    91     "use asm";
    92     function f(x, y)
    93     {
    94         x = x|0;
    95         y = y|0;
    96         var t = 0;
    97         t = ((x>>>0) % (y>>>0)) * 1.01;
    98         return +t;
    99     }
   100     return f;
   101 }
   102 assertEq(test5()(4294967290, 4294967295), 4337916962.9);
   103 assertEq(test5()(4294967290, 4294967295), 4337916962.9);
   105 function test6()
   106 {
   107     "use asm";
   108     function f(x, y)
   109     {
   110         x = x|0;
   111         y = y|0;
   112         return ((x>>>1) % (y>>>1))|0;
   113     }
   114     return f;
   115 }
   116 assertEq(test6()(23847, 7), 1);
   117 assertEq(test6()(23848, 7), 2);
   119 function test7()
   120 {
   121     "use asm";
   122     function f(x)
   123     {
   124         x = x|0;
   125         return ((x>>>0) / 8)|0;
   126     }
   127     return f;
   128 }
   129 assertEq(test7()(23847, 7), 2980);
   130 assertEq(test7()(23848, 7), 2981);
   132 function test8()
   133 {
   134     "use asm";
   135     function f(i,j)
   136     {
   137         i=i|0;j=j|0;
   138         return ((i>>>0)/(j>>>0))|0;
   139     }
   140     return f;
   141 }
   142 assertEq(test8()(2147483647, 0), 0);
   143 assertEq(test8()(2147483646, 0), 0);

mercurial