diff --git a/test/core/gc/array_fill.wast b/test/core/gc/array_fill.wast index 0379ad537e..7312217802 100644 --- a/test/core/gc/array_fill.wast +++ b/test/core/gc/array_fill.wast @@ -79,3 +79,22 @@ (assert_return (invoke "array_get_nth" (i32.const 2)) (i32.const 11)) (assert_return (invoke "array_get_nth" (i32.const 3)) (i32.const 11)) (assert_return (invoke "array_get_nth" (i32.const 4)) (i32.const 0)) + +;; fill the whole array +(assert_return (invoke "array_fill" (i32.const 0) (i32.const 42) (i32.const 12))) +(assert_return (invoke "array_get_nth" (i32.const 0)) (i32.const 42)) +(assert_return (invoke "array_get_nth" (i32.const 2)) (i32.const 42)) +(assert_return (invoke "array_get_nth" (i32.const 5)) (i32.const 42)) +(assert_return (invoke "array_get_nth" (i32.const 11)) (i32.const 42)) + +;; fill the first element +(assert_return (invoke "array_fill" (i32.const 0) (i32.const 7) (i32.const 1))) +(assert_return (invoke "array_get_nth" (i32.const 0)) (i32.const 7)) +(assert_return (invoke "array_get_nth" (i32.const 1)) (i32.const 42)) +(assert_return (invoke "array_get_nth" (i32.const 11)) (i32.const 42)) + +;; fill the last 2 elements +(assert_return (invoke "array_fill" (i32.const 10) (i32.const 9) (i32.const 2))) +(assert_return (invoke "array_get_nth" (i32.const 9)) (i32.const 42)) +(assert_return (invoke "array_get_nth" (i32.const 10)) (i32.const 9)) +(assert_return (invoke "array_get_nth" (i32.const 11)) (i32.const 9))