[JS Legacy] For Unit Elvis don't forget to generate code for the RHS

^KT-53780 Fixed
This commit is contained in:
Sergej Jaskiewicz
2022-09-01 19:29:17 +02:00
committed by Space
parent 38d0105e74
commit f07163125b
2 changed files with 13 additions and 0 deletions
@@ -151,6 +151,7 @@ public final class BinaryOperationTranslator extends AbstractTranslator {
else {
result = new JsNullLiteral();
JsExpression testExpression = TranslationUtils.isNullCheck(leftExpression);
rightBlock.getStatements().add(rightExpression.makeStmt());
ifStatement = JsAstUtils.newJsIf(testExpression, rightBlock);
}
ifStatement.setSource(expression);
@@ -10,6 +10,15 @@ val global_b = A(2)
fun nullFun(value: Boolean): Any? = if (value) null else global_a
fun padding(right: Int, left: Int) {
++sideEffect
}
fun setSideEffect(newValue: Int): Int {
sideEffect = newValue
return sideEffect
}
fun box(): String {
nullFun(false) ?: global_b
@@ -19,5 +28,8 @@ fun box(): String {
assertEquals(global_b, nullFun(true) ?: try { ++sideEffect; global_b } finally {}, "true, global_b")
assertEquals(1, sideEffect, "true, global_b side effect")
nullFun(true) ?: padding(left = setSideEffect(10), right = setSideEffect(42))
assertEquals(43, sideEffect)
return "OK"
}