[WASM] Support nullable types for external functions

This commit is contained in:
Igor Yakovlev
2022-09-13 20:37:06 +02:00
parent dc57ccdf76
commit 081cd4a4a8
8 changed files with 519 additions and 24 deletions
@@ -37,6 +37,16 @@ external fun getJsNullAsNonNullable(): EI
@JsFun("() => undefined")
external fun getJsUndefinedAsNonNullable(): EI
inline fun checkNPE(body: () -> Unit) {
var throwed = false
try {
body()
} catch (e: NullPointerException) {
throwed = true
}
assertTrue(throwed)
}
fun box(): String {
val jsNull = getNull()
val jsUndefined = getUndefined()
@@ -55,11 +65,8 @@ fun box(): String {
assertFalse(isJsUndefined(null))
assertTrue(isJsUndefined(jsUndefined))
// TODO: Should these fail?
val n2 = getJsNullAsNonNullable()
val ud2 = getJsUndefinedAsNonNullable()
assertTrue(isJsNull(n2))
assertTrue(isJsUndefined(ud2))
checkNPE(::getJsNullAsNonNullable)
checkNPE(::getJsUndefinedAsNonNullable)
return "OK"
}