JS backend: kotlin_lib_compiled -> stdlib.

This commit is contained in:
Zalim Bashorov
2014-10-04 17:40:28 +04:00
parent eec4bc7e04
commit b5ee5877ce
5 changed files with 23 additions and 9 deletions
+7 -2
View File
@@ -218,7 +218,9 @@
</target>
<target name="jslib">
<kotlin2js output="${basedir}/js/js.translator/testData/kotlin_lib_compiled.js" main="noCall">
<property name="compiled.stdlib.js" value="stdlib.js" />
<kotlin2js output="${output}/${compiled.stdlib.js}" main="noCall">
<src>
<resources refid="js.lib.files" />
</src>
@@ -253,7 +255,10 @@
<file name="kotlin_lib.js"/>
<file name="maps.js"/>
<file name="long.js"/>
<file name="kotlin_lib_compiled.js"/>
</sources>
<sources dir="${output}">
<file name="${compiled.stdlib.js}"/>
</sources>
<externs dir="${basedir}/js/js.translator/testData">
@@ -49,6 +49,8 @@ public class LibrarySourcesConfig extends Config {
@NotNull
private static final Logger LOG = Logger.getInstance("#org.jetbrains.k2js.config.LibrarySourcesConfig");
public static final String STDLIB_JS_MODULE_NAME = "stdlib";
public static final String STDLIB_JS_FILE_NAME = STDLIB_JS_MODULE_NAME + ".js";
@NotNull
private final List<String> files;
@@ -82,7 +84,7 @@ public class LibrarySourcesConfig extends Config {
moduleName = path.substring(1);
}
else if (path.endsWith(".jar") || path.endsWith(".zip")) {
String actualModuleName = isJsRuntimeLibrary(new File(path)) ? "kotlin_lib_compiled" : moduleName;
String actualModuleName = isJsRuntimeLibrary(new File(path)) ? STDLIB_JS_MODULE_NAME : moduleName;
try {
jetFiles.addAll(readZip(path, actualModuleName));
@@ -59,6 +59,8 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
private static final boolean DELETE_OUT = false;
public static final String TEST_DATA_DIR_PATH = "js/js.translator/testData/";
public static final String DIST_DIR_PATH = "dist/";
private static final String CASES = "cases/";
private static final String OUT = "out/";
private static final String EXPECTED = "expected/";
@@ -37,7 +37,7 @@ import java.util.List;
public class LibrarySourcesConfigWithCaching extends LibrarySourcesConfig {
public static final List<String> JS_STDLIB =
Arrays.asList("@" + "kotlin_lib_compiled", PathUtil.getKotlinPathsForDistDirectory().getJsLibJarPath().getAbsolutePath());
Arrays.asList("@" + STDLIB_JS_MODULE_NAME, PathUtil.getKotlinPathsForDistDirectory().getJsLibJarPath().getAbsolutePath());
private static List<JetFile> jsLibFiles;
private static AnalyzeExhaust exhaust;
@@ -27,9 +27,15 @@ import org.mozilla.javascript.*;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.jetbrains.jet.utils.UtilsPackage.rethrow;
import static org.jetbrains.k2js.config.LibrarySourcesConfig.STDLIB_JS_FILE_NAME;
import static org.jetbrains.k2js.config.LibrarySourcesConfig.STDLIB_JS_MODULE_NAME;
import static org.jetbrains.k2js.test.BasicTest.DIST_DIR_PATH;
import static org.jetbrains.k2js.test.BasicTest.TEST_DATA_DIR_PATH;
public final class RhinoUtils {
@@ -168,11 +174,10 @@ public final class RhinoUtils {
assert kotlin != null;
NativeObject modules = (NativeObject) kotlin.get("modules");
assert modules != null;
String stdlibModuleName = "kotlin_lib_compiled";
NativeObject stdlibModule = (NativeObject) modules.get(stdlibModuleName);
NativeObject stdlibModule = (NativeObject) modules.get(STDLIB_JS_MODULE_NAME);
NativeObject newModules = new NativeObject();
newModules.put(stdlibModuleName, newModules, stdlibModule);
newModules.put(STDLIB_JS_MODULE_NAME, newModules, stdlibModule);
kotlin.put("modules", kotlin, newModules);
}
@@ -185,9 +190,9 @@ public final class RhinoUtils {
try {
runFileWithRhino(getKotlinLibFile(version), context, scope);
runFileWithRhino(TEST_DATA_DIR_PATH + "kotlin_lib.js", context, scope);
runFileWithRhino(TEST_DATA_DIR_PATH + "kotlin_lib_compiled.js", context, scope);
runFileWithRhino(TEST_DATA_DIR_PATH + "maps.js", context, scope);
runFileWithRhino(TEST_DATA_DIR_PATH + "long.js", context, scope);
runFileWithRhino(DIST_DIR_PATH + STDLIB_JS_FILE_NAME, context, scope);
//runFileWithRhino(pathToTestFilesRoot() + "jshint.js", context, scope);
for (String jsLibrary : jsLibraries) {
runFileWithRhino(jsLibrary, context, scope);