diff --git a/js/js.inliner/src/org/jetbrains/k2js/inline/util/sideEffectUtils.kt b/js/js.inliner/src/org/jetbrains/k2js/inline/util/sideEffectUtils.kt index 2e596132395..1925f5ce982 100644 --- a/js/js.inliner/src/org/jetbrains/k2js/inline/util/sideEffectUtils.kt +++ b/js/js.inliner/src/org/jetbrains/k2js/inline/util/sideEffectUtils.kt @@ -32,6 +32,7 @@ import com.google.dart.compiler.backend.js.ast.JsObjectLiteral import com.google.dart.compiler.backend.js.ast.JsPostfixOperation import com.google.dart.compiler.backend.js.ast.JsPrefixOperation import com.google.dart.compiler.backend.js.ast.RecursiveJsVisitor +import com.google.dart.compiler.backend.js.ast.JsBinaryOperator public fun canHaveSideEffect(x: JsExpression): Boolean { return with(SideEffectVisitor()) { @@ -63,11 +64,14 @@ private open class SideEffectVisitor() : RecursiveJsVisitor() { when (node) { is JsValueLiteral, is JsConditional, - is JsBinaryOperation, is JsArrayAccess, is JsArrayLiteral, - is JsNameRef -> true - else -> false + is JsNameRef -> + true + is JsBinaryOperation -> + !node.getOperator().isAssignment() + else -> + false } }