Skip to content

Commit 631f8c1

Browse files
Closure Teamcopybara-github
authored andcommitted
Add a test case to RewriteMembersTest to make it clearer that the Anonymous classes with ES2022 features error does not get thrown.
RewriteClassMembers now runs after Es6ExtractClasses, so anonymous classes are given a name and the error shouldn't occur anymore. PiperOrigin-RevId: 552543645
1 parent b5f63df commit 631f8c1

File tree

1 file changed

+45
-38
lines changed

1 file changed

+45
-38
lines changed

test/com/google/javascript/jscomp/RewriteClassMembersTest.java

Lines changed: 45 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,21 +1086,6 @@ public void testClassExpressionsStaticBlocks() {
10861086
"}",
10871087
"JSCompiler_temp_const$jscomp$1(JSCompiler_temp_const$jscomp$0.c =",
10881088
"testcode$classdecl$var0);"));
1089-
1090-
test(
1091-
lines(
1092-
"foo(class {", //
1093-
" static {",
1094-
" let x = 1",
1095-
" }",
1096-
"})"),
1097-
lines(
1098-
"var JSCompiler_temp_const$jscomp$0 = foo;",
1099-
"const testcode$classdecl$var0 = class {};",
1100-
"{",
1101-
" let x = 1;",
1102-
"}",
1103-
"JSCompiler_temp_const$jscomp$0(testcode$classdecl$var0);"));
11041089
}
11051090

11061091
@Test
@@ -1205,16 +1190,6 @@ public void testNonClassDeclarationsStaticNoncomputedFields() {
12051190
"testcode$classdecl$var0.x = testcode$classdecl$var0.y;",
12061191
"foo(testcode$classdecl$var0);"));
12071192

1208-
test(
1209-
lines(
1210-
"foo(class {", //
1211-
" static x = 1;",
1212-
"})"),
1213-
lines(
1214-
"const testcode$classdecl$var0 = class {};",
1215-
"testcode$classdecl$var0.x = 1;",
1216-
"foo(testcode$classdecl$var0);"));
1217-
12181193
test(
12191194
lines(
12201195
"foo(class C {", //
@@ -1286,19 +1261,6 @@ public void testNonClassDeclarationsInstanceNoncomputedFields() {
12861261
"};",
12871262
"A[1] = testcode$classdecl$var0;"));
12881263

1289-
test(
1290-
lines(
1291-
"foo(class {", //
1292-
" y = 2;",
1293-
"})"),
1294-
lines(
1295-
"const testcode$classdecl$var0 = class {",
1296-
" constructor() {",
1297-
" this.y = 2;",
1298-
" }",
1299-
"};",
1300-
"foo(testcode$classdecl$var0);"));
1301-
13021264
test(
13031265
lines(
13041266
"let c = class C {", //
@@ -1555,4 +1517,49 @@ public void testNonClassDeclarationsFunctionArgs() {
15551517
" return testcode$classdecl$var0;",
15561518
"})()) {}"));
15571519
}
1520+
1521+
@Test
1522+
public void testAnonymousClassExpression() {
1523+
test(
1524+
lines(
1525+
"function foo() {", //
1526+
" return class {",
1527+
" y;",
1528+
" static x;",
1529+
" }",
1530+
"}"),
1531+
lines(
1532+
"function foo() {",
1533+
" const testcode$classdecl$var0 = class {",
1534+
" constructor() {",
1535+
" this.y;",
1536+
" }",
1537+
" };",
1538+
" testcode$classdecl$var0.x;",
1539+
" return testcode$classdecl$var0;",
1540+
"}"));
1541+
1542+
test(
1543+
lines(
1544+
"foo(class {", //
1545+
" y = 2;",
1546+
"})"),
1547+
lines(
1548+
"const testcode$classdecl$var0 = class {",
1549+
" constructor() {",
1550+
" this.y = 2;",
1551+
" }",
1552+
"};",
1553+
"foo(testcode$classdecl$var0);"));
1554+
1555+
test(
1556+
lines(
1557+
"foo(class {", //
1558+
" static x = 1;",
1559+
"})"),
1560+
lines(
1561+
"const testcode$classdecl$var0 = class {};",
1562+
"testcode$classdecl$var0.x = 1;",
1563+
"foo(testcode$classdecl$var0);"));
1564+
}
15581565
}

0 commit comments

Comments
 (0)