tor-browser

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

bug818023.js (717B)


      1 Function.prototype.callX = Function.prototype.call;
      2 var x;
      3 function f() {
      4    x = f.caller;
      5    return x;
      6 }
      7 
      8 function g() {
      9    return f.callX(null);
     10 }
     11 
     12 function h1() {
     13    // native
     14    return ([0].map(f))[0];
     15 }
     16 
     17 function h2() {
     18    // self-hosted
     19    x = null;
     20    [0].forEach(f);
     21    return x;
     22 }
     23 
     24 function k() {
     25    x = null;
     26    [0, 1].sort(f);
     27    return x;
     28 }
     29 
     30 function l() {
     31    return f();
     32 }
     33 
     34 assertEq(g(), g);
     35 assertEq(h1(), h1);
     36 assertEq(h2(), h2);
     37 assertEq(k(), k);
     38 assertEq(l(), l);
     39 
     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 }
     48 
     49 baz = foo;
     50 assertEq(m(), "m");
     51 baz = bar;
     52 assertEq(m(), m);
     53 assertEq(m(), m);