[WASM] Throw IllegalArgumentException on negative array size

This commit is contained in:
Abduqodiri Qurbonzoda
2023-06-06 17:26:14 +03:00
committed by Space Team
parent b147b7e929
commit 9f16daac02
8 changed files with 146 additions and 14 deletions
@@ -23,7 +23,12 @@ import kotlin.wasm.internal.*
* for more information on arrays.
*/
public class Array<T> @PublishedApi internal constructor(size: Int) {
internal val storage: WasmAnyArray = WasmAnyArray(size)
internal val storage: WasmAnyArray
init {
if (size < 0) throw IllegalArgumentException("Negative array size")
storage = WasmAnyArray(size)
}
@WasmPrimitiveConstructor
internal constructor(storage: WasmAnyArray)
@@ -87,6 +92,7 @@ internal fun <T> arrayIterator(array: Array<T>) = object : Iterator<T> {
}
internal inline fun <reified T> createAnyArray(size: Int, init: (Int) -> T): Array<T> {
if (size < 0) throw IllegalArgumentException("Negative array size")
val result = WasmAnyArray(size)
result.fill(size, init)
return Array(result)