diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java index 7cc81a7d687..39df99d0a8a 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java @@ -4956,6 +4956,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { runTest("js/js.translator/testData/box/jsModule/externalClassWithDefaults.kt"); } + @TestMetadata("externalConstructor.kt") + public void testExternalConstructor() throws Exception { + runTest("js/js.translator/testData/box/jsModule/externalConstructor.kt"); + } + @TestMetadata("externalFunction.kt") public void testExternalFunction() throws Exception { runTest("js/js.translator/testData/box/jsModule/externalFunction.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index 1fefde04341..ff91e50bff9 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -4971,6 +4971,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { runTest("js/js.translator/testData/box/jsModule/externalClassWithDefaults.kt"); } + @TestMetadata("externalConstructor.kt") + public void testExternalConstructor() throws Exception { + runTest("js/js.translator/testData/box/jsModule/externalConstructor.kt"); + } + @TestMetadata("externalFunction.kt") public void testExternalFunction() throws Exception { runTest("js/js.translator/testData/box/jsModule/externalFunction.kt"); diff --git a/js/js.translator/testData/box/jsModule/externalConstructor.js b/js/js.translator/testData/box/jsModule/externalConstructor.js new file mode 100644 index 00000000000..9635593ae5a --- /dev/null +++ b/js/js.translator/testData/box/jsModule/externalConstructor.js @@ -0,0 +1,5 @@ +define('lib', [], function () { + return function (data) { + this.data = data + } +}) diff --git a/js/js.translator/testData/box/jsModule/externalConstructor.kt b/js/js.translator/testData/box/jsModule/externalConstructor.kt new file mode 100644 index 00000000000..a1992608b0a --- /dev/null +++ b/js/js.translator/testData/box/jsModule/externalConstructor.kt @@ -0,0 +1,22 @@ +package foo + +@JsModule("lib") +open external class A(data: String) { + constructor(data: Int) + constructor(data: Boolean) + + val data: Any +} + +class B(data: String) : A(data) + +class C(data: Int) : A(data) + +class D(data: Boolean) : A(data) + +fun box(): String { + assertEquals("13", B("13").data) + assertEquals(42, C(42).data) + assertEquals(true, D(true).data) + return "OK" +}