From cd3fd60dd79ee81c25a3291df5ffc382bde99915 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Mon, 13 May 2019 16:10:53 +0300 Subject: [PATCH] [JS BE] Extract backend specific code from shared stdlib sources --- js/js.translator/testData/box/dynamic/iterator.kt | 1 - libraries/stdlib/js-v1/src/kotlin/currentBeMisc.kt | 4 +++- libraries/stdlib/js/src/kotlin/collections/ArraysJs.kt | 2 +- libraries/stdlib/js/src/kotlin/dynamic.kt | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/js/js.translator/testData/box/dynamic/iterator.kt b/js/js.translator/testData/box/dynamic/iterator.kt index 6ab95117ba2..3b59121b239 100644 --- a/js/js.translator/testData/box/dynamic/iterator.kt +++ b/js/js.translator/testData/box/dynamic/iterator.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1556 package foo diff --git a/libraries/stdlib/js-v1/src/kotlin/currentBeMisc.kt b/libraries/stdlib/js-v1/src/kotlin/currentBeMisc.kt index 76d90a53708..44a23ca119e 100644 --- a/libraries/stdlib/js-v1/src/kotlin/currentBeMisc.kt +++ b/libraries/stdlib/js-v1/src/kotlin/currentBeMisc.kt @@ -9,4 +9,6 @@ package kotlin.js // Used for js.translator/testData/box/number/mulInt32.kt @library @JsName("imulEmulated") -internal fun imul(x: Int, y: Int): Int = definedExternally \ No newline at end of file +internal fun imul(x: Int, y: Int): Int = definedExternally + +internal inline fun isArrayish(o: dynamic) = js("Kotlin").isArrayish(o) \ No newline at end of file diff --git a/libraries/stdlib/js/src/kotlin/collections/ArraysJs.kt b/libraries/stdlib/js/src/kotlin/collections/ArraysJs.kt index 3bdab90ae4e..8e7f2bb347d 100644 --- a/libraries/stdlib/js/src/kotlin/collections/ArraysJs.kt +++ b/libraries/stdlib/js/src/kotlin/collections/ArraysJs.kt @@ -14,7 +14,7 @@ internal fun Array.contentDeepHashCodeImpl(): Int { for (element in this) { val elementHash = when { element == null -> 0 - js("Kotlin").isArrayish(element) -> (element.unsafeCast>()).contentDeepHashCodeImpl() + isArrayish(element) -> (element.unsafeCast>()).contentDeepHashCodeImpl() element is UByteArray -> element.contentHashCode() element is UShortArray -> element.contentHashCode() diff --git a/libraries/stdlib/js/src/kotlin/dynamic.kt b/libraries/stdlib/js/src/kotlin/dynamic.kt index 600dd0e6216..58f66459397 100644 --- a/libraries/stdlib/js/src/kotlin/dynamic.kt +++ b/libraries/stdlib/js/src/kotlin/dynamic.kt @@ -38,7 +38,7 @@ public operator fun dynamic.iterator(): Iterator { return when { this["iterator"] != null -> this["iterator"]() - js("Kotlin").isArrayish(r) -> + isArrayish(r) -> r.unsafeCast>().iterator() else ->