diff --git a/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt b/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt index ebd48231e99..80dcf6c9747 100644 --- a/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt +++ b/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt @@ -1926,8 +1926,7 @@ public actual fun DoubleArray.sort(fromIndex: Int = 0, toIndex: Int = size): Uni @Suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") public actual fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit { AbstractList.checkRangeIndexes(fromIndex, toIndex, size) - val subarray = this.asDynamic().subarray(fromIndex, toIndex).unsafeCast() - subarray.sort() + sortArrayWith(this.unsafeCast>(), fromIndex, toIndex, naturalOrder()) } /** diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt index 9b9aa36319e..f06b768c694 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt @@ -1357,21 +1357,19 @@ object ArrayOps : TemplateGroupBase() { """ } specialFor(ArraysOfPrimitives) { - if (primitive != PrimitiveType.Long) { - body { + body { + if (primitive == PrimitiveType.Char && target.backend == Backend.IR || primitive == PrimitiveType.Long) { + """ + AbstractList.checkRangeIndexes(fromIndex, toIndex, size) + sortArrayWith(this.unsafeCast>(), fromIndex, toIndex, naturalOrder()) + """ + } else { """ AbstractList.checkRangeIndexes(fromIndex, toIndex, size) val subarray = this.asDynamic().subarray(fromIndex, toIndex).unsafeCast() subarray.sort() """ } - } else { - body { - """ - AbstractList.checkRangeIndexes(fromIndex, toIndex, size) - sortArrayWith(this.unsafeCast>(), fromIndex, toIndex, naturalOrder()) - """ - } } } }