tor-browser

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

funcall.js (930B)


      1 function test1() {
      2    var f = function() { return 1; };
      3 
      4    for (var i=0; i<25; i++) {
      5 f.call();
      6 if (i > 20)
      7     f = Math.abs;
      8   }
      9 }
     10 test1();
     11 
     12 var origCall = Function.prototype.call;
     13 
     14 function test2() {
     15    var f = function() { return 1; };
     16    var c = 0;
     17    for (var i=0; i<25; i++) {
     18 f.call();
     19 if (i > 20)
     20     Function.prototype.call = function() { c++; };
     21    }
     22    assertEq(c, 3);
     23 }
     24 test2();
     25 Function.prototype.call = origCall;
     26 
     27 function test3() {
     28    var f = function() { return 1; };
     29    for (var i=0; i<25; i++) {
     30 f.call();
     31 if (i > 20)
     32     Function.prototype.call = undefined;
     33    }
     34 }
     35 try {
     36    test3();
     37    assertEq(0, 1);
     38 } catch(e) {}
     39 
     40 Function.prototype.call = origCall;
     41 
     42 function test4() {
     43    var f = function(a, b, c) {
     44 assertEq(arguments.length, 1);
     45 assertEq(a, 1);
     46 assertEq(b, undefined);
     47 assertEq(c, undefined);
     48 return 1;
     49    };
     50    for (var i=0; i<25; i++) {
     51 f.call(null, 1);
     52    }
     53 }
     54 test4();