blob: dfdd3bf4bbe6e6d68d65348b717626b7c84357f6 [file] [log] [blame]
fun notNullString(x: String) {
js("if (x !== 'abc') throw 'error'")
}
fun nullString(x: String?) {
js("if (x !== 'abc') throw 'error'")
}
fun null2String(x: String?) {
js("if (x !== null) throw 'error'")
}
fun testString() {
notNullString("abc")
nullString("abc")
null2String(null)
}
external interface ExternRef
fun notNullExternRef(x: ExternRef) {
js("if (x !== 'abc') throw 'error'")
}
fun nullExternRef(x: ExternRef?) {
js("if (x !== 'abc') throw 'error'")
}
fun null2ExternRef(x: ExternRef?) {
js("if (x !== null) throw 'error'")
}
fun getExternRef(): ExternRef =
js("'abc'")
fun testExterRef() {
val externRef = getExternRef()
notNullExternRef(externRef)
nullExternRef(externRef)
null2ExternRef(null)
}
fun notNullInt(x: Int) {
js("if (x !== 123) throw 'error'")
}
fun nullInt(x: Int?) {
js("if (x !== 123) throw 'error'")
}
fun null2Int(x: Int?) {
js("if (x !== null) throw 'error'")
}
fun testInt() {
notNullInt(123)
nullInt(123)
null2Int(null)
}
fun notNullBoolean(x: Boolean) {
js("if (x !== true) throw 'error'")
}
fun nullBoolean(x: Boolean?) {
js("if (x !== true) throw 'error'")
}
fun null2Boolean(x: Boolean?) {
js("if (x !== null) throw 'error'")
}
fun testBoolean() {
notNullBoolean(true)
nullBoolean(true)
null2Boolean(null)
}
fun notNullShort(x: Short) {
js("x == 123")
}
fun nullShort(x: Short?) {
js("if (x !== 123) throw 'error'")
}
fun null2Short(x: Short?) {
js("if (x !== null) throw 'error'")
}
fun testShort() {
notNullShort(123.toShort())
nullShort(123.toShort())
null2Short(null)
}
fun notNullFloat(x: Float) {
js("if (x !== 123.5) throw 'error'")
}
fun nullFloat(x: Float?) {
js("if (x !== 123.5) throw 'error'")
}
fun null2Float(x: Float?) {
js("if (x !== null) throw 'error'")
}
fun testFloat() {
notNullFloat(123.5f)
nullFloat(123.5f)
null2Float(null)
}
fun box(): String {
testString()
testExterRef()
testInt()
testBoolean()
testShort()
testFloat()
return "OK"
}