diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIntrinsics.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIntrinsics.kt index 3897b24d20e..b9573374d44 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIntrinsics.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIntrinsics.kt @@ -288,7 +288,7 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC val doNotIntrinsifyAnnotationSymbol = context.symbolTable.referenceClass(context.getJsInternalClass("DoNotIntrinsify")) val jsFunAnnotationSymbol = context.symbolTable.referenceClass(context.getJsInternalClass("JsFun")) - val jsEagerInitializationAnnotationSymbol = context.symbolTable.referenceClass(context.getJsInternalClass("JsEagerInitialization")) + val jsEagerInitializationAnnotationSymbol = context.symbolTable.referenceClass(context.getJsInternalClass("EagerInitialization")) // TODO move CharSequence-related stiff to IntrinsifyCallsLowering val charSequenceClassSymbol = context.symbolTable.referenceClass(context.getClass(FqName("kotlin.CharSequence"))) diff --git a/compiler/testData/codegen/box/properties/eagerInitializationGlobal1.kt b/compiler/testData/codegen/box/properties/eagerInitializationGlobal1.kt index 0a69cf91e25..342ed685e77 100644 --- a/compiler/testData/codegen/box/properties/eagerInitializationGlobal1.kt +++ b/compiler/testData/codegen/box/properties/eagerInitializationGlobal1.kt @@ -9,7 +9,7 @@ var z2 = false // FILE: lib2.kt @OptIn(kotlin.ExperimentalStdlibApi::class) -@JsEagerInitialization +@EagerInitialization val x = foo() private fun foo(): Int { diff --git a/compiler/testData/codegen/box/properties/eagerInitializationGlobal2.kt b/compiler/testData/codegen/box/properties/eagerInitializationGlobal2.kt index fa627d577df..8c75d030dfc 100644 --- a/compiler/testData/codegen/box/properties/eagerInitializationGlobal2.kt +++ b/compiler/testData/codegen/box/properties/eagerInitializationGlobal2.kt @@ -9,7 +9,7 @@ var z2 = false // FILE: lib2.kt @OptIn(kotlin.ExperimentalStdlibApi::class) -@JsEagerInitialization +@EagerInitialization val x = run { z1 = true; 42 } // Won't be initialized (cause no function from the file will be called during [x] initialization). diff --git a/compiler/testData/codegen/box/properties/eagerInitializationGlobal3.kt b/compiler/testData/codegen/box/properties/eagerInitializationGlobal3.kt index 2a783d0cf3f..f43ae12d193 100644 --- a/compiler/testData/codegen/box/properties/eagerInitializationGlobal3.kt +++ b/compiler/testData/codegen/box/properties/eagerInitializationGlobal3.kt @@ -8,7 +8,7 @@ var z1 = false // FILE: lib2.kt @OptIn(kotlin.ExperimentalStdlibApi::class) -@JsEagerInitialization +@EagerInitialization val x = run { z1 = !z1; 42 } val y = run { 73 } diff --git a/js/js.translator/testData/box/kotlin.test/_common.kt b/js/js.translator/testData/box/kotlin.test/_common.kt index 088a15f37ce..5833eec7537 100644 --- a/js/js.translator/testData/box/kotlin.test/_common.kt +++ b/js/js.translator/testData/box/kotlin.test/_common.kt @@ -17,7 +17,7 @@ fun raise(name: String): Nothing { // Adapter should be initialized eagerly @Suppress("INVISIBLE_MEMBER") @OptIn(kotlin.ExperimentalStdlibApi::class) -@JsEagerInitialization +@EagerInitialization private val underscore = kotlin.test.setAdapter(object : FrameworkAdapter { override fun suite(name: String, ignored: Boolean, suiteFn: () -> Unit) { sortingContext.suite(name, ignored) { suiteFn() } diff --git a/libraries/stdlib/api/js-v1/kotlin.js.kt b/libraries/stdlib/api/js-v1/kotlin.js.kt index a209568b0e3..1879f48e564 100644 --- a/libraries/stdlib/api/js-v1/kotlin.js.kt +++ b/libraries/stdlib/api/js-v1/kotlin.js.kt @@ -193,6 +193,15 @@ public final external class Date { } } +@kotlin.ExperimentalStdlibApi +@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) +@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.PROPERTY}) +@kotlin.SinceKotlin(version = "1.6") +@kotlin.Deprecated(message = "This annotation is a temporal migration assistance and may be removed in the future releases, please consider filing an issue about the case where it is needed") +public final annotation class EagerInitialization : kotlin.Annotation { + public constructor EagerInitialization() +} + @kotlin.RequiresOptIn(level = Level.WARNING) @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @@ -225,14 +234,6 @@ public external interface JsClass { public abstract val name: kotlin.String { get; } } -@kotlin.ExperimentalStdlibApi -@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.PROPERTY}) -@kotlin.SinceKotlin(version = "1.6") -public final annotation class JsEagerInitialization : kotlin.Annotation { - public constructor JsEagerInitialization() -} - @kotlin.js.ExperimentalJsExport @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE}) diff --git a/libraries/stdlib/api/js/kotlin.js.kt b/libraries/stdlib/api/js/kotlin.js.kt index 7e0870c9fd2..547b8eb87c7 100644 --- a/libraries/stdlib/api/js/kotlin.js.kt +++ b/libraries/stdlib/api/js/kotlin.js.kt @@ -192,6 +192,15 @@ public final external class Date { } } +@kotlin.ExperimentalStdlibApi +@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) +@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.PROPERTY}) +@kotlin.SinceKotlin(version = "1.6") +@kotlin.Deprecated(message = "This annotation is a temporal migration assistance and may be removed in the future releases, please consider filing an issue about the case where it is needed") +public final annotation class EagerInitialization : kotlin.Annotation { + public constructor EagerInitialization() +} + @kotlin.RequiresOptIn(level = Level.WARNING) @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @@ -224,14 +233,6 @@ public external interface JsClass { public abstract val name: kotlin.String { get; } } -@kotlin.ExperimentalStdlibApi -@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.PROPERTY}) -@kotlin.SinceKotlin(version = "1.6") -public final annotation class JsEagerInitialization : kotlin.Annotation { - public constructor JsEagerInitialization() -} - @kotlin.js.ExperimentalJsExport @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE}) diff --git a/libraries/stdlib/common/src/kotlin/JsAnnotationsH.kt b/libraries/stdlib/common/src/kotlin/JsAnnotationsH.kt index 50641391f7a..18b98048dfa 100644 --- a/libraries/stdlib/common/src/kotlin/JsAnnotationsH.kt +++ b/libraries/stdlib/common/src/kotlin/JsAnnotationsH.kt @@ -63,14 +63,4 @@ public annotation class ExperimentalJsExport @Target(CLASS, PROPERTY, FUNCTION, FILE) @SinceKotlin("1.4") @OptionalExpectation -public expect annotation class JsExport() - -/** - * Forces a top-level property to be initialized eagerly, opposed to lazily on the first access to file and/or property. - */ -@ExperimentalStdlibApi -@Retention(AnnotationRetention.BINARY) -@Target(AnnotationTarget.PROPERTY) -@SinceKotlin("1.6") -@OptionalExpectation -public expect annotation class JsEagerInitialization \ No newline at end of file +public expect annotation class JsExport() \ No newline at end of file diff --git a/libraries/stdlib/js/src/kotlin/annotations.kt b/libraries/stdlib/js/src/kotlin/annotations.kt index ffae2ec98f9..850e120972c 100644 --- a/libraries/stdlib/js/src/kotlin/annotations.kt +++ b/libraries/stdlib/js/src/kotlin/annotations.kt @@ -199,4 +199,8 @@ public actual annotation class JsExport @Retention(AnnotationRetention.BINARY) @Target(AnnotationTarget.PROPERTY) @SinceKotlin("1.6") -public actual annotation class JsEagerInitialization +@Deprecated("This annotation is a temporal migration assistance and may be removed in the future releases, please consider filing an issue about the case where it is needed") +public annotation class EagerInitialization + +@Deprecated("It is necessary until bootstrap update", level = DeprecationLevel.HIDDEN) +internal annotation class JsEagerInitialization diff --git a/libraries/stdlib/wasm/stubs/jsStubs.kt b/libraries/stdlib/wasm/stubs/jsStubs.kt index 37b00845ff6..5cc316f6253 100644 --- a/libraries/stdlib/wasm/stubs/jsStubs.kt +++ b/libraries/stdlib/wasm/stubs/jsStubs.kt @@ -9,4 +9,5 @@ package kotlin.js @Retention(AnnotationRetention.BINARY) @Target(AnnotationTarget.PROPERTY) @SinceKotlin("1.6") -public actual annotation class JsEagerInitialization +@Deprecated("This annotation is a temporal migration assistance and may be removed in the future releases, please consider filing an issue about the case where it is needed") +public annotation class EagerInitialization