From a736756ceb2a575e54433064bfced143e66c8898 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Thu, 14 Feb 2019 19:43:22 +0300 Subject: [PATCH] [JS IR BE] Fix and refactor interop tests --- .../testData/box/coercion/unitAsExtensionReceiver.kt | 3 +++ js/js.translator/testData/box/dynamic/iterator.kt | 1 + js/js.translator/testData/box/examples/basicproperty.kt | 5 +++-- js/js.translator/testData/box/examples/traitproperty.kt | 5 +++-- .../testData/box/expression/cast/explicitUpcast.js | 2 +- .../testData/box/expression/cast/explicitUpcast.kt | 3 +-- .../evaluationOrder/whenJsLiteralWithSideEffect.kt | 9 ++++----- .../testData/box/expression/function/mangling.kt | 1 + .../testData/box/expression/function/varargUInt.kt | 1 + .../box/expression/when/exhaustiveCheckException.kt | 1 + js/js.translator/testData/box/incremental/enumUsage.kt | 1 + .../box/initialize/propertyInitializationOrder.kt | 1 + .../box/inlineMultiFile/buildersAndLambdaCapturing.kt | 4 ++-- js/js.translator/testData/box/java/arrayList/misc.kt | 2 +- .../testData/box/java/arrayList/removeAll.kt | 1 + .../testData/box/java/arrayList/retainAll.kt | 1 + js/js.translator/testData/box/java/arrayList/toArray.kt | 2 +- .../testData/box/jsCode/referenceToKotlin.kt | 1 + js/js.translator/testData/box/jsName/avoidNameClash.kt | 4 +--- js/js.translator/testData/box/jsName/classes.kt | 6 ++---- js/js.translator/testData/box/jsName/overriddenMethod.kt | 4 +--- .../testData/box/jsName/overridenFromInterface.kt | 4 +--- js/js.translator/testData/box/jsName/privateMethod.kt | 3 +-- .../testData/box/jsName/secondaryConstructor.kt | 3 +-- js/js.translator/testData/box/jsName/simpleJsName.kt | 4 +--- .../testData/box/native/callbackOptionalParameter.js | 4 ++-- .../testData/box/native/callbackOptionalParameter.kt | 1 + js/js.translator/testData/box/native/eval.kt | 4 +--- js/js.translator/testData/box/native/print.kt | 1 + js/js.translator/testData/box/number/kt26706.kt | 1 + .../testData/box/objectDeclaration/dontPolluteObject.kt | 1 + .../testData/box/propertyAccess/accessorsWithJsName.kt | 4 +--- .../testData/box/propertyAccess/enumerable.kt | 1 + .../box/propertyAccess/staticAccessorsWithJsName.kt | 4 +--- .../testData/box/rtti/prototypeUsedToFindInterface.kt | 6 +++--- .../testData/box/standardClasses/arrayFactoryMethods.kt | 7 +++---- .../box/trait/checkImplementationCharacteristics.kt | 6 ++---- 37 files changed, 54 insertions(+), 58 deletions(-) diff --git a/js/js.translator/testData/box/coercion/unitAsExtensionReceiver.kt b/js/js.translator/testData/box/coercion/unitAsExtensionReceiver.kt index 9d4b68af617..2a5d5f6c5be 100644 --- a/js/js.translator/testData/box/coercion/unitAsExtensionReceiver.kt +++ b/js/js.translator/testData/box/coercion/unitAsExtensionReceiver.kt @@ -1,5 +1,8 @@ // IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1284 + +// TODO: Design Unit materialization and Unit.asDynamic() in JS IR BE + var log = "" fun foo() { diff --git a/js/js.translator/testData/box/dynamic/iterator.kt b/js/js.translator/testData/box/dynamic/iterator.kt index ccdc3487000..6ab95117ba2 100644 --- a/js/js.translator/testData/box/dynamic/iterator.kt +++ b/js/js.translator/testData/box/dynamic/iterator.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1556 package foo diff --git a/js/js.translator/testData/box/examples/basicproperty.kt b/js/js.translator/testData/box/examples/basicproperty.kt index ccb7eb0912b..b8c5b2dee8e 100644 --- a/js/js.translator/testData/box/examples/basicproperty.kt +++ b/js/js.translator/testData/box/examples/basicproperty.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1300 open class M() { open var b: Int = 0 @@ -18,7 +17,9 @@ class N() : M() { fun box(): String { val n = N() - println("a: " + n.a + " b: " + n.b + " superb: " + n.superb) + n.a + n.b + n.superb if (n.b == 3 && n.a == 4 && n.superb == 3) return "OK"; return "fail"; } \ No newline at end of file diff --git a/js/js.translator/testData/box/examples/traitproperty.kt b/js/js.translator/testData/box/examples/traitproperty.kt index 9b7870ab0e5..a8ac148d77c 100644 --- a/js/js.translator/testData/box/examples/traitproperty.kt +++ b/js/js.translator/testData/box/examples/traitproperty.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1296 interface M { var backingB: Int @@ -25,7 +24,9 @@ class N() : M { fun box(): String { val n = N() - println("a: " + n.a + " b: " + n.b + " superb: " + n.superb) + n.a + n.b + n.superb if (n.b == 3 && n.a == 4 && n.superb == 3) return "OK"; return "fail"; } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/cast/explicitUpcast.js b/js/js.translator/testData/box/expression/cast/explicitUpcast.js index 8217e075b0e..7c7e97cb46c 100644 --- a/js/js.translator/testData/box/expression/cast/explicitUpcast.js +++ b/js/js.translator/testData/box/expression/cast/explicitUpcast.js @@ -1,3 +1,3 @@ function createWrongObject() { - return new (JS_TESTS.foo.C); + return new (JS_TESTS.C); } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/cast/explicitUpcast.kt b/js/js.translator/testData/box/expression/cast/explicitUpcast.kt index c77a52557a3..795c73e1c95 100644 --- a/js/js.translator/testData/box/expression/cast/explicitUpcast.kt +++ b/js/js.translator/testData/box/expression/cast/explicitUpcast.kt @@ -1,7 +1,6 @@ -// IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // SKIP_MINIFICATION // This test assumes that external JS code calls Kotlin code directly -package foo open class A diff --git a/js/js.translator/testData/box/expression/evaluationOrder/whenJsLiteralWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/whenJsLiteralWithSideEffect.kt index b8121ac7c98..9e5ea09e51f 100644 --- a/js/js.translator/testData/box/expression/evaluationOrder/whenJsLiteralWithSideEffect.kt +++ b/js/js.translator/testData/box/expression/evaluationOrder/whenJsLiteralWithSideEffect.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1289 package foo @@ -11,11 +10,11 @@ fun bar(s: String): Int { fun testWhen() { global = "" when(arrayOf(bar("A"),2,3)) { - arrayOf(1) -> println("1") - arrayOf(2) -> println("2") - else -> println("else") + arrayOf(1) -> bar("1") + arrayOf(2) -> bar("2") + else -> bar("else") } - assertEquals("A", global) + assertEquals("Aelse", global) } diff --git a/js/js.translator/testData/box/expression/function/mangling.kt b/js/js.translator/testData/box/expression/function/mangling.kt index 86c35c9ae98..08fbc615fba 100644 --- a/js/js.translator/testData/box/expression/function/mangling.kt +++ b/js/js.translator/testData/box/expression/function/mangling.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // SKIP_MINIFICATION // This test uses eval to access root package, therefore DCE can't infer usage of corresponding functions package foo diff --git a/js/js.translator/testData/box/expression/function/varargUInt.kt b/js/js.translator/testData/box/expression/function/varargUInt.kt index 5031a105a46..3e84ccc6f4e 100644 --- a/js/js.translator/testData/box/expression/function/varargUInt.kt +++ b/js/js.translator/testData/box/expression/function/varargUInt.kt @@ -1,5 +1,6 @@ // LANGUAGE_VERSION: 1.3 // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1566 package foo diff --git a/js/js.translator/testData/box/expression/when/exhaustiveCheckException.kt b/js/js.translator/testData/box/expression/when/exhaustiveCheckException.kt index 71404622e37..a42f7cfdb99 100644 --- a/js/js.translator/testData/box/expression/when/exhaustiveCheckException.kt +++ b/js/js.translator/testData/box/expression/when/exhaustiveCheckException.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1323 fun checkThrown(x: T, block: (T) -> Any?): Unit? { return try { diff --git a/js/js.translator/testData/box/incremental/enumUsage.kt b/js/js.translator/testData/box/incremental/enumUsage.kt index c75a2d24e4e..906de09e4fc 100644 --- a/js/js.translator/testData/box/incremental/enumUsage.kt +++ b/js/js.translator/testData/box/incremental/enumUsage.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1230 // GENERATE_SOURCE_MAPS // FILE: Enum.kt diff --git a/js/js.translator/testData/box/initialize/propertyInitializationOrder.kt b/js/js.translator/testData/box/initialize/propertyInitializationOrder.kt index 09459f97939..c4063c2393d 100644 --- a/js/js.translator/testData/box/initialize/propertyInitializationOrder.kt +++ b/js/js.translator/testData/box/initialize/propertyInitializationOrder.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // SKIP_MINIFICATION // This test uses eval open class A { diff --git a/js/js.translator/testData/box/inlineMultiFile/buildersAndLambdaCapturing.kt b/js/js.translator/testData/box/inlineMultiFile/buildersAndLambdaCapturing.kt index ae3be3fd4ac..640c648ec6c 100644 --- a/js/js.translator/testData/box/inlineMultiFile/buildersAndLambdaCapturing.kt +++ b/js/js.translator/testData/box/inlineMultiFile/buildersAndLambdaCapturing.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1681 /* * Copy of JVM-backend test @@ -171,7 +171,7 @@ inline fun testBodyHtmlNoInline(crossinline f: () -> String) : String { fun box(): String { var expected = testAllInline({"x"}); - print(expected + " " + testHtmlNoInline({"x"})) + expected + " " + testHtmlNoInline({"x"}) if (expected != testHtmlNoInline({"x"})) return "fail 1: ${testHtmlNoInline({"x"})}\nbut expected\n${expected} " if (expected != testBodyNoInline({"x"})) return "fail 2: ${testBodyNoInline({"x"})}\nbut expected\n${expected} " diff --git a/js/js.translator/testData/box/java/arrayList/misc.kt b/js/js.translator/testData/box/java/arrayList/misc.kt index a0ca235e48e..4afc64b2e8d 100644 --- a/js/js.translator/testData/box/java/arrayList/misc.kt +++ b/js/js.translator/testData/box/java/arrayList/misc.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1524 package foo diff --git a/js/js.translator/testData/box/java/arrayList/removeAll.kt b/js/js.translator/testData/box/java/arrayList/removeAll.kt index b077c444c29..98cdc823a21 100644 --- a/js/js.translator/testData/box/java/arrayList/removeAll.kt +++ b/js/js.translator/testData/box/java/arrayList/removeAll.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1519 package foo diff --git a/js/js.translator/testData/box/java/arrayList/retainAll.kt b/js/js.translator/testData/box/java/arrayList/retainAll.kt index f04f7e640f1..dee071abac0 100644 --- a/js/js.translator/testData/box/java/arrayList/retainAll.kt +++ b/js/js.translator/testData/box/java/arrayList/retainAll.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1519 package foo diff --git a/js/js.translator/testData/box/java/arrayList/toArray.kt b/js/js.translator/testData/box/java/arrayList/toArray.kt index 01b9904c1cd..6078cd7517e 100644 --- a/js/js.translator/testData/box/java/arrayList/toArray.kt +++ b/js/js.translator/testData/box/java/arrayList/toArray.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1514 package foo diff --git a/js/js.translator/testData/box/jsCode/referenceToKotlin.kt b/js/js.translator/testData/box/jsCode/referenceToKotlin.kt index cf54149a7b4..cb6825fbfd2 100644 --- a/js/js.translator/testData/box/jsCode/referenceToKotlin.kt +++ b/js/js.translator/testData/box/jsCode/referenceToKotlin.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1530 external fun p(m: String): String diff --git a/js/js.translator/testData/box/jsName/avoidNameClash.kt b/js/js.translator/testData/box/jsName/avoidNameClash.kt index 9fc9f1b4461..7a713cacdad 100644 --- a/js/js.translator/testData/box/jsName/avoidNameClash.kt +++ b/js/js.translator/testData/box/jsName/avoidNameClash.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1290 -package foo object A { @JsName("js_method") fun f() = "method" @@ -9,7 +7,7 @@ object A { } fun test() = js(""" -var a = JS_TESTS.foo.A; +var a = JS_TESTS.A; return a.js_method() + ";" + a.js_property; """) diff --git a/js/js.translator/testData/box/jsName/classes.kt b/js/js.translator/testData/box/jsName/classes.kt index bc101b575d7..408cf43816e 100644 --- a/js/js.translator/testData/box/jsName/classes.kt +++ b/js/js.translator/testData/box/jsName/classes.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1294 -package foo @JsName("AA") object A { @JsName("foo") fun bar() = "A.foo" @@ -11,12 +9,12 @@ package foo } fun testA() = js(""" -var a = JS_TESTS.foo.AA; +var a = JS_TESTS.AA; return a.foo(); """) fun testB() = js(""" -var b = new JS_TESTS.foo.BB(); +var b = new JS_TESTS.BB(); return b.foo(); """) diff --git a/js/js.translator/testData/box/jsName/overriddenMethod.kt b/js/js.translator/testData/box/jsName/overriddenMethod.kt index 81f6c707134..ee316c87748 100644 --- a/js/js.translator/testData/box/jsName/overriddenMethod.kt +++ b/js/js.translator/testData/box/jsName/overriddenMethod.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1295 -package foo open class A { @JsName("js_f") open fun f(x: Int) = "A.f($x)" @@ -11,7 +9,7 @@ class B : A() { } fun test() = js(""" -var module = JS_TESTS.foo; +var module = JS_TESTS; return new (module.A)().js_f(23) + ";" + new (module.B)().js_f(42); """) diff --git a/js/js.translator/testData/box/jsName/overridenFromInterface.kt b/js/js.translator/testData/box/jsName/overridenFromInterface.kt index ab3be34fa48..aadb44c9c92 100644 --- a/js/js.translator/testData/box/jsName/overridenFromInterface.kt +++ b/js/js.translator/testData/box/jsName/overridenFromInterface.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1290 -package foo interface A { @JsName("js_f") fun f(x: Int): String @@ -11,7 +9,7 @@ class B : A { } fun test() = js(""" -var module = JS_TESTS.foo; +var module = JS_TESTS; return new (module.B)().js_f(23); """) diff --git a/js/js.translator/testData/box/jsName/privateMethod.kt b/js/js.translator/testData/box/jsName/privateMethod.kt index 1417b5ea043..a42965dcc27 100644 --- a/js/js.translator/testData/box/jsName/privateMethod.kt +++ b/js/js.translator/testData/box/jsName/privateMethod.kt @@ -1,13 +1,12 @@ // IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1290 -package foo object A { @JsName("js_f") private fun f(x: Int) = "f($x)" } fun test() = js(""" -return JS_TESTS.foo.A.js_f(23); +return JS_TESTS.A.js_f(23); """) fun box(): String { diff --git a/js/js.translator/testData/box/jsName/secondaryConstructor.kt b/js/js.translator/testData/box/jsName/secondaryConstructor.kt index 84ddb53a2ff..40e60b12c90 100644 --- a/js/js.translator/testData/box/jsName/secondaryConstructor.kt +++ b/js/js.translator/testData/box/jsName/secondaryConstructor.kt @@ -1,13 +1,12 @@ // IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1288 -package foo class A(val x: String) { @JsName("A_int") constructor(x: Int) : this("int $x") } fun test() = js(""" -return JS_TESTS.foo.A_int(23).x; +return JS_TESTS.A_int(23).x; """) fun box(): String { diff --git a/js/js.translator/testData/box/jsName/simpleJsName.kt b/js/js.translator/testData/box/jsName/simpleJsName.kt index d60a51bccf1..39fd7c7c65f 100644 --- a/js/js.translator/testData/box/jsName/simpleJsName.kt +++ b/js/js.translator/testData/box/jsName/simpleJsName.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1291 -package foo object A { @JsName("js_f") fun f(x: Int) = "f($x)" @@ -13,7 +11,7 @@ object A { } fun test() = js(""" -var a = JS_TESTS.foo.A; +var a = JS_TESTS.A; return a.js_f(23) + ";" + a.js_g(42) + ";" + a.js_p + ";" + a.js_q; """) diff --git a/js/js.translator/testData/box/native/callbackOptionalParameter.js b/js/js.translator/testData/box/native/callbackOptionalParameter.js index e4eb6d13f23..d40dd1fe5c7 100644 --- a/js/js.translator/testData/box/native/callbackOptionalParameter.js +++ b/js/js.translator/testData/box/native/callbackOptionalParameter.js @@ -1,4 +1,4 @@ function bar(a) { - a.foo_za3lpa$(); - a.foo_za3lpa$(99); + a.foo(); + a.foo(99); } \ No newline at end of file diff --git a/js/js.translator/testData/box/native/callbackOptionalParameter.kt b/js/js.translator/testData/box/native/callbackOptionalParameter.kt index f525098de59..09df3ace8f4 100644 --- a/js/js.translator/testData/box/native/callbackOptionalParameter.kt +++ b/js/js.translator/testData/box/native/callbackOptionalParameter.kt @@ -5,6 +5,7 @@ package foo var global = "" open class A { + @JsName("foo") open fun foo(x: Int = 23) { global += "A.foo($x);" } diff --git a/js/js.translator/testData/box/native/eval.kt b/js/js.translator/testData/box/native/eval.kt index 4ecc878d51c..9222cea39bc 100644 --- a/js/js.translator/testData/box/native/eval.kt +++ b/js/js.translator/testData/box/native/eval.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // SKIP_MINIFICATION -package foo val top = "TOP LEVEL" @@ -11,7 +9,7 @@ fun box(): String { assertEquals(5, eval("3 + 2")) - val PACKAGE = "JS_TESTS.foo" + val PACKAGE = "JS_TESTS" assertEquals(top, eval("$PACKAGE.top")) return "OK" diff --git a/js/js.translator/testData/box/native/print.kt b/js/js.translator/testData/box/native/print.kt index ae1345a8212..f58ce0ce369 100644 --- a/js/js.translator/testData/box/native/print.kt +++ b/js/js.translator/testData/box/native/print.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // SKIP_MINIFICATION // This test uses eval // SKIP_NODE_JS diff --git a/js/js.translator/testData/box/number/kt26706.kt b/js/js.translator/testData/box/number/kt26706.kt index 6aaa869743b..f11468a9a56 100644 --- a/js/js.translator/testData/box/number/kt26706.kt +++ b/js/js.translator/testData/box/number/kt26706.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1229 package foo diff --git a/js/js.translator/testData/box/objectDeclaration/dontPolluteObject.kt b/js/js.translator/testData/box/objectDeclaration/dontPolluteObject.kt index 1e6b31845ff..07a4abd9081 100644 --- a/js/js.translator/testData/box/objectDeclaration/dontPolluteObject.kt +++ b/js/js.translator/testData/box/objectDeclaration/dontPolluteObject.kt @@ -1,5 +1,6 @@ // IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1545 +// KJS_WITH_FULL_RUNTIME package foo object EmptyObject {} diff --git a/js/js.translator/testData/box/propertyAccess/accessorsWithJsName.kt b/js/js.translator/testData/box/propertyAccess/accessorsWithJsName.kt index bf5698aed09..b987c68bce2 100644 --- a/js/js.translator/testData/box/propertyAccess/accessorsWithJsName.kt +++ b/js/js.translator/testData/box/propertyAccess/accessorsWithJsName.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1291 -package foo class A { val x: Int @@ -16,7 +14,7 @@ class A { val A.z: Int @JsName("getZ_") get() = 42 -fun getPackage() = js("return JS_TESTS.foo") +fun getPackage() = js("return JS_TESTS") fun box(): String { val a = A() diff --git a/js/js.translator/testData/box/propertyAccess/enumerable.kt b/js/js.translator/testData/box/propertyAccess/enumerable.kt index 65c69d6b66a..761c365a68f 100644 --- a/js/js.translator/testData/box/propertyAccess/enumerable.kt +++ b/js/js.translator/testData/box/propertyAccess/enumerable.kt @@ -1,4 +1,5 @@ // IGNORE_BACKEND: JS_IR +// KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1325 package foo diff --git a/js/js.translator/testData/box/propertyAccess/staticAccessorsWithJsName.kt b/js/js.translator/testData/box/propertyAccess/staticAccessorsWithJsName.kt index 2d2e8626f9e..38a381f74af 100644 --- a/js/js.translator/testData/box/propertyAccess/staticAccessorsWithJsName.kt +++ b/js/js.translator/testData/box/propertyAccess/staticAccessorsWithJsName.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1288 -package foo val x: Int @JsName("getX_") get() = 23 @@ -12,7 +10,7 @@ var y: Int = 0 } -fun getPackage() = js("return JS_TESTS.foo") +fun getPackage() = js("return JS_TESTS") fun box(): String { assertEquals(23, x) diff --git a/js/js.translator/testData/box/rtti/prototypeUsedToFindInterface.kt b/js/js.translator/testData/box/rtti/prototypeUsedToFindInterface.kt index 38627848211..549b7982a76 100644 --- a/js/js.translator/testData/box/rtti/prototypeUsedToFindInterface.kt +++ b/js/js.translator/testData/box/rtti/prototypeUsedToFindInterface.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1224 interface A { fun foo(): String @@ -10,13 +9,14 @@ class B : A { fun box(): String { val b = B::class.js - val c = js(""" + val c = js("""(function() { function C() { b.call(this); }; C.prototype = Object.create(b.prototype); C.prototype.constructor = C; - new C(); + return new C(); + })() """) if (c !is B) return "fail: c !is B" diff --git a/js/js.translator/testData/box/standardClasses/arrayFactoryMethods.kt b/js/js.translator/testData/box/standardClasses/arrayFactoryMethods.kt index 7e145be8a89..595386fee49 100644 --- a/js/js.translator/testData/box/standardClasses/arrayFactoryMethods.kt +++ b/js/js.translator/testData/box/standardClasses/arrayFactoryMethods.kt @@ -1,12 +1,11 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1293 package foo class Fail(message: String) : Exception(message) -fun test(testName: String, actual: Any, expectedAsString: String) { - val expected = eval("[$expectedAsString]") as Array +fun test(testName: String, actual: Any, expectedAsString: String?, expectedAsArray: Array? = null) { + val expected = expectedAsArray ?: eval("[$expectedAsString]") as Array val expectedJs: dynamic = expected val actualJs: dynamic = actual if (expectedJs.length != actualJs.length) { @@ -29,7 +28,7 @@ fun box(): String { test("byteArrayOf", byteArrayOf(0, 1, 2, 3, 4), "0, 1, 2, 3, 4") test("shortArrayOf", shortArrayOf(0, 1, 2, 3, 4), "0, 1, 2, 3, 4") test("intArray,", intArrayOf(0, 1, 2, 3, 4), "0, 1, 2, 3, 4") - test("longArrayOf", longArrayOf(0, 1, 2, 3, 4), "kotlin.Long.fromInt(0), kotlin.Long.fromInt(1), kotlin.Long.fromInt(2), kotlin.Long.fromInt(3), kotlin.Long.fromInt(4)") + test("longArrayOf", longArrayOf(0, 1, 2, 3, 4), null, expectedAsArray = arrayOf(0L, 1L, 2L, 3L, 4L)) test("floatArrayOf", floatArrayOf(0.0f, 1.0f, 2.0f, 3.0f, 4.0f), "0.0, 1.0, 2.0, 3.0, 4.0") test("doubleArrayOf", doubleArrayOf(0.0, 1.1, 2.2, 3.3, 4.4), "0.0, 1.1, 2.2, 3.3, 4.4") } diff --git a/js/js.translator/testData/box/trait/checkImplementationCharacteristics.kt b/js/js.translator/testData/box/trait/checkImplementationCharacteristics.kt index e1b4ab19620..feaa4b1e492 100644 --- a/js/js.translator/testData/box/trait/checkImplementationCharacteristics.kt +++ b/js/js.translator/testData/box/trait/checkImplementationCharacteristics.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1301 -package foo public interface A { fun foo() { @@ -11,7 +9,7 @@ public interface B : A { } } -external class Function(vararg args: String) +external class Function(args: String, body: String) val hasProp = Function("obj, prop", "return obj[prop] !== undefined") as ((Any, String) -> Boolean) @@ -27,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 = "_.foo" + val PREFIX = "_" 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"