diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt index a94f983df19..a8c8c58e240 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt @@ -343,8 +343,7 @@ class EnumEntryInstancesLowering(val context: JsIrBackendContext) : DeclarationT isStatic = true }.apply { parent = irClass - val builder = context.createIrBuilder(irClass.symbol) - initializer = builder.run { irExprBody(irImplicitCast(irNull(), type)) } + initializer = null } enumEntry.correspondingField = result @@ -407,8 +406,7 @@ class EnumClassCreateInitializerLowering(val context: JsIrBackendContext) : Decl isStatic = true }.apply { parent = irClass - val builder = context.createIrBuilder(irClass.symbol) - initializer = builder.run { irExprBody(irBoolean(false)) } + initializer = null } private fun createInitEntryInstancesFun(irClass: IrClass, entryInstancesInitializedField: IrField): IrSimpleFunction = 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 6da7de2f944..7cc81a7d687 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 @@ -6804,6 +6804,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/box/regression"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true); } + @TestMetadata("enumEntryInitOrder.kt") + public void testEnumEntryInitOrder() throws Exception { + runTest("js/js.translator/testData/box/regression/enumEntryInitOrder.kt"); + } + @TestMetadata("kt2470.kt") public void testKt2470() throws Exception { runTest("js/js.translator/testData/box/regression/kt2470.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 831094f7fc2..1fefde04341 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 @@ -6859,6 +6859,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/box/regression"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS, true); } + @TestMetadata("enumEntryInitOrder.kt") + public void testEnumEntryInitOrder() throws Exception { + runTest("js/js.translator/testData/box/regression/enumEntryInitOrder.kt"); + } + @TestMetadata("kt2470.kt") public void testKt2470() throws Exception { runTest("js/js.translator/testData/box/regression/kt2470.kt"); diff --git a/js/js.translator/testData/box/regression/enumEntryInitOrder.kt b/js/js.translator/testData/box/regression/enumEntryInitOrder.kt new file mode 100644 index 00000000000..bf9c3073bb0 --- /dev/null +++ b/js/js.translator/testData/box/regression/enumEntryInitOrder.kt @@ -0,0 +1,10 @@ +// EXPECTED_REACHABLE_NODES: 1309 +// KJS_WITH_FULL_RUNTIME + +enum class E { A, B } +val x: Any = E.A + +fun box(): String { + if (x !== E.A) return "Fail" + return "OK" +} \ No newline at end of file