Fix JS DCE removing reachable functions
This commit is contained in:
@@ -542,13 +542,14 @@ abstract class BasicBoxTest(
|
||||
val testFunctionFqn = testModuleName + (if (testPackage.isNullOrEmpty()) "" else ".$testPackage") + ".$testFunction"
|
||||
val additionalReachableNodes = setOf(
|
||||
testFunctionFqn, "kotlin.kotlin.io.BufferedOutput", "kotlin.kotlin.io.output.flush",
|
||||
"kotlin.kotlin.io.output.buffer", "kotlin-test.kotlin.test.overrideAsserter_wbnzx$"
|
||||
"kotlin.kotlin.io.output.buffer", "kotlin-test.kotlin.test.overrideAsserter_wbnzx$",
|
||||
"kotlin-test.kotlin.test.DefaultAsserter"
|
||||
)
|
||||
val allFilesToMinify = filesToMinify.values + kotlinJsInputFile + kotlinTestJsInputFile
|
||||
val dceResult = DeadCodeElimination.run(allFilesToMinify, additionalReachableNodes) { _, _ -> }
|
||||
|
||||
val reachableNodes = dceResult.reachableNodes
|
||||
minificationThresholdChecker(reachableNodes.size)
|
||||
minificationThresholdChecker(reachableNodes.count { it.reachable })
|
||||
|
||||
val runList = mutableListOf<String>()
|
||||
runList += kotlinJsLibOutput
|
||||
|
||||
@@ -42,6 +42,12 @@ public class DceTestGenerated extends AbstractDceTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("arrayAccess.js")
|
||||
public void testArrayAccess() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dce/arrayAccess.js");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("commonjs.js")
|
||||
public void testCommonjs() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dce/commonjs.js");
|
||||
@@ -53,4 +59,16 @@ public class DceTestGenerated extends AbstractDceTest {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dce/cycle.js");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("localVarAndFunction.js")
|
||||
public void testLocalVarAndFunction() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dce/localVarAndFunction.js");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("typeOf.js")
|
||||
public void testTypeOf() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dce/typeOf.js");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user