Files
kotlin-fork/compiler/testData/codegen/boxWasmJsInterop/jsCode.kt
T

31 lines
972 B
Kotlin
Vendored

fun foo(x: Int, y: Int, z: String): Int = js("x + y + Number(z)")
val x: String = js("typeof 10")
fun fooDefault(x: Int = 1, y: Int? = 2, z: String? = "3"): Int =
js("x + y + Number(z)")
external interface EIA
external class EIB : EIA
val eia10: EIA = js("'10'")
val eib1000: EIB = js("'1000'")
fun <T : EIA> fooDefaultT(x: T? = null): T? =
js("x")
fun box(): String {
val res = foo(10, 20, z = "30")
if (res != 60) return "Wrong foo: $res"
if (x != "number") return "Wrong x: $x"
if (fooDefault() != 6) return "Wrong fooDefault 1"
if (fooDefault(x = 100, y = 200, z = "300") != 600) return "Wrong fooDefault 2"
if (fooDefault(y = 200, z = "300") != 501) return "Wrong fooDefault 3"
if (fooDefaultT<EIA>() != null) return "Wrong fooDefaultT 1"
if (fooDefaultT<EIA>(eia10).toString() != "10") return "Wrong fooDefaultT 2"
if (fooDefaultT<EIB>(eib1000).toString() != "1000") return "Wrong fooDefaultT 3"
return "OK"
}