[JS IR] Support per-file mode and ES modules
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS
|
||||
// ES_MODULES
|
||||
// MODULE: main
|
||||
// FILE: lib.kt
|
||||
@file:JsModule("./foo.mjs")
|
||||
package lib
|
||||
|
||||
@JsName("default")
|
||||
external val foo: Int
|
||||
|
||||
// FILE: lib2.kt
|
||||
@file:JsModule("./bar.mjs")
|
||||
package lib
|
||||
|
||||
@JsName("default")
|
||||
external fun foo(): Int
|
||||
|
||||
// FILE: main.kt
|
||||
package main
|
||||
|
||||
import lib.*
|
||||
|
||||
fun box(): String {
|
||||
if (foo != 23 && foo() != 23) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: foo.mjs
|
||||
|
||||
export default 23;
|
||||
|
||||
// FILE: bar.mjs
|
||||
|
||||
export default function() { return 23; };
|
||||
@@ -0,0 +1,32 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS
|
||||
// ES_MODULES
|
||||
// MODULE: main
|
||||
// FILE: lib.kt
|
||||
@file:JsModule("./foo.mjs")
|
||||
package lib
|
||||
|
||||
@JsName("test")
|
||||
external val foo: Int
|
||||
|
||||
// FILE: lib2.kt
|
||||
@file:JsModule("./bar.mjs")
|
||||
package lib
|
||||
|
||||
@JsName("test")
|
||||
external val bar: Int
|
||||
|
||||
// FILE: main.kt
|
||||
package main
|
||||
|
||||
import lib.*
|
||||
|
||||
fun box(): String {
|
||||
if (foo != 23 || bar != 45) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: foo.mjs
|
||||
export var test = 23;
|
||||
|
||||
// FILE: bar.mjs
|
||||
export var test = 45;
|
||||
Reference in New Issue
Block a user