// DONT_TARGET_EXACT_BACKEND: WASM // WASM_MUTE_REASON: STDLIB_STRING_BUILDER // KJS_WITH_FULL_RUNTIME // WITH_RUNTIME import kotlin.test.assertEquals fun foo(vararg a: T) = a.size inline fun bar(block: () -> T): Array { assertEquals(2, foo(block(), block())) return arrayOf(block(), block(), block()) } inline fun empty() = arrayOf() fun box(): String { var i = 0 val a: Array = bar() { i++; i.toString() } assertEquals("345", a.joinToString("")) i = 0 val b: Array = bar() { i++ } assertEquals("234", b.map { it.toString() }.joinToString("")) val c: Array = empty() assertEquals(0, c.size) return "OK" }