tor-browser

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

redefine-callee.js (731B)


      1 function test() {
      2  let count = 0;
      3  for (var i = 0; i < 30; i++) {
      4    assertEq(arguments.callee, i > 20 ? 3 : test);
      5    if (i === 20) {
      6      Object.defineProperty(arguments, "callee", {get: function() { count++; return 3; }});
      7    }
      8  }
      9  assertEq(count, 9);
     10 }
     11 test();
     12 
     13 function testUnusedResult() {
     14  let count = 0;
     15  for (var i = 0; i < 30; i++) {
     16    arguments.callee;
     17    if (i === 20) {
     18      Object.defineProperty(arguments, "callee", {get: function() { count++; return 3; }});
     19    }
     20  }
     21  assertEq(count, 9);
     22 }
     23 testUnusedResult();
     24 
     25 function testSetter() {
     26  Object.defineProperty(arguments, "callee", {set: function() {}});
     27  for (var i = 0; i < 15; i++) {
     28    assertEq(arguments.callee, undefined);
     29  }
     30 }
     31 testSetter();