Files
kotlin-fork/js/js.translator/testData/box/dynamic/equals.kt
T
2018-09-12 09:49:25 +03:00

49 lines
1.0 KiB
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1324
package foo
object f {
var equalsCalled = 0
override fun equals(other: Any?): Boolean {
equalsCalled++
if (equalsCalled > 1) return false
return this === other
}
}
fun box(): String {
val a: dynamic = 12
var b: dynamic = 33.4
var c: dynamic = "text"
val d: dynamic = true
val v: dynamic = 42
val tt: dynamic = "object t {}"
testFalse { a == 34 }
testFalse { a == "34" }
testTrue { a == 12 }
testTrue { a == "12" }
testFalse { a != 12 }
testFalse { a != "12" }
testTrue { c == "text" }
testTrue { d == 1 }
testFalse { d == 0 }
testFalse { c != "text" }
testTrue { v == n }
testTrue { tt == t }
testFalse { v == bar }
testTrue { n != bar }
testFalse { a.equals(34) }
testFalse { a.equals("34") }
testTrue { a.equals(12) }
testFalse { a.equals("12") }
val ff: dynamic = f
testFalse { ff.equals(v) }
assertEquals(1, f.equalsCalled)
return "OK"
}