tor-browser

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

function-name.js (1308B)


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