tor-browser

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

bug1448582-5.js (2801B)


      1 // Repeat 1448582-{1,3,4}.js for classes.
      2 
      3 (function(index) {
      4    // Does not assert.
      5    var c = class { constructor(){} };
      6 
      7    if (index === 0) {
      8        (function self() {
      9            self.caller(1);
     10        })();
     11    }
     12 })(0);
     13 
     14 (function(index) {
     15    var c = class { constructor(){} };
     16 
     17    // Accessing |.name| sets the resolved-name flag, which should not be
     18    // copied over to the function clone.
     19    assertEq(c.name, "c");
     20 
     21    if (index === 0) {
     22        (function self() {
     23            self.caller(1);
     24        })();
     25    }
     26 })(0);
     27 
     28 (function(index) {
     29    var c = class { constructor(a){} };
     30 
     31    // Accessing |.length| sets the resolved-length flag, which should not be
     32    // copied over to the function clone.
     33    assertEq(c.length, 1);
     34 
     35    if (index === 0) {
     36        (function self() {
     37            self.caller(1);
     38        })();
     39    }
     40 })(0);
     41 
     42 
     43 // Repeat 1448582-{3,4}.js for generator functions.
     44 
     45 (function(index) {
     46    function* f() {}
     47 
     48    // Accessing |.name| sets the resolved-name flag, which should not be
     49    // copied over to the function clone.
     50    assertEq(f.name, "f");
     51 
     52    if (index === 0) {
     53        (function self() {
     54            self.caller(1);
     55        })();
     56    }
     57 })(0);
     58 
     59 (function(index) {
     60    function* f(a) {}
     61 
     62    // Accessing |.length| sets the resolved-length flag, which should not be
     63    // copied over to the function clone.
     64    assertEq(f.length, 1);
     65 
     66    if (index === 0) {
     67        (function self() {
     68            self.caller(1);
     69        })();
     70    }
     71 })(0);
     72 
     73 
     74 // Repeat 1448582-{3,4}.js for async functions.
     75 
     76 (function(index) {
     77    async function f() {}
     78 
     79    // Accessing |.name| sets the resolved-name flag, which should not be
     80    // copied over to the function clone.
     81    assertEq(f.name, "f");
     82 
     83    if (index === 0) {
     84        (function self() {
     85            self.caller(1);
     86        })();
     87    }
     88 })(0);
     89 
     90 (function(index) {
     91    async function f(a) {}
     92 
     93    // Accessing |.length| sets the resolved-length flag, which should not be
     94    // copied over to the function clone.
     95    assertEq(f.length, 1);
     96 
     97    if (index === 0) {
     98        (function self() {
     99            self.caller(1);
    100        })();
    101    }
    102 })(0);
    103 
    104 
    105 // Repeat 1448582-{3,4}.js for async generator functions.
    106 
    107 (function(index) {
    108    async function* f() {}
    109 
    110    // Accessing |.name| sets the resolved-name flag, which should not be
    111    // copied over to the function clone.
    112    assertEq(f.name, "f");
    113 
    114    if (index === 0) {
    115        (function self() {
    116            self.caller(1);
    117        })();
    118    }
    119 })(0);
    120 
    121 (function(index) {
    122    async function* f(a) {}
    123 
    124    // Accessing |.length| sets the resolved-length flag, which should not be
    125    // copied over to the function clone.
    126    assertEq(f.length, 1);
    127 
    128    if (index === 0) {
    129        (function self() {
    130            self.caller(1);
    131        })();
    132    }
    133 })(0);