[JS IR] Support per-file mode and ES modules

This commit is contained in:
Svyatoslav Kuzmich
2021-02-23 15:44:06 +03:00
parent f479ac5c3a
commit 3f8dce4b53
140 changed files with 5136 additions and 609 deletions
@@ -0,0 +1,41 @@
// DONT_TARGET_EXACT_BACKEND: JS
// ES_MODULES
// MODULE: lib
// FILE: a.kt
@file:JsModule("./foo.mjs")
external fun fooF(): String
// FILE: b.kt
@file:JsModule("./bar.mjs")
external fun barF(): String
// FILE: c.kt
// RECOMPILE
fun dummyF() = "dummy"
// MODULE: main(lib)
// FILE: main.kt
fun box(): String {
val foo = fooF()
if (foo != "foo") return "fail1: $foo"
val bar = barF()
if (bar != "bar") return "fail2: $bar"
return "OK"
}
// FILE: foo.mjs
export function fooF() {
return "foo";
}
// FILE: bar.mjs
export function barF() {
return "bar";
}