[K/JS] Eliminate duplication of init block inside exported ES-classes ^KT-58246 Fixed
This commit is contained in:
@@ -1848,6 +1848,12 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
|
||||
public void testAllFilesPresentInExport() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/box/esModules/export"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInitBlock.kt")
|
||||
public void testExportClassWithInitBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportClassWithInitBlock.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@@ -2096,6 +2102,12 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
|
||||
runTest("js/js.translator/testData/box/export/exportClassPropertiesInDifferentCombinations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInitBlock.kt")
|
||||
public void testExportClassWithInitBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/box/export/exportClassWithInitBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInternal.kt")
|
||||
public void testExportClassWithInternal() throws Exception {
|
||||
|
||||
+12
@@ -2189,6 +2189,12 @@ public class FirJsBoxTestGenerated extends AbstractFirJsBoxTest {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportAllFile.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInitBlock.kt")
|
||||
public void testExportClassWithInitBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportClassWithInitBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportEnumClass.kt")
|
||||
public void testExportEnumClass() throws Exception {
|
||||
@@ -2724,6 +2730,12 @@ public class FirJsBoxTestGenerated extends AbstractFirJsBoxTest {
|
||||
runTest("js/js.translator/testData/box/export/exportClassPropertiesInDifferentCombinations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInitBlock.kt")
|
||||
public void testExportClassWithInitBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/box/export/exportClassWithInitBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInternal.kt")
|
||||
public void testExportClassWithInternal() throws Exception {
|
||||
|
||||
+12
@@ -2295,6 +2295,12 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportAllFile.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInitBlock.kt")
|
||||
public void testExportClassWithInitBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportClassWithInitBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportEnumClass.kt")
|
||||
public void testExportEnumClass() throws Exception {
|
||||
@@ -2830,6 +2836,12 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test {
|
||||
runTest("js/js.translator/testData/box/export/exportClassPropertiesInDifferentCombinations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInitBlock.kt")
|
||||
public void testExportClassWithInitBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/box/export/exportClassWithInitBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInternal.kt")
|
||||
public void testExportClassWithInternal() throws Exception {
|
||||
|
||||
+12
@@ -2189,6 +2189,12 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportAllFile.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInitBlock.kt")
|
||||
public void testExportClassWithInitBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportClassWithInitBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportEnumClass.kt")
|
||||
public void testExportEnumClass() throws Exception {
|
||||
@@ -2724,6 +2730,12 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
|
||||
runTest("js/js.translator/testData/box/export/exportClassPropertiesInDifferentCombinations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInitBlock.kt")
|
||||
public void testExportClassWithInitBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/box/export/exportClassWithInitBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInternal.kt")
|
||||
public void testExportClassWithInternal() throws Exception {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1252
|
||||
// IGNORE_BACKEND: JS
|
||||
// RUN_PLAIN_BOX_FUNCTION
|
||||
// INFER_MAIN_MODULE
|
||||
// ES_MODULES
|
||||
|
||||
// KT-58246
|
||||
// MODULE: lib
|
||||
// FILE: lib.kt
|
||||
@JsExport
|
||||
var result = 0
|
||||
|
||||
@JsExport
|
||||
class Test {
|
||||
init {
|
||||
result += 1
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: entry.mjs
|
||||
// ENTRY_ES_MODULE
|
||||
import { result, Test } from "./exportClassWithInitBlock-lib_v5.mjs";
|
||||
|
||||
export function box() {
|
||||
new Test()
|
||||
|
||||
if (result.get() != 1) return "fail: init block didn't call or called more than 1 time"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1252
|
||||
// IGNORE_BACKEND: JS
|
||||
// RUN_PLAIN_BOX_FUNCTION
|
||||
// INFER_MAIN_MODULE
|
||||
|
||||
// KT-58246
|
||||
// MODULE: lib
|
||||
// FILE: lib.kt
|
||||
@JsExport
|
||||
var result = 0
|
||||
|
||||
@JsExport
|
||||
class Test {
|
||||
init {
|
||||
result += 1
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.js
|
||||
function box() {
|
||||
new this.lib.Test()
|
||||
|
||||
if (this.lib.result != 1) return "fail (called " + result + " times): init block didn't call or called more than 1 time"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user