[JS IR BE] Refactor equals and compareTo lowering

This commit is contained in:
Svyatoslav Kuzmich
2018-09-10 15:05:39 +03:00
parent 005955326f
commit b79dcbe8e6
19 changed files with 233 additions and 235 deletions
+5 -2
View File
@@ -20,10 +20,13 @@ fun compareTo(a: dynamic, b: dynamic): Int {
return primitiveCompareTo(a, b)
}
// TODO: Replace to a.unsafeCast<Comparable<*>>().compareTo(b) when bridge is implemented
return js("a.compareTo(b)").unsafeCast<Int>()
return compareToDoNotIntrinsicify(a, b)
}
// TODO: Use @DoNotIntrincify annotation
private fun <T : Comparable<T>> compareToDoNotIntrinsicify(a: Comparable<T>, b: T) =
a.compareTo(b)
fun primitiveCompareTo(a: dynamic, b: dynamic): Int =
js("a < b ? -1 : a > b ? 1 : 0").unsafeCast<Int>()