[JS IR] Fast return in boolean externals lowering

- Put fqname when available instead of just name
This commit is contained in:
Ilya Goncharov
2021-06-25 18:33:35 +03:00
committed by Space
parent b03af384af
commit b678cc3c90
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.expressions.IrBody
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.interpreter.toIrConst
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
@@ -27,6 +28,7 @@ class BooleanPropertyInExternalLowering(
) : BodyLoweringPass {
override fun lower(irBody: IrBody, container: IrDeclaration) {
if (!context.safeExternalBoolean && context.safeExternalBooleanDiagnostic == null) return
irBody.transformChildrenVoid(
ExternalBooleanPropertyProcessor(
context
@@ -78,7 +80,10 @@ class BooleanPropertyInExternalLowering(
val call = JsIrBuilder.buildCall(
target = function!!
).apply {
putValueArgument(0, property.name.identifier.toIrConst(context.irBuiltIns.stringType))
putValueArgument(
0,
property.fqNameWhenAvailable?.asString().toIrConst(context.irBuiltIns.stringType)
)
putValueArgument(1, irGet(tmp))
}