53 lines
925 B
Kotlin
Vendored
53 lines
925 B
Kotlin
Vendored
// DONT_TARGET_EXACT_BACKEND: JS
|
|
// ES_MODULES
|
|
// SPLIT_PER_MODULE
|
|
// EXPECTED_REACHABLE_NODES: 1287
|
|
// MODULE: lib
|
|
// FILE: lib.kt
|
|
|
|
package lib
|
|
|
|
fun foo() = 23
|
|
|
|
external fun bar(): Int = definedExternally
|
|
|
|
inline fun baz() = 99
|
|
|
|
inline fun callFoo() = foo()
|
|
|
|
inline fun buzz(): Int {
|
|
val o = object {
|
|
fun f() = 111
|
|
}
|
|
return o.f()
|
|
}
|
|
|
|
// FILE: lib.js
|
|
|
|
function bar() {
|
|
return 42;
|
|
}
|
|
|
|
// MODULE: main(lib)
|
|
// FILE: main.kt
|
|
|
|
package main
|
|
|
|
fun box(): String {
|
|
val a = lib.foo()
|
|
if (a != 23) return "fail: simple function: $a"
|
|
|
|
val b = lib.bar()
|
|
if (b != 42) return "fail: native function: $b"
|
|
|
|
val c = lib.baz()
|
|
if (c != 99) return "fail: inline function: $c"
|
|
|
|
val d = lib.buzz()
|
|
if (d != 111) return "fail: inline function with object expression: $d"
|
|
|
|
val e = lib.callFoo()
|
|
if (e != 23) return "fail: inline function calling another function: $e"
|
|
|
|
return "OK"
|
|
} |