JS: support callable references with vararg and default parameters conversion

This commit is contained in:
Anton Bannykh
2020-02-20 15:22:01 +03:00
parent f6a23ea441
commit e7816b4ec2
24 changed files with 152 additions and 41 deletions
+8
View File
@@ -63,6 +63,8 @@ external fun oneMoreParamCount(before: IntArray, vararg middle: Int, after: IntA
@JsName("paramCount")
external fun <T> oneMoreGenericParamCount(before: Array<T>, vararg middle: T, after: Array<T>): Int
fun runCallable(fn: (Int, Int, Int, Int, Int) -> Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int): Int = fn(a1, a2, a3, a4, a5)
fun box(): String {
if (paramCount() != 0)
return "failed when call native function without args"
@@ -147,5 +149,11 @@ fun box(): String {
assertEquals(6, oneMoreParamCount(intArrayOf(1, 2), 3, *intArrayOf(4, 5), 6, after = intArrayOf(7, 8)))
assertEquals(6, oneMoreGenericParamCount(arrayOf("1", "2"), "3", *arrayOf("4", "5"), "6", after = arrayOf("7", "8")))
assertEquals(5, runCallable(::paramCount, 1, 2, 3, 4, 5))
assertEquals(5, runCallable(::anotherParamCount, 1, 2, 3, 4, 5))
assertEquals(5, runCallable(::anotherCount, 1, 2, 3, 4, 5))
assertEquals(11111, runCallable(::sumOfParameters, 1, 10, 100, 1000, 10000))
return "OK"
}