Files
kotlin-fork/js/js.translator/testData/box/escapedIdentifiers/classLikeMemberFieldMangling.kt
T

47 lines
1.2 KiB
Kotlin
Vendored

// IGNORE_BACKEND: JS
// !LANGUAGE: +JsAllowInvalidCharsIdentifiersEscaping
package foo
@JsExport()
class A {
val `#invalid@char value`: Int = 41
val __invalid_char_value: Int = 23
var `--invalud char@var`: String = "A: before"
}
class B {
val `#invalid@char value`: Int = 42
val __invalid_char_value: Int = 24
var `--invalud char@var`: String = "B: before"
}
fun box(): String {
val a = A()
val b = B()
assertEquals(23, a.__invalid_char_value)
assertEquals(24, b.__invalid_char_value)
assertEquals(41, a.`#invalid@char value`)
assertEquals(42, b.`#invalid@char value`)
assertEquals("A: before", a.`--invalud char@var`)
assertEquals("B: before", b.`--invalud char@var`)
a.`--invalud char@var` = "A: after"
b.`--invalud char@var` = "B: after"
assertEquals("A: after", a.`--invalud char@var`)
assertEquals("B: after", b.`--invalud char@var`)
assertEquals(41, js("a['#invalid@char value']"))
assertEquals(js("undefined"), js("b['#invalid@char value']"))
assertEquals("A: after", js("a['--invalud char@var']"))
assertEquals(js("undefined"), js("b['--invalud char@var']"))
return "OK"
}