From d71fa4831d8617d47fbd285667cfd54a7a0ff37d Mon Sep 17 00:00:00 2001 From: Shagen Ogandzhanian Date: Fri, 8 Jan 2021 04:27:30 +0100 Subject: [PATCH] Filter out empty arrays before concatentating ^KT-40689 fixed --- .../ir/backend/js/transformers/irToJs/jsAstUtils.kt | 8 +++++--- 1 file changed, 5 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 d410f230b7e..9ac5225fc3a 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 @@ -242,10 +242,12 @@ fun argumentsWithVarargAsSingleArray( concatElements.add(JsArrayLiteral(arraysForConcat)) } - return concatElements.singleOrNull() + val concatElementsResolved = concatElements.dropWhile { (it is JsArrayLiteral) && (it.expressions.isEmpty()) } + + return concatElementsResolved.singleOrNull() ?: JsInvocation( - JsNameRef("concat", concatElements.first()), - concatElements.drop(1) + JsNameRef("concat", concatElementsResolved.first()), + concatElementsResolved.drop(1) ) }