[JS IR] Support per-file mode and ES modules
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS
|
||||
// ES_MODULES
|
||||
// FILE: a.kt
|
||||
@file:JsModule("./externalPackage.mjs")
|
||||
package foo
|
||||
|
||||
external class A(x: Int) {
|
||||
val x: Int
|
||||
|
||||
fun foo(y: Int): Int = definedExternally
|
||||
|
||||
class Nested {
|
||||
val y: Int
|
||||
}
|
||||
}
|
||||
|
||||
external object B {
|
||||
val x: Int = definedExternally
|
||||
|
||||
fun foo(y: Int): Int = definedExternally
|
||||
}
|
||||
|
||||
external fun foo(y: Int): Int = definedExternally
|
||||
|
||||
external val bar: Int = definedExternally
|
||||
|
||||
// FILE: b.kt
|
||||
package foo
|
||||
|
||||
fun box(): String {
|
||||
val a = A(23)
|
||||
assertEquals(23, a.x)
|
||||
assertEquals(65, a.foo(42))
|
||||
|
||||
val nested = A.Nested()
|
||||
assertEquals(55, nested.y)
|
||||
|
||||
assertEquals(123, B.x)
|
||||
assertEquals(265, B.foo(142))
|
||||
|
||||
assertEquals(365, foo(42))
|
||||
assertEquals(423, bar)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user