[JS IR] Add compiler argument about lazy initialisation
^KT-43222 fixed
This commit is contained in:
@@ -378,7 +378,7 @@ private val propertyLazyInitLoweringPhase = makeBodyLoweringPhase(
|
||||
private val removeInitializersForLazyProperties = makeDeclarationTransformerPhase(
|
||||
::RemoveInitializersForLazyProperties,
|
||||
name = "RemoveInitializersForLazyProperties",
|
||||
description = "Make property init as lazy"
|
||||
description = "Remove property initializers if they was initialised lazily"
|
||||
)
|
||||
|
||||
private val propertyAccessorInlinerLoweringPhase = makeBodyLoweringPhase(
|
||||
|
||||
+9
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.ir.builders.declarations.buildField
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrElementBase
|
||||
import org.jetbrains.kotlin.ir.expressions.*
|
||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys.PROPERTY_LAZY_INITIALISATION
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import kotlin.collections.component1
|
||||
import kotlin.collections.component2
|
||||
@@ -43,6 +44,10 @@ class PropertyLazyInitLowering(
|
||||
get() = context.fileToPurenessInitializers
|
||||
|
||||
override fun lower(irBody: IrBody, container: IrDeclaration) {
|
||||
if (context.configuration[PROPERTY_LAZY_INITIALISATION] != true) {
|
||||
return
|
||||
}
|
||||
|
||||
if (container !is IrSimpleFunction && container !is IrField && container !is IrProperty)
|
||||
return
|
||||
|
||||
@@ -216,6 +221,10 @@ class RemoveInitializersForLazyProperties(
|
||||
get() = context.fileToPurenessInitializers
|
||||
|
||||
override fun transformFlat(declaration: IrDeclaration): List<IrDeclaration>? {
|
||||
if (context.configuration[PROPERTY_LAZY_INITIALISATION] != true) {
|
||||
return null
|
||||
}
|
||||
|
||||
if (declaration !is IrField) return null
|
||||
|
||||
val file = declaration.parent as? IrFile ?: return null
|
||||
|
||||
Reference in New Issue
Block a user