diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt index de71f7bebdb..a4214821582 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt @@ -190,6 +190,8 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : it.dependsOn(kotlinTask) + it.kotlinFilesOnly = true + it.classpath = project.configurations.getByName(compilation.compileDependencyConfigurationName) it.destinationDir = it.dceOptions.outputDirectory?.let { File(it) } ?: compilation.npmProject.dir.resolve(DCE_DIR) 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 545e9d3d007..79afad61e6c 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 @@ -50,6 +50,10 @@ open class KotlinJsDce : AbstractKotlinCompileTool(), KotlinJs private val dceOptionsImpl = KotlinJsDceOptionsImpl() + // DCE can be broken in case of non-kotlin js files or modules + @Internal + var kotlinFilesOnly: Boolean = false + @get:Internal override val dceOptions: KotlinJsDceOptions get() = dceOptionsImpl @@ -68,7 +72,7 @@ open class KotlinJsDce : AbstractKotlinCompileTool(), KotlinJs @TaskAction fun performDce() { val inputFiles = (listOf(source) + classpath - .filter { isDceCandidate(it) } + .filter { !kotlinFilesOnly || isDceCandidate(it) } .map { project.fileTree(it) }) .reduce(FileTree::plus) .files.map { it.path }