tor-browser

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

destructuring-assignment.js (1262B)


      1 // |reftest| skip-if(!xulRuntime.shell)
      2 function test() {
      3 
      4 // destructuring assignment
      5 
      6 function testAssignmentCombinations(makePattSrc, makePattPatt) {
      7    var pattSrcs = makePatternCombinations(n => ("x" + n + " = 0"), makePattSrc);
      8    var pattPatts = makePatternCombinations(n => (aExpr("=", ident("x" + n), lit(0))), makePattPatt);
      9 
     10    for (var i = 0; i < pattSrcs.length; i++) {
     11        var src = pattSrcs[i].join(",");
     12        var patt = pattPatts[i].length === 1 ? pattPatts[i][0] : seqExpr(pattPatts[i]);
     13 
     14        // assignment expression statement
     15        assertExpr("(" + src + ")", patt);
     16 
     17        // for-loop head assignment
     18        assertStmt("for (" + src + "; foo; bar);",
     19                   forStmt(patt, ident("foo"), ident("bar"), emptyStmt));
     20    }
     21 }
     22 
     23 testAssignmentCombinations(n => ("{a" + n + ":x" + n + "," + "b" + n + ":y" + n + "," + "c" + n + ":z" + n + "} = 0"),
     24                           n => (aExpr("=",
     25                                       objPatt([assignProp("a" + n, ident("x" + n)),
     26                                                assignProp("b" + n, ident("y" + n)),
     27                                                assignProp("c" + n, ident("z" + n))]),
     28                                       lit(0))));
     29 
     30 }
     31 
     32 runtest(test);