Files
kotlin-fork/js/js.translator/testData/box/keep/keepNestedClassIfKeptTopLevelClass.kt
T
Ilya Goncharov d203dc35bf [JS IR] Add to IR keep possibility similar to legacy-dce one
It helps to:

- keep declarations even if they are not reachable and not exported
- not minify names of not exported declarations

Compiler argument: -Xir-keep=A,B

Can be used for top-level declarations or for member

^KT-54118 fixed
2022-09-20 16:06:17 +00:00

44 lines
763 B
Kotlin
Vendored

// TARGET_BACKEND: JS_IR
// ONLY_IR_DCE
// RUN_PLAIN_BOX_FUNCTION
// INFER_MAIN_MODULE
// KEEP: A
// MODULE: keep_nested_class_if_kept_top_level_class
// FILE: lib.kt
class A {
fun foo(): String {
return "foo"
}
fun bar(): String {
return "bar"
}
class B {
fun baz() = "baz"
}
}
@JsExport
fun barA(): A {
return A()
}
@JsExport
fun bar(): A.B {
return A.B()
}
// FILE: test.js
function box() {
var a = this["keep_nested_class_if_kept_top_level_class"].barA()
var b = this["keep_nested_class_if_kept_top_level_class"].bar()
if (a.foo_26di_k$() != "foo") return "fail 1"
if (a.bar_232r_k$() != "bar") return "fail 2"
if (b.baz_232z_k$() != "baz") return "fail 3"
return "OK"
}