// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME operator fun String.iterator(): IntIterator = object : IntIterator() { private var index = 0 override fun nextInt() = codePointAt(index).apply { index += Character.charCount(this) } override fun hasNext(): Boolean = index < length } fun String.collectInts(): List { val result = ArrayList() for (c in this) { result.add(c) } return result } fun box(): String { val ints = String(Character.toChars(127849)).collectInts() return if (ints == listOf(127849)) "OK" else "Fail: $ints" }