JS: don't emit short circuit operators for boolean and/or

See KT-21004
This commit is contained in:
Alexey Andreev
2017-10-30 14:52:43 +03:00
parent 16b9a376b6
commit ec53f9b254
3 changed files with 39 additions and 7 deletions
@@ -0,0 +1,22 @@
// EXPECTED_REACHABLE_NODES: 1135
var log = ""
fun foo(a: Boolean, b: () -> Boolean): Boolean = a or b()
fun bar(a: Boolean, b: () -> Boolean): Boolean = a and b()
fun box(): String {
if (!foo(true) { log += "1"; false }) return "fail1"
if (!foo(true) { log += "2"; true }) return "fail2"
if (foo(false) { log += "3"; false }) return "fail3"
if (!foo(false) { log += "4"; true }) return "fail4"
if (bar(true) { log += "5"; false }) return "fail5"
if (!bar(true) { log += "6"; true }) return "fail6"
if (bar(false) { log += "7"; false }) return "fail7"
if (bar(false) { log += "8"; true }) return "fail8"
if (log != "12345678") return "fail log: $log"
return "OK"
}