JS: fix behaviour of char-returning functions with multiple inheritance
See KT-19772
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
// SKIP_MINIFICATION
|
||||
fun foo(): Char = '1'
|
||||
|
||||
val p1: Char = '2'
|
||||
|
||||
var p2: Char = '3'
|
||||
|
||||
var p3: Char = '4'
|
||||
get() = field + 1
|
||||
set(value) {
|
||||
field = value + 1
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var root = eval("_")
|
||||
|
||||
var r = typeOf(root.foo())
|
||||
if (r !== "number") return "fail1: $r"
|
||||
|
||||
r = typeOf(root.p1)
|
||||
if (r !== "number") return "fail2: $r"
|
||||
|
||||
r = typeOf(root.p2)
|
||||
if (r !== "number") return "fail3: $r"
|
||||
|
||||
r = typeOf(root.p3)
|
||||
if (r !== "number") return "fail4: $r"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun typeOf(x: dynamic): String = js("typeof x")
|
||||
@@ -0,0 +1,24 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1099
|
||||
private inline fun typeOf(x: dynamic): String = js("typeof x").unsafeCast<String>()
|
||||
|
||||
fun box(): String {
|
||||
val arr = charArrayOf('A')
|
||||
|
||||
var r = typeOf(arr.iterator().asDynamic().nextChar())
|
||||
if (r != "number") return "fail1: $r"
|
||||
r = typeOf(arr.iterator().asDynamic().next())
|
||||
if (r != "object") return "fail1a: $r"
|
||||
|
||||
var progression = 'A'..'Z'
|
||||
r = typeOf(progression.asDynamic().first)
|
||||
if (r != "number") return "fail2: $r"
|
||||
r = typeOf(progression.asDynamic().last)
|
||||
if (r != "number") return "fail3: $r"
|
||||
|
||||
r = typeOf(Char.asDynamic().MIN_HIGH_SURROGATE)
|
||||
if (r != "number") return "fail4: $r"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun getInt() = 65
|
||||
Reference in New Issue
Block a user