62 lines
894 B
Kotlin
Vendored
62 lines
894 B
Kotlin
Vendored
// DONT_TARGET_EXACT_BACKEND: JS
|
|
// ES_MODULES
|
|
// FILE: a.kt
|
|
@file:JsModule("./a.mjs")
|
|
package a
|
|
|
|
external class A {
|
|
fun foo(): String
|
|
}
|
|
|
|
external fun bar(): Int
|
|
|
|
external val prop: Int
|
|
|
|
// FILE: b.kt
|
|
@file:JsModule("./b.mjs")
|
|
package b
|
|
|
|
external class A {
|
|
fun foo(): String
|
|
}
|
|
|
|
external fun bar(): Int
|
|
|
|
external var prop: Int
|
|
|
|
// FILE: main.kt
|
|
|
|
import a.A as O
|
|
import b.A as K
|
|
|
|
fun box(): String {
|
|
if (a.bar() != 1) return "fail 1"
|
|
if (a.prop != 10) return "fail 2"
|
|
if (b.bar() != 2) return "fail 3"
|
|
if (b.prop != 20) return "fail 4"
|
|
|
|
return O().foo() + K().foo()
|
|
}
|
|
|
|
// FILE: a.mjs
|
|
export function A() {}
|
|
|
|
A.prototype.foo = function () {
|
|
return "O";
|
|
};
|
|
|
|
export function bar() { return 1; }
|
|
|
|
export let prop = 10
|
|
|
|
|
|
// FILE: b.mjs
|
|
export function A() {}
|
|
|
|
A.prototype.foo = function () {
|
|
return "K";
|
|
};
|
|
|
|
export function bar() { return 2; }
|
|
|
|
export let prop = 20; |