JS backend: fix translation when statement -- now WhenTranslator returns JsBlock instead of hackish adding statements to context block.

It fixed the compiler crashing when translating `for`/`when`/`if` with `when` statement(KT-5234) and KT-5058.

 #KT-5234 fixed
 #EA-57346 fixed
 #KT-5058 fixed
This commit is contained in:
Michael Nedzelsky
2014-06-18 12:55:40 +04:00
committed by Zalim Bashorov
parent a94f12d8fe
commit 209315baad
8 changed files with 103 additions and 2 deletions
@@ -0,0 +1,25 @@
package foo
fun test():Any {
val a: Any = "OK"
val f: Any =
if (true) {
when {
false -> "1"
((a as? String)?.size ?: 0 > 0) -> a
else -> "2"
}
}
else {
"3"
}
return f
}
fun box(): Boolean {
var result = test()
return result == "OK";
}