tor-browser

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

class-fields.js (1234B)


      1 // |reftest| skip-if(!xulRuntime.shell)
      2 // Classes
      3 function testClassFields() {
      4    function constructor_(name) {
      5        let body = blockStmt([]);
      6        let method = funExpr(ident(name), [], body);
      7        return classMethod(ident("constructor"), method, "method", false);
      8    }
      9 
     10    assertExpr("(class C { x = 2; })", classExpr(ident("C"), null, [classField(ident("x"), lit(2))]));
     11    assertExpr("(class C { x = x; })", classExpr(ident("C"), null, [classField(ident("x"), ident("x"))]))
     12    assertExpr("(class C { x; })", classExpr(ident("C"), null, [classField(ident("x"), null)]))
     13    assertExpr("(class C { x; y = 2; })", classExpr(ident("C"), null, [classField(ident("x"), null), classField(ident("y"), lit(2))]))
     14    assertExpr("(class C { x = 2; constructor(){} })", classExpr(ident("C"), null, [classField(ident("x"), lit(2)), constructor_("C")]))
     15 
     16 
     17    assertExpr("(class C { #x = 2; })", classExpr(ident("C"), null, [classField(ident("#x"), lit(2))]));
     18    assertExpr("(class C { #x; })", classExpr(ident("C"), null, [classField(ident("#x"), null)]))
     19    assertExpr("(class C { #x; #y = 2; })", classExpr(ident("C"), null, [classField(ident("#x"), null), classField(ident("#y"), lit(2))]))
     20 
     21 }
     22 
     23 runtest(testClassFields);