KJS: remove obsolete kotlin.modules

This commit is contained in:
Zalim Bashorov
2016-12-26 20:04:13 +03:00
parent 3ef1321841
commit d635d7859e
19 changed files with 57 additions and 37 deletions
@@ -17,5 +17,10 @@
}
define.amd = {};
function require(name) {
return modules[name];
}
global.define = define;
global.require = require;
})(this);
+1 -4
View File
@@ -272,14 +272,11 @@
////////////////////////////////// packages & modules //////////////////////////////
Kotlin.modules = {};
/**
* @param {string} id
* @param {Object} declaration
*/
Kotlin.defineModule = function (id, declaration) {
Kotlin.modules[id] = declaration;
};
Kotlin.defineInlineFunction = function(tag, fun) {
@@ -303,7 +300,7 @@
return object == null || fn(object);
}
};
Kotlin.andPredicate = function (a, b) {
return function (object) {
return a(object) && b(object);
@@ -49,6 +49,10 @@ public class AntTaskJsTest extends AbstractAntTaskTest {
}
private void doJsAntTest(String... jsFiles) throws Exception {
doJsAntTest(false, jsFiles);
}
private void doJsAntTest(boolean withModuleSystem, String... jsFiles) throws Exception {
doTest();
List<String> fileNames = new ArrayList<String>(Arrays.asList(jsFiles));
@@ -61,7 +65,7 @@ public class AntTaskJsTest extends AbstractAntTaskTest {
}
});
RhinoUtils.runRhinoTest(filePaths, new RhinoFunctionResultChecker("out", "foo", "box", "OK"));
RhinoUtils.runRhinoTest(filePaths, new RhinoFunctionResultChecker("out", "foo", "box", "OK", withModuleSystem));
}
private void doJsAntTestForPostfixPrefix(@Nullable String prefix, @Nullable String postfix) throws Exception {
@@ -121,7 +125,7 @@ public class AntTaskJsTest extends AbstractAntTaskTest {
}
public void testSimpleWithStdlibAndJsFileAsAnotherLibModuleKind() throws Exception {
doJsAntTest("amd.js", "jslib-example.js");
doJsAntTest(true, "amd.js", "jslib-example.js");
}
public void testSimpleWithStdlibAndTwoJsFilesAsLibraries() throws Exception {
@@ -99,7 +99,6 @@ abstract class BasicBoxTest(
val mainModuleName = if (TEST_MODULE in modules) TEST_MODULE else DEFAULT_MODULE
val mainModule = modules[mainModuleName]!!
val checker = RhinoFunctionResultChecker(mainModuleName, testFactory.testPackage, TEST_FUNCTION, "OK")
val globalCommonFiles = JsTestUtils.getFilesInDirectoryByExtension(
TEST_DATA_DIR_PATH + COMMON_FILES_DIR, JavaScript.EXTENSION)
val localCommonFile = file.parent + "/" + COMMON_FILES_NAME + JavaScript.DOT_EXTENSION
@@ -118,9 +117,13 @@ abstract class BasicBoxTest(
}
val additionalFiles = mutableListOf<String>()
if ((modules.size > 1 || MODULE_KIND_PATTERN.matcher(expectedText).find()) &&
!NO_MODULE_SYSTEM_PATTERN.matcher(expectedText).find()
) {
val moduleKindMatcher = MODULE_KIND_PATTERN.matcher(expectedText)
val moduleKind = if (moduleKindMatcher.find()) ModuleKind.valueOf(moduleKindMatcher.group(1)) else ModuleKind.PLAIN
val withModuleSystem = moduleKind != ModuleKind.PLAIN && !NO_MODULE_SYSTEM_PATTERN.matcher(expectedText).find()
if (withModuleSystem) {
additionalFiles += MODULE_EMULATION_FILE
}
@@ -138,6 +141,7 @@ abstract class BasicBoxTest(
FileUtil.writeToFile(File(nodeRunnerName), nodeRunnerText)
}
val checker = RhinoFunctionResultChecker(mainModuleName, testFactory.testPackage, TEST_FUNCTION, "OK", withModuleSystem)
RhinoUtils.runRhinoTest(allJsFiles, checker)
}
}
@@ -153,7 +157,7 @@ abstract class BasicBoxTest(
val fileName = FileUtil.getRelativePath(dir, File(file))!!
sb.append("text += fs.readFileSync(__dirname + \"/$fileName\") + \"\\n\";\n")
}
sb.append("text += 'return kotlin.modules.$moduleName;';\n")
sb.append("text += 'return $moduleName;';\n")
sb.append("text += \"};\";\n")
val fqn = testPackage?.let { ".$it" } ?: ""
@@ -30,12 +30,24 @@ public class RhinoFunctionResultChecker implements RhinoResultChecker {
private final String packageName;
private final String functionName;
private final Object expectedResult;
private final boolean withModuleSystem;
public RhinoFunctionResultChecker(@NotNull String moduleId, @Nullable String packageName, @NotNull String functionName, @NotNull Object expectedResult) {
this(moduleId, packageName, functionName, expectedResult, false);
}
public RhinoFunctionResultChecker(
@NotNull String moduleId,
@Nullable String packageName,
@NotNull String functionName,
@NotNull Object expectedResult,
boolean withModuleSystem
) {
this.moduleId = moduleId;
this.packageName = packageName;
this.functionName = functionName;
this.expectedResult = expectedResult;
this.withModuleSystem = withModuleSystem;
}
@Override
@@ -56,12 +68,17 @@ public class RhinoFunctionResultChecker implements RhinoResultChecker {
private String functionCallString() {
StringBuilder sb = new StringBuilder();
sb.append("kotlin.modules");
if (moduleId.contains(".")) {
sb.append("['").append(moduleId).append("']");
} else {
sb.append(".").append(moduleId);
if (withModuleSystem) {
sb.append("require('").append(moduleId).append("')");
}
else if (moduleId.contains(".")) {
sb.append("this['").append(moduleId).append("']");
}
else {
sb.append(moduleId);
}
if (packageName != null) {
sb.append('.').append(packageName);
}
+1 -1
View File
@@ -7,7 +7,7 @@ object A {
}
fun test() = js("""
var a = Kotlin.modules.JS_TESTS.foo.A;
var a = JS_TESTS.foo.A;
return a.js_method() + ";" + a.js_property;
""")
+2 -2
View File
@@ -9,12 +9,12 @@ package foo
}
fun testA() = js("""
var a = Kotlin.modules.JS_TESTS.foo.AA;
var a = JS_TESTS.foo.AA;
return a.foo();
""")
fun testB() = js("""
var b = new Kotlin.modules.JS_TESTS.foo.BB();
var b = new JS_TESTS.foo.BB();
return b.foo();
""")
+1 -1
View File
@@ -9,7 +9,7 @@ class B : A() {
}
fun test() = js("""
var module = Kotlin.modules.JS_TESTS.foo;
var module = JS_TESTS.foo;
return new (module.A)().js_f(23) + ";" + new (module.B)().js_f(42);
""")
@@ -9,7 +9,7 @@ class B : A {
}
fun test() = js("""
var module = Kotlin.modules.JS_TESTS.foo;
var module = JS_TESTS.foo;
return new (module.B)().js_f(23);
""")
+1 -1
View File
@@ -5,7 +5,7 @@ object A {
}
fun test() = js("""
return Kotlin.modules.JS_TESTS.foo.A.js_f(23);
return JS_TESTS.foo.A.js_f(23);
""")
fun box(): String {
@@ -5,7 +5,7 @@ class A(val x: String) {
}
fun test() = js("""
return Kotlin.modules.JS_TESTS.foo.A_int(23).x;
return JS_TESTS.foo.A_int(23).x;
""")
fun box(): String {
+1 -1
View File
@@ -11,7 +11,7 @@ object A {
}
fun test() = js("""
var a = Kotlin.modules.JS_TESTS.foo.A;
var a = JS_TESTS.foo.A;
return a.js_f(23) + ";" + a.js_g(42) + ";" + a.js_p + ";" + a.js_q;
""")
+1 -1
View File
@@ -9,7 +9,7 @@ fun box(): String {
assertEquals(5, eval("3 + 2"))
val PACKAGE = "kotlin.modules.JS_TESTS.foo"
val PACKAGE = "JS_TESTS.foo"
assertEquals(top, eval("$PACKAGE.top"))
return "OK"
@@ -14,7 +14,7 @@ class A {
val A.z: Int
@JsName("getZ_") get() = 42
fun getPackage() = js("return Kotlin.modules.JS_TESTS.foo")
fun getPackage() = js("return JS_TESTS.foo")
fun box(): String {
val a = A()
@@ -10,7 +10,7 @@ var y: Int = 0
}
fun getPackage() = js("return Kotlin.modules.JS_TESTS.foo")
fun getPackage() = js("return JS_TESTS.foo")
fun box(): String {
assertEquals(23, x)
@@ -28,7 +28,7 @@ class B : A(), C {
override val z = 55
}
fun getPackage() = js("return Kotlin.modules.JS_TESTS.foo")
fun getPackage() = js("return JS_TESTS.foo")
fun box(): String {
val a = B()
@@ -25,7 +25,7 @@ fun box(): String {
if (!hasProp(b, "foo")) return "B hasn't foo"
if (!hasProp(b, "boo")) return "B hasn't boo"
val PREFIX = "kotlin.modules.JS_TESTS.foo"
val PREFIX = "JS_TESTS.foo"
if (eval("$PREFIX.A") == null) return "$PREFIX.A not found"
if (eval("$PREFIX.B") == null) return "$PREFIX.B not found"
if (eval("$PREFIX.A === $PREFIX.B") as Boolean) return "A and B refer to the same object"
-7
View File
@@ -30,14 +30,7 @@ var JsTests = (function () {
throw failedTest;
};
var init = function () {
init = function() {};
kotlin.modules.JS_TESTS.kotlin.test.init();
};
var test = function (testName, testFun) {
init();
reporter.testStart(testName);
try {
testFun();
+1 -1
View File
@@ -1,6 +1,6 @@
package kotlin.test
fun init() {
val init = run {
asserter = JsTestsAsserter()
}