Files
kotlin-fork/compiler/testData/codegen/boxWasmJsInterop/jsModule.kt
T
2023-01-13 21:58:34 +00:00

52 lines
973 B
Kotlin
Vendored

// ES_MODULES
// FILE: jsModule.mjs
let x = 10;
function f() { return 10; };
class C {
constructor(x) {
this.x = x;
}
}
export { x, f, C };
export default { defaultX: x, defaultF: f, defaultC: C };
// FILE: lib1.kt
@file:JsModule("./jsModule.mjs")
package named
external val x: Int
external fun f(): Int
external class C {
constructor(x: String)
val x: String
}
// FILE: lib2.kt
package default
@JsModule("./jsModule.mjs")
external object jsModule {
val defaultX: Int
fun defaultF(): Int
class defaultC {
constructor(x: String)
val x: String
}
}
// FILE: main.kt
fun box(): String {
if (named.x != 10) return "Fail1"
if (named.f() != 10) return "Fail2"
if (named.C("10").x != "10") return "Fail3"
if (default.jsModule.defaultX != 10) return "Fail4"
if (default.jsModule.defaultF() != 10) return "Fail5"
if (default.jsModule.defaultC("10").x != "10") return "Fail6"
return "OK"
}