| // DONT_TARGET_EXACT_BACKEND: WASM | |
| // WASM_MUTE_REASON: STDLIB_COLLECTIONS | |
| // KJS_WITH_FULL_RUNTIME | |
| public inline fun Int.times(body : () -> Unit) { | |
| var count = this; | |
| while (count > 0) { | |
| body() | |
| count-- | |
| } | |
| } | |
| fun calc() : Int { | |
| val a = ArrayList<()->Int>() | |
| 2.times { | |
| var j = 1 | |
| a.add({ j }) | |
| ++j | |
| } | |
| var sum = 0 | |
| for (f in a) { | |
| val g = f as () -> Int | |
| sum += g() | |
| } | |
| return sum | |
| } | |
| fun box() : String { | |
| val x = calc() | |
| return if (x == 4) "OK" else x.toString() | |
| } |