Sanitize names for backing fields and private declarations in JS BE

See KT-1816
This commit is contained in:
Alexey Andreev
2017-09-07 11:52:08 +03:00
parent 206369c088
commit 502c51ccff
4 changed files with 58 additions and 1 deletions
@@ -0,0 +1,25 @@
// EXPECTED_REACHABLE_NODES: 1006
class X(private val x: String) {
operator fun getValue(thisRef: Any?, property: Any): String = x
}
class C {
@JsName("a") val `;`: String by X("foo")
private val `.`: String by X("bar")
private val `@`: String by X("baz")
fun bar(): String = `.`
fun baz(): String = `@`
}
fun box(): String {
val c = C()
if (c.`;` != "foo") return "fail1: ${c.`;`}"
if (c.bar() != "bar") return "fail2: ${c.bar()}"
if (c.baz() != "baz") return "fail3: ${c.baz()}"
return "OK"
}