[Wasm] Support default parameter values in functions with js(code)
This commit is contained in:
committed by
Space Team
parent
d5e6102ed9
commit
d5b958f744
@@ -2,10 +2,30 @@ 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"
|
||||
}
|
||||
Reference in New Issue
Block a user