From 0e25a5ea82fc0e129e14984fd2476b1ee27b93b4 Mon Sep 17 00:00:00 2001 From: Sergey Mashkov Date: Thu, 30 Jul 2015 15:58:07 +0300 Subject: [PATCH] JS: arrayToString should use toString() instead of direct join to handle nulls properly #KT-8663 Fixed --- js/js.translator/testData/kotlin_lib.js | 4 ++-- libraries/stdlib/test/collections/CollectionTest.kt | 4 ++++ libraries/stdlib/test/collections/ListSpecificTest.kt | 4 ++++ libraries/stdlib/test/collections/ReversedViewsTest.kt | 4 ++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/js/js.translator/testData/kotlin_lib.js b/js/js.translator/testData/kotlin_lib.js index 0bd926b3326..166ee2e1449 100644 --- a/js/js.translator/testData/kotlin_lib.js +++ b/js/js.translator/testData/kotlin_lib.js @@ -96,7 +96,7 @@ }; Kotlin.arrayToString = function (a) { - return "[" + a.join(", ") + "]"; + return "[" + a.map(Kotlin.toString).join(", ") + "]"; }; Kotlin.compareTo = function (a, b) { @@ -618,7 +618,7 @@ return this.array.slice(0); }, toString: function () { - return "[" + this.array.join(", ") + "]"; + return Kotlin.arrayToString(this.array); }, toJSON: function () { return this.array; diff --git a/libraries/stdlib/test/collections/CollectionTest.kt b/libraries/stdlib/test/collections/CollectionTest.kt index ad60d7dd3c2..5a4ed907009 100644 --- a/libraries/stdlib/test/collections/CollectionTest.kt +++ b/libraries/stdlib/test/collections/CollectionTest.kt @@ -665,5 +665,9 @@ class CollectionTest { compare(linkedMapOf(2 to 3), mapOf(2 to 3)) { mapBehavior() } } + test fun toStringTest() { + // we need toString() inside pattern because of KT-8666 + assertEquals("[1, a, null, ${Long.MAX_VALUE.toString()}]", listOf(1, "a", null, Long.MAX_VALUE).toString()) + } } diff --git a/libraries/stdlib/test/collections/ListSpecificTest.kt b/libraries/stdlib/test/collections/ListSpecificTest.kt index b494c742724..7d2aa49ab43 100644 --- a/libraries/stdlib/test/collections/ListSpecificTest.kt +++ b/libraries/stdlib/test/collections/ListSpecificTest.kt @@ -60,4 +60,8 @@ class ListSpecificTest { assertEquals(3, list.size()) assertEquals("beverage,location,name", list.join(",")) } + + Test fun testNullToString() { + assertEquals("[null]", listOf(null).toString()) + } } diff --git a/libraries/stdlib/test/collections/ReversedViewsTest.kt b/libraries/stdlib/test/collections/ReversedViewsTest.kt index 4df6351d8d2..40a67d90fd3 100644 --- a/libraries/stdlib/test/collections/ReversedViewsTest.kt +++ b/libraries/stdlib/test/collections/ReversedViewsTest.kt @@ -26,6 +26,10 @@ import org.junit.Test as test class ReversedViewsTest { + test fun testNullToString() { + assertEquals("[null]", listOf(null).asReversed().toString()) + } + test fun testBehavior() { val original = listOf(2L, 3L, Long.MAX_VALUE) val reversed = original.reverse()