Skip to content

Commit b854bb5

Browse files
Closure Teamcopybara-github
authored andcommitted
Consider public field initializers when detecting unused code.
PiperOrigin-RevId: 789425087
1 parent 43fc6f2 commit b854bb5

File tree

2 files changed

+2
-12
lines changed

2 files changed

+2
-12
lines changed

src/com/google/javascript/jscomp/RemoveUnusedCode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1379,7 +1379,7 @@ private void traverseClassMembers(Node node, Scope scope) {
13791379
.buildClassOrPrototypeNamedProperty(member));
13801380
}
13811381
// TODO: b/354704593 - remove the entire class when it is not referenced
1382-
if (member.isStaticMember() && member.hasChildren()) {
1382+
if (member.hasChildren()) {
13831383
traverseChildren(member, scope);
13841384
}
13851385
break;

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

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,7 +1078,7 @@ public void testClassReferencedInFieldInitializer() {
10781078
this.keepLocals = false;
10791079
this.keepGlobals = false;
10801080

1081-
test(
1081+
testSame(
10821082
"""
10831083
class One {
10841084
field = 1;
@@ -1090,16 +1090,6 @@ class Two {
10901090
alert(two);
10911091
alert(two.field);
10921092
alert(two.field.field);
1093-
""",
1094-
"""
1095-
// Note: class One is errantly removed here.
1096-
class Two {
1097-
field = new One();
1098-
}
1099-
const two = new Two();
1100-
alert(two);
1101-
alert(two.field);
1102-
alert(two.field.field);
11031093
""");
11041094
}
11051095
}

0 commit comments

Comments
 (0)