[JS IR] Add test with chain export--not-export--export

^KT-44616 fixed
This commit is contained in:
Ilya Goncharov
2021-02-08 11:48:50 +03:00
parent 76b124a9c0
commit 19bffc694b
4 changed files with 53 additions and 0 deletions
@@ -1632,6 +1632,11 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test {
runTest("js/js.translator/testData/box/export/nonIndetifierModuleName.kt");
}
@TestMetadata("overriddenChainNonExportIntermediate.kt")
public void testOverriddenChainNonExportIntermediate() throws Exception {
runTest("js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt");
}
@TestMetadata("overriddenExternalMethodWithSameNameMethod.kt")
public void testOverriddenExternalMethodWithSameNameMethod() throws Exception {
runTest("js/js.translator/testData/box/export/overriddenExternalMethodWithSameNameMethod.kt");
@@ -1632,6 +1632,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
runTest("js/js.translator/testData/box/export/nonIndetifierModuleName.kt");
}
@TestMetadata("overriddenChainNonExportIntermediate.kt")
public void testOverriddenChainNonExportIntermediate() throws Exception {
runTest("js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt");
}
@TestMetadata("overriddenExternalMethodWithSameNameMethod.kt")
public void testOverriddenExternalMethodWithSameNameMethod() throws Exception {
runTest("js/js.translator/testData/box/export/overriddenExternalMethodWithSameNameMethod.kt");
@@ -1637,6 +1637,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
runTest("js/js.translator/testData/box/export/nonIndetifierModuleName.kt");
}
@TestMetadata("overriddenChainNonExportIntermediate.kt")
public void testOverriddenChainNonExportIntermediate() throws Exception {
runTest("js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt");
}
@TestMetadata("overriddenExternalMethodWithSameNameMethod.kt")
public void testOverriddenExternalMethodWithSameNameMethod() throws Exception {
runTest("js/js.translator/testData/box/export/overriddenExternalMethodWithSameNameMethod.kt");
@@ -0,0 +1,38 @@
// IGNORE_BACKEND: JS
// RUN_PLAIN_BOX_FUNCTION
// INFER_MAIN_MODULE
// MODULE: overriden-chain-non-export-intermediate
// FILE: lib.kt
@JsExport
abstract class A {
abstract fun foo(): String
abstract fun bar(): String
}
abstract class B : A() {
abstract fun baz(): String
override fun foo(): String = "foo"
}
@JsExport
class C : B() {
override fun bar(): String = "bar"
override fun baz(): String = "baz"
fun bay(): String = "bay"
}
// FILE: test.js
function box() {
return test(new this["overriden-chain-non-export-intermediate"].C());
}
function test(c) {
if (c.foo() === "foo" && c.bar() === "bar" && c.bay() == "bay") return "OK"
return "fail"
}