blob: af32591adbd913a639445e01fb8efe86918ed1a1 [file]
// TARGET_BACKEND: JS_IR, JS_IR_ES6
// FILE: lib.kt
fun `+`(a: Int, b: Int) = a + b
@JsName("minus")
fun `-`(a: Int, b: Int) = a - b
inline fun <reified `-`> test5(): String = `-`::class.simpleName!!
inline fun <reified `-`> test6(x: Any): Boolean = x is `-`
class OK
// FILE: main.kt
fun test1(): Int {
val ` x ` = 23
val `*` = 3
return `-`(` x `, `*`)
}
fun test2(`p 1`: Int, `.p 2`: Int) = `+`(`p 1`, `.p 2`)
fun test3(): String {
val `#` = "K"
class ` `(private val `::`: String) {
private fun `@`() = `::` + `#`
operator fun invoke() = `@`()
}
return ` `("O")()
}
fun test4(): String {
val `1(¢)` = "OK"
fun `[£]`() = `1(¢)`
return `[£]`()
}
fun box(): String {
if (test1() != 20) return "fail1"
if (test2(10, 13) != 23) return "fail2"
if (test3() != "OK") return "fail3"
if (test4() != "OK") return "fail4"
if (test5<OK>() != "OK") return "fail5"
if (!test6<String>("foo")) return "fail6"
return "OK"
}