| (module |
| (memory $0 1 2) |
| (export "memory" (memory $0)) |
| (export "grow" (func $grow)) |
| (export "size" (func $size)) |
| |
| (func $grow (param i32) (result i32) |
| (memory.grow (local.get 0)) |
| ) |
| |
| (func $size (result i32) |
| (memory.size) |
| ) |
| ) |
| |
| ;; The initial size is 1 page, max is 2 pages. |
| ;; Growing by 1 should succeed (1+1=2 <= max). |
| (assert_return (invoke "size") (i32.const 1)) |
| (assert_return (invoke "grow" (i32.const 1)) (i32.const 1)) |
| (assert_return (invoke "size") (i32.const 2)) |
| ;; Growing by 1 more should fail (2+1=3 > max). |
| ;; The size should remain at 2. |
| ;; FIXME: Failing to grow should actually return -1, not the old size. |
| (assert_return (invoke "grow" (i32.const 1)) (i32.const 2)) |
| (assert_return (invoke "size") (i32.const 2)) |