tor-browser

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

function-length.js (1035B)


      1 function interpreted() {
      2    for (var i = 0; i < 50; i++) {
      3        var f = function () {};
      4        assertEq(f.length, 0);
      5    }
      6 
      7    for (var i = 0; i < 50; i++) {
      8        var f = function (a, b) {};
      9        assertEq(f.length, 2);
     10    }
     11 }
     12 
     13 function bound() {
     14    for (var i = 0; i < 50; i++) {
     15        var f = (function () {}).bind({});
     16        assertEq(f.length, 0);
     17    }
     18 
     19    for (var i = 0; i < 50; i++) {
     20        var f = (function (a, b) {}).bind({});
     21        assertEq(f.length, 2);
     22    }
     23 }
     24 
     25 function native() {
     26    for (var i = 0; i < 50; i++) {
     27        // Use the interpreted function for getting the IC generated in the first place.
     28        var f = function (a) {};
     29 
     30        if (i == 15) {
     31            f = Math.sin;
     32        } else if (i == 20) {
     33            f = Math.cos;
     34        } else if (i == 25) {
     35            f = Math.ceil;
     36        } else if (i == 30) {
     37            f = Math.tan;
     38        } else if (i == 35) {
     39            f = Math.tanh;
     40        }
     41 
     42        assertEq(f.length, 1);
     43    }
     44 }
     45 
     46 interpreted();
     47 bound();
     48 native();