// EXPECTED_REACHABLE_NODES: 1750 // KJS_WITH_FULL_RUNTIME fun abstractCollectionToArray() { class TestCollection(val data: Collection) : AbstractCollection() { val invocations = mutableListOf() override val size get() = data.size override fun iterator() = data.iterator() override fun toArray(): Array { invocations += "toArray1" return data.toTypedArray() } public override fun toArray(array: Array): Array { invocations += "toArray2" return super.toArray(array) } } val data = listOf("abc", "def") val coll = TestCollection(data) val arr1 = coll.toTypedArray() assertEquals(data, arr1.asList()) assertTrue("toArray1" in coll.invocations || "toArray2" in coll.invocations) val arr2: Array = coll.toArray(Array(coll.size + 1) { "" }) assertEquals(data + listOf(null), arr2.asList()) } fun box(): String { abstractCollectionToArray() return "OK" }