js/src/jit-test/tests/ion/bug809021.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 // nactuals > nformals
     2 function testOverflow() {
     3     var called = false;
     4     function f(a) {
     5         assertEq(a, 173);
     6         assertEq(arguments.length, 2);
     7         assertEq(arguments[0], a);
     8         assertEq(arguments[1], a);
     9         called = true;
    10     }
    12     for (var i=0; i<10; i++)
    13         [173, 173, 173].sort(f);
    14     assertEq(called, true);
    15 }
    16 testOverflow();
    18 // nactuals == nformals
    19 function testEqual() {
    20     var called = false;
    21     function f(a, b) {
    22         assertEq(a, 173);
    23         assertEq(arguments.length, 2);
    24         assertEq(arguments[0], a);
    25         assertEq(arguments[1], b);
    26         called = true;
    27     }
    29     for (var i=0; i<10; i++)
    30         [173, 173, 173].sort(f);
    31     assertEq(called, true);
    32 }
    33 testEqual();
    35 // nactuals < nformals
    36 function testUnderflow() {
    37     var called = false;
    38     function f(a, b, c) {
    39         assertEq(a, 173);
    40         assertEq(c, undefined);
    41         assertEq(arguments.length, 2);
    42         assertEq(arguments[0], a);
    43         assertEq(arguments[1], b);
    44         called = true;
    45     }
    47     for (var i=0; i<10; i++)
    48         [173, 173, 173].sort(f);
    49     assertEq(called, true);
    50 }
    51 testUnderflow();
    53 function testUnderflowMany() {
    54     var called = 0;
    55     function f(a, b, c, d, e, f, g, h) {
    56         assertEq(a, 173);
    57         assertEq(arguments.length, 3);
    58         assertEq(arguments[0], a);
    59         assertEq(arguments[1] < 3, true);
    60         assertEq(c.length, 3);
    61         assertEq(d, undefined);
    62         assertEq(e, undefined);
    63         assertEq(f, undefined);
    64         assertEq(g, undefined);
    65         assertEq(h, undefined);
    66         called += 1;
    67     }
    69     for (var i=0; i<10; i++)
    70         [173, 173, 173].map(f);
    71     assertEq(called, 30);
    72 }
    73 testUnderflowMany();

mercurial