tor-browser

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

spread-call-setcall.js (680B)


      1 load(libdir + "asserts.js");
      2 
      3 function g() {
      4 }
      5 
      6 let a = {
      7  g: function() {
      8  }
      9 };
     10 
     11 function check(expr) {
     12  assertThrowsInstanceOf(Function(expr), ReferenceError);
     13 }
     14 function checkDestructuring(expr) {
     15  assertThrowsInstanceOf(() => Function(expr), SyntaxError);
     16 }
     17 
     18 check("g(...[]) = 1");
     19 check("a.g(...[]) = 1");
     20 check("eval(...['1']) = 1");
     21 check("g(...[]) ++");
     22 check("a.g(...[]) ++");
     23 check("eval(...['1']) ++");
     24 checkDestructuring("[g(...[])] = []");
     25 checkDestructuring("[a.g(...[])] = []");
     26 checkDestructuring("[eval(...['1'])] = []");
     27 checkDestructuring("({y: g(...[])} = 1)");
     28 checkDestructuring("({y: a.g(...[])} = 1)");
     29 checkDestructuring("({y: eval(...['1'])} = 1)");