blob: 1b6abc5fe6686e442f165d3f54ab1df8dc67a972 [file]
// TARGET_BACKEND: WASM
// RUN_THIRD_PARTY_OPTIMIZER
// MODULE: lib
// FILE: externals.js
function foo(f) {
return f(4, 5);
}
// FILE: lib.kt
external fun foo(f: (Int, Int) -> Int): Int
fun noKotlinClosureCallHelpersExportedFromLib(): Boolean =
js("Object.keys(wasmExports).every((key) => !key.startsWith('__callFunction_'))")
fun runLibClosureCallHelperTest(): String? {
if (foo { x, y -> x + y } != 9) return "foo"
if (!noKotlinClosureCallHelpersExportedFromLib()) return "__callFunction_* helper leaked from lib wasmExports"
return null
}
// MODULE: main(lib)
// FILE: main.kt
fun box(): String =
runLibClosureCallHelperTest()?.let { "Fail: $it" } ?: "OK"