From 997d23eb43c9a9bce2ae9c4d7d813fcaf9cf767d Mon Sep 17 00:00:00 2001 From: Shagen Ogandzhanian Date: Fri, 8 Jan 2021 00:27:13 +0100 Subject: [PATCH] Simplify signatures for arrays in argumentsWithVarargAsSingleArray ^KT-40689 fixed --- .../ir/backend/js/transformers/irToJs/jsAstUtils.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 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 7f3400e2886..20b033e5f34 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 @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid import org.jetbrains.kotlin.js.backend.ast.* import org.jetbrains.kotlin.util.OperatorNameConventions +import org.jetbrains.kotlin.utils.addIfNotNull fun jsVar(name: JsName, initializer: IrExpression?, context: JsGenerationContext): JsVars { val jsInitializer = initializer?.accept(IrElementToJsExpressionTransformer(), context) @@ -208,10 +209,10 @@ fun argumentsWithVarargAsSingleArray( // External vararg arguments should be represented in JS as multiple "plain" arguments (opposed to arrays in Kotlin) // We are using `Function.prototype.apply` function to pass all arguments as a single array. // For this purpose are concatenating non-vararg arguments with vararg. - var arraysForConcat: MutableList = mutableListOf().apply { - additionalReceiver?.let { add(it) } - } - val concatElements: MutableList = mutableListOf() + var arraysForConcat = mutableListOf() + arraysForConcat.addIfNotNull(additionalReceiver) + + val concatElements = mutableListOf() arguments .forEachIndexed { index, argument ->