Files
kotlin-fork/js/js.translator/testData/box/esModules/inline/inlinedObjectLiteralIsCheck.kt
T
2021-10-12 23:29:39 +03:00

36 lines
590 B
Kotlin
Vendored

// DONT_TARGET_EXACT_BACKEND: JS
// ES_MODULES
// FILE: main.kt
interface I {
fun ok(): String
}
inline fun ok(): I {
return object : I {
override fun ok() = "OK"
}
}
@JsName("convolutedOk")
@JsExport
inline fun convolutedOk(): I {
val fail = object : I {
override fun ok() = "fail"
}.ok()
return ok()
}
@JsExport
fun testOk(ok: Any): String {
if (ok !is I) return "fail"
return ok.ok()
}
// FILE: entry.mjs
// ENTRY_ES_MODULE
import { convolutedOk, testOk } from "./JS_TESTS/index.js";
console.assert(testOk(convolutedOk()) == "OK");