JS IR: Long

This commit is contained in:
Anton Bannykh
2018-07-04 15:15:06 +03:00
parent 4872c97929
commit 65846d783d
10 changed files with 787 additions and 32 deletions
+7 -8
View File
@@ -6,17 +6,16 @@
package kotlin.js
fun equals(obj1: dynamic, obj2: dynamic): Boolean {
if (obj1 == null) {
return obj2 == null
if (js("obj1 == null").unsafeCast<Boolean>()) {
return js("obj2 == null").unsafeCast<Boolean>();
}
if (obj2 == null) {
return false
if (js("obj2 == null").unsafeCast<Boolean>()) {
return false;
}
return js("""
if (typeof obj1 === "object" && typeof obj1.equals === "function") {
return obj1.equals(obj2);
if (typeof obj1 === "object" && typeof obj1.equals_Any_ === "function") {
return obj1.equals_Any_(obj2);
}
if (obj1 !== obj1) {
@@ -31,7 +30,7 @@ fun equals(obj1: dynamic, obj2: dynamic): Boolean {
}
fun toString(o: dynamic): String = when {
o == null -> "null"
js("o == null").unsafeCast<Boolean>() -> "null"
isArrayish(o) -> "[...]"
else -> js("o.toString()").unsafeCast<String>()
}