drop unused extends properly (#5461)

This commit is contained in:
Alex Lam S.L
2022-05-22 20:53:32 +01:00
committed by GitHub
parent 59edda6ca5
commit c2ca7b7659
3 changed files with 126 additions and 10 deletions

View File

@@ -341,7 +341,7 @@ drop_extends: {
node_version: ">=4"
}
keep_extends: {
keep_extends_1: {
options = {
toplevel: true,
unused: true,
@@ -366,6 +366,43 @@ keep_extends: {
node_version: ">=4"
}
keep_extends_2: {
options = {
side_effects: true,
}
input: {
"use strict";
(class extends Function {});
console.log("PASS");
}
expect: {
"use strict";
(class extends Function {});
console.log("PASS");
}
expect_stdout: "PASS"
node_version: ">=4"
}
keep_extends_3: {
options = {
toplevel: true,
unused: true,
}
input: {
"use strict";
class A extends Function {}
console.log("PASS");
}
expect: {
"use strict";
(class extends Function {});
console.log("PASS");
}
expect_stdout: "PASS"
node_version: ">=4"
}
drop_name: {
options = {
unused: true,
@@ -670,6 +707,58 @@ single_use_7: {
node_version: ">=4"
}
single_use_extends: {
options = {
reduce_vars: true,
toplevel: true,
unused: true,
}
input: {
"use strict";
class A extends class B {
f() {
return "PASS";
}
} {}
console.log(new A().f());
}
expect: {
"use strict";
console.log(new class extends class {
f() {
return "PASS";
}
} {}().f());
}
expect_stdout: "PASS"
node_version: ">=4"
}
single_use_extends_non_strict: {
options = {
reduce_vars: true,
toplevel: true,
unused: true,
}
input: {
class A extends class B {
f() {
return "PASS";
}
} {}
console.log(new A().f());
}
expect: {
console.log(new class extends class {
f() {
return "PASS";
}
} {}().f());
}
expect_stdout: "PASS"
node_version: ">=6"
}
collapse_non_strict: {
options = {
collapse_vars: true,