From 51f4dc5af03352bb0d0e63a8562879a8aafc68ac Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 17 Oct 2019 17:19:59 +0300 Subject: [PATCH] [Gradle, JS] Filter DCE candidates We should process DCE only for: - JARs - JSs with neighbors meta.js --- .../jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt index 0153ee214fa..545e9d3d007 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt @@ -67,7 +67,9 @@ open class KotlinJsDce : AbstractKotlinCompileTool(), KotlinJs @TaskAction fun performDce() { - val inputFiles = (listOf(source) + classpath.map { project.fileTree(it) }) + val inputFiles = (listOf(source) + classpath + .filter { isDceCandidate(it) } + .map { project.fileTree(it) }) .reduce(FileTree::plus) .files.map { it.path } @@ -83,4 +85,16 @@ open class KotlinJsDce : AbstractKotlinCompileTool(), KotlinJs ) throwGradleExceptionIfError(exitCode) } + + private fun isDceCandidate(file: File): Boolean { + if (file.extension == "jar") { + return true + } + + if (file.extension != "js" || file.name.endsWith(".meta.js")) { + return false + } + + return File("${file.nameWithoutExtension}.meta.js").exists() + } } \ No newline at end of file