diff --git a/.idea/artifacts/KotlinPlugin.xml b/.idea/artifacts/KotlinPlugin.xml
index 9d9f0fe34ac..351c60e12d4 100644
--- a/.idea/artifacts/KotlinPlugin.xml
+++ b/.idea/artifacts/KotlinPlugin.xml
@@ -16,6 +16,7 @@
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 593516f76ef..80d186d81dd 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -31,6 +31,7 @@
+
diff --git a/build.xml b/build.xml
index 5ded5430511..2bce5d60314 100644
--- a/build.xml
+++ b/build.xml
@@ -77,6 +77,7 @@
+
@@ -98,6 +99,7 @@
+
@@ -161,6 +163,7 @@
+
diff --git a/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.kt b/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.kt
index e6fbeac9267..e01cf9da0b1 100644
--- a/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.kt
+++ b/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.kt
@@ -83,7 +83,7 @@ private fun generatorForTopDownAnalyzerBasic() =
}
private fun generatorForTopDownAnalyzerForJs() =
- generator("js/js.translator/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJs") {
+ generator("js/js.frontend/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJs") {
commonForTopDownAnalyzer()
}
diff --git a/js/js.frontend/js.frontend.iml b/js/js.frontend/js.frontend.iml
new file mode 100644
index 00000000000..1a044eec4b2
--- /dev/null
+++ b/js/js.frontend/js.frontend.iml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java b/js/js.frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java
similarity index 100%
rename from js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java
rename to js/js.frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java
diff --git a/js/js.translator/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java b/js/js.frontend/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java
similarity index 100%
rename from js/js.translator/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java
rename to js/js.frontend/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java
diff --git a/js/js.translator/src/org/jetbrains/k2js/config/Config.java b/js/js.frontend/src/org/jetbrains/k2js/config/Config.java
similarity index 96%
rename from js/js.translator/src/org/jetbrains/k2js/config/Config.java
rename to js/js.frontend/src/org/jetbrains/k2js/config/Config.java
index 6eb88d115a2..a3fc8df4948 100644
--- a/js/js.translator/src/org/jetbrains/k2js/config/Config.java
+++ b/js/js.frontend/src/org/jetbrains/k2js/config/Config.java
@@ -23,8 +23,6 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingContext;
-import org.jetbrains.k2js.translate.test.JSTester;
-import org.jetbrains.k2js.translate.test.QUnitTester;
import java.util.Arrays;
import java.util.Collection;
@@ -222,9 +220,7 @@ public abstract class Config {
return allFiles;
}
- //TODO: should be null by default I suppose but we can't communicate it to K2JSCompiler atm
- @Nullable
- public JSTester getTester() {
- return new QUnitTester();
+ public boolean isTestConfig() {
+ return false;
}
}
diff --git a/js/js.translator/src/org/jetbrains/k2js/config/EcmaVersion.java b/js/js.frontend/src/org/jetbrains/k2js/config/EcmaVersion.java
similarity index 100%
rename from js/js.translator/src/org/jetbrains/k2js/config/EcmaVersion.java
rename to js/js.frontend/src/org/jetbrains/k2js/config/EcmaVersion.java
diff --git a/js/js.translator/src/org/jetbrains/k2js/config/LibrarySourcesConfig.java b/js/js.frontend/src/org/jetbrains/k2js/config/LibrarySourcesConfig.java
similarity index 100%
rename from js/js.translator/src/org/jetbrains/k2js/config/LibrarySourcesConfig.java
rename to js/js.frontend/src/org/jetbrains/k2js/config/LibrarySourcesConfig.java
diff --git a/js/js.tests/test/org/jetbrains/k2js/test/config/TestConfigWithUnitTests.java b/js/js.tests/test/org/jetbrains/k2js/test/config/TestConfigWithUnitTests.java
index a25105a2e76..498c6a1c399 100644
--- a/js/js.tests/test/org/jetbrains/k2js/test/config/TestConfigWithUnitTests.java
+++ b/js/js.tests/test/org/jetbrains/k2js/test/config/TestConfigWithUnitTests.java
@@ -22,8 +22,6 @@ import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.k2js.config.EcmaVersion;
-import org.jetbrains.k2js.translate.test.JSRhinoUnitTester;
-import org.jetbrains.k2js.translate.test.JSTester;
import java.util.List;
@@ -41,10 +39,6 @@ public class TestConfigWithUnitTests extends TestConfig {
}
};
- @Override
- public JSTester getTester() {
- return new JSRhinoUnitTester();
- }
public TestConfigWithUnitTests(@NotNull Project project,
@NotNull EcmaVersion version,
@@ -53,4 +47,9 @@ public class TestConfigWithUnitTests extends TestConfig {
@NotNull ModuleDescriptor module) {
super(project, version, files, libraryContext, module, false);
}
+
+ @Override
+ public boolean isTestConfig() {
+ return true;
+ }
}
diff --git a/js/js.translator/js.translator.iml b/js/js.translator/js.translator.iml
index 5aa8da5b1b7..41539d5b6e0 100644
--- a/js/js.translator/js.translator.iml
+++ b/js/js.translator/js.translator.iml
@@ -12,6 +12,7 @@
+
diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/general/Translation.java b/js/js.translator/src/org/jetbrains/k2js/translate/general/Translation.java
index 8a98949a925..7fd2e1431f5 100644
--- a/js/js.translator/src/org/jetbrains/k2js/translate/general/Translation.java
+++ b/js/js.translator/src/org/jetbrains/k2js/translate/general/Translation.java
@@ -42,8 +42,10 @@ import org.jetbrains.k2js.translate.declaration.PackageDeclarationTranslator;
import org.jetbrains.k2js.translate.expression.ExpressionVisitor;
import org.jetbrains.k2js.translate.expression.FunctionTranslator;
import org.jetbrains.k2js.translate.expression.PatternTranslator;
+import org.jetbrains.k2js.translate.test.JSRhinoUnitTester;
import org.jetbrains.k2js.translate.test.JSTestGenerator;
import org.jetbrains.k2js.translate.test.JSTester;
+import org.jetbrains.k2js.translate.test.QUnitTester;
import org.jetbrains.k2js.translate.utils.JsAstUtils;
import org.jetbrains.k2js.translate.utils.dangerous.DangerousData;
import org.jetbrains.k2js.translate.utils.dangerous.DangerousTranslator;
@@ -162,12 +164,10 @@ public final class Translation {
private static void mayBeGenerateTests(@NotNull Collection files, @NotNull Config config,
@NotNull JsBlock rootBlock, @NotNull TranslationContext context) {
- JSTester tester = config.getTester();
- if (tester != null) {
- tester.initialize(context, rootBlock);
- JSTestGenerator.generateTestCalls(context, files, tester);
- tester.deinitialize();
- }
+ JSTester tester = config.isTestConfig() ? new JSRhinoUnitTester() : new QUnitTester();
+ tester.initialize(context, rootBlock);
+ JSTestGenerator.generateTestCalls(context, files, tester);
+ tester.deinitialize();
}
//TODO: determine whether should throw exception