From dd6bc100eda62407c9308ce6192d1f0949ccb234 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Sun, 19 May 2019 20:49:26 +0300 Subject: [PATCH] [JS IR BE] Don't detach assignment operator from receiver --- .../kotlin/ir/backend/js/lower/BlockDecomposerLowering.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/BlockDecomposerLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/BlockDecomposerLowering.kt index 119cece156d..d7c6c489e43 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/BlockDecomposerLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/BlockDecomposerLowering.kt @@ -596,10 +596,9 @@ class BlockDecomposerTransformer(private val context: JsIrBackendContext) : IrEl receiver is IrDynamicMemberExpression || (receiver is IrDynamicOperatorExpression && receiver.operator == IrDynamicOperator.ARRAY_ACCESS) - val operatorDependsOnMemberAccess = - operator.isAssignmentOperator || operator == IrDynamicOperator.INVOKE + val operatorDependsOnMemberAccess = (operator == IrDynamicOperator.INVOKE) - return receiverIsMemberAccess && operatorDependsOnMemberAccess + return operator.isAssignmentOperator || (receiverIsMemberAccess && operatorDependsOnMemberAccess) } override fun visitContainerExpression(expression: IrContainerExpression): IrExpression {