js/src/jit-test/tests/ion/bug818023.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.prototype.callX = Function.prototype.call;
     2 var x;
     3 function f() {
     4     x = f.caller;
     5     return x;
     6 }
     8 function g() {
     9     return f.callX(null);
    10 }
    12 function h1() {
    13     // native
    14     return ([0].map(f))[0];
    15 }
    17 function h2() {
    18     // self-hosted
    19     x = null;
    20     [0].forEach(f);
    21     return x;
    22 }
    24 function k() {
    25     x = null;
    26     [0, 1].sort(f);
    27     return x;
    28 }
    30 function l() {
    31     return f();
    32 }
    34 assertEq(g(), g);
    35 assertEq(h1(), h1);
    36 assertEq(h2(), h2);
    37 assertEq(k(), k);
    38 assertEq(l(), l);
    40 var baz;
    41 var foo = {callX: function() { return "m"; }};
    42 function bar() {
    43     return baz.caller;
    44 }
    45 function m() {
    46     return baz.callX(null);
    47 }
    49 baz = foo;
    50 assertEq(m(), "m");
    51 baz = bar;
    52 assertEq(m(), m);
    53 assertEq(m(), m);

mercurial