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 }