| // 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" |
| } |