From 029b918ec914bf3ca844df83d9498666a832ee51 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 25 Feb 2016 22:23:58 +0300 Subject: [PATCH] Another CharSequence.repeat implementation in JS from polyfill of String.repeat. #KT-3064 --- js/js.libraries/src/core/stringsCode.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/js/js.libraries/src/core/stringsCode.kt b/js/js.libraries/src/core/stringsCode.kt index 0007091bedb..a7b456b9bf1 100644 --- a/js/js.libraries/src/core/stringsCode.kt +++ b/js/js.libraries/src/core/stringsCode.kt @@ -87,9 +87,17 @@ public fun CharSequence.repeat(n: Int): String { else -> { var result = "" if (!isEmpty()) { - val s = this.toString() - for (i in 1..n) { - result += s + var s = this.toString() + var count = n + while (true) { + if ((count and 1) == 1) { + result += s + } + count = count ushr 1 + if (count == 0) { + break + } + s += s } } return result