// http://youtrack.jetbrains.com/issue/KT-5253 // JS: generated wrong code when use `if` inside `when` package foo fun test(caseId: Int, value: Int, expected: Int) { var actual: Int = 0 when (caseId) { 2 -> if (value < 0) actual = -value 3 -> actual = if (value < 0) {-value} else value else -> throw Exception("Unexpected case: $caseId") } if (expected != actual) throw Exception("expected = $expected, actual = $actual") } fun box(): String { test(2, 33, 0) test(2, -1, 1) test(3, 23, 23) test(3, -3, 3) return "OK" }