feat(Escaped Identifiers): add ability to use any symbol wrapped in back ticks.
This commit is contained in:
+47
@@ -0,0 +1,47 @@
|
||||
// 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"
|
||||
}
|
||||
Reference in New Issue
Block a user