[KT-10614] Fix issue: copy array on vararg call with spread operator
This commit is contained in:
+3
@@ -237,6 +237,9 @@ class CallArgumentTranslator private constructor(
|
||||
val concatExpression = concatArgumentsIfNeeded(concatArguments)
|
||||
result.add(concatExpression)
|
||||
}
|
||||
else if (result.size == 1) {
|
||||
result[0] = JsAstUtils.invokeMethod(result[0], "slice")
|
||||
}
|
||||
|
||||
return resultKind
|
||||
}
|
||||
|
||||
@@ -103,5 +103,8 @@ fun box(): String {
|
||||
assertEquals(3, idArrayVarArg(arrayOf(1, 2), *arrayOf(arrayOf(3, 4), arrayOf(5, 6))).size)
|
||||
assertEquals(6, idArrayVarArg(arrayOf(1, 2), *arrayOf(arrayOf(3, 4), arrayOf(5, 6)), arrayOf(7), *arrayOf(arrayOf(8, 9), arrayOf(10, 11))).size)
|
||||
|
||||
val c = arrayOf(*a)
|
||||
assertFalse(a === c, "Spread operator should copy its argument")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user