From 1dbe7d12a2b3c4fd2686df776d4fd117196ea648 Mon Sep 17 00:00:00 2001 From: Shagen Ogandzhanian Date: Fri, 8 Jan 2021 18:38:23 +0100 Subject: [PATCH] Simplify concatElements resolution for size=0 and size=1 cases ^KT-40689 fixed --- .../ir/backend/js/transformers/irToJs/jsAstUtils.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/jsAstUtils.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/jsAstUtils.kt index fae36a97a9e..2b818a75e87 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/jsAstUtils.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/jsAstUtils.kt @@ -240,15 +240,18 @@ fun argumentsWithVarargAsSingleArray( } } - if (arraysForConcat.isNotEmpty() || concatElements.isEmpty()) { + if (arraysForConcat.isNotEmpty()) { concatElements.add(JsArrayLiteral(arraysForConcat)) } - return concatElements.singleOrNull() - ?: JsInvocation( + return when (concatElements.size) { + 0 -> JsArrayLiteral() + 1 -> concatElements[0] + else -> JsInvocation( JsNameRef("concat", concatElements.first()), concatElements.drop(1) ) + } } fun IrFunction.varargParameterIndex() = valueParameters.indexOfFirst { it.varargElementType != null }