[CLI] Extract :compiler:cli-js from :compiler:cli
diff --git a/compiler/cli/build.gradle.kts b/compiler/cli/build.gradle.kts
index e6f13c1..5c52b50 100644
--- a/compiler/cli/build.gradle.kts
+++ b/compiler/cli/build.gradle.kts
@@ -14,14 +14,10 @@
     compile(project(":compiler:backend"))
     compile(project(":compiler:backend.jvm"))
     compile(project(":compiler:ir.backend.common"))
-    compile(project(":compiler:ir.serialization.js"))
-    compile(project(":compiler:backend.js"))
     compile(project(":compiler:light-classes"))
     compile(project(":compiler:serialization"))
     compile(project(":compiler:plugin-api"))
     compile(project(":js:js.translator"))
-    compile(project(":js:js.serializer"))
-    compile(project(":js:js.dce"))
     compile(commonDep("org.fusesource.jansi", "jansi"))
     compile(commonDep("org.jline", "jline"))
     compile(files("${System.getProperty("java.home")}/../lib/tools.jar"))
diff --git a/compiler/cli/cli-js/build.gradle.kts b/compiler/cli/cli-js/build.gradle.kts
new file mode 100644
index 0000000..d7b6ae2
--- /dev/null
+++ b/compiler/cli/cli-js/build.gradle.kts
@@ -0,0 +1,37 @@
+plugins {
+    kotlin("jvm")
+    id("jps-compatible")
+}
+
+jvmTarget = "1.8"
+
+dependencies {
+    compile(project(":compiler:util"))
+    compile(project(":compiler:cli-common"))
+    compile(project(":compiler:cli"))
+    compile(project(":compiler:frontend"))
+    compile(project(":compiler:backend-common"))
+    compile(project(":compiler:backend"))
+    compile(project(":compiler:ir.backend.common"))
+    compile(project(":compiler:ir.serialization.js"))
+    compile(project(":compiler:backend.js"))
+    compile(project(":js:js.translator"))
+    compile(project(":js:js.serializer"))
+    compile(project(":js:js.dce"))
+
+    testCompile(project(":compiler:backend"))
+    testCompile(project(":compiler:cli"))
+    testCompile(projectTests(":compiler:tests-common"))
+    testCompile(commonDep("junit:junit"))
+}
+
+sourceSets {
+    "main" { projectDefault() }
+    "test" { projectDefault() }
+}
+
+testsJar {}
+
+projectTest {
+    workingDir = rootDir
+}
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java
similarity index 100%
rename from compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java
rename to compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt
similarity index 100%
rename from compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt
rename to compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/js/dce/K2JSDce.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/dce/K2JSDce.kt
similarity index 100%
rename from compiler/cli/src/org/jetbrains/kotlin/cli/js/dce/K2JSDce.kt
rename to compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/dce/K2JSDce.kt
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/js/internal/JSStdlibLinker.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/internal/JSStdlibLinker.kt
similarity index 100%
rename from compiler/cli/src/org/jetbrains/kotlin/cli/js/internal/JSStdlibLinker.kt
rename to compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/internal/JSStdlibLinker.kt
diff --git a/compiler/daemon/build.gradle.kts b/compiler/daemon/build.gradle.kts
index e450b12..23e1352 100644
--- a/compiler/daemon/build.gradle.kts
+++ b/compiler/daemon/build.gradle.kts
@@ -6,6 +6,7 @@
 
 dependencies {
     compile(project(":compiler:cli"))
+    compile(project(":compiler:cli-js"))
     compile(project(":compiler:daemon-common"))
     compile(project(":compiler:incremental-compilation-impl"))
     compile(project(":kotlin-build-common"))
diff --git a/compiler/incremental-compilation-impl/build.gradle.kts b/compiler/incremental-compilation-impl/build.gradle.kts
index aa14d1c..e35840f 100644
--- a/compiler/incremental-compilation-impl/build.gradle.kts
+++ b/compiler/incremental-compilation-impl/build.gradle.kts
@@ -12,6 +12,7 @@
     compile(project(":compiler:frontend"))
     compile(project(":compiler:frontend.java"))
     compile(project(":compiler:cli"))
+    compile(project(":compiler:cli-js"))
     compile(project(":kotlin-build-common"))
     compile(project(":compiler:daemon-common"))
     compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
diff --git a/compiler/ir/serialization.js/build.gradle.kts b/compiler/ir/serialization.js/build.gradle.kts
index 981cfc2..33d0ac8 100644
--- a/compiler/ir/serialization.js/build.gradle.kts
+++ b/compiler/ir/serialization.js/build.gradle.kts
@@ -10,10 +10,9 @@
 
     compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
 
-    testCompile(projectTests(":compiler:tests-common"))
-    testCompileOnly(project(":compiler:frontend"))
-    testCompileOnly(project(":compiler:cli"))
-    testCompileOnly(project(":compiler:util"))
+    testCompile(project(":compiler:frontend"))
+    testCompile(project(":compiler:cli"))
+    testCompile(project(":compiler:util"))
 }
 
 sourceSets {
diff --git a/compiler/tests-common/build.gradle.kts b/compiler/tests-common/build.gradle.kts
index 5961a921..5e1cc10 100644
--- a/compiler/tests-common/build.gradle.kts
+++ b/compiler/tests-common/build.gradle.kts
@@ -22,6 +22,7 @@
     testCompile(project(":compiler:util"))
     testCompile(project(":compiler:cli-common"))
     testCompile(project(":compiler:cli"))
+    testCompile(project(":compiler:cli-js"))
     testCompile(project(":compiler:light-classes"))
     testCompile(project(":compiler:serialization"))
     testCompile(project(":kotlin-preloader"))