diff options
Diffstat (limited to 'tests/fixtures/spec_testsuites/core/forward.wast')
| -rw-r--r-- | tests/fixtures/spec_testsuites/core/forward.wast | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/fixtures/spec_testsuites/core/forward.wast b/tests/fixtures/spec_testsuites/core/forward.wast new file mode 100644 index 0000000..7bb3770 --- /dev/null +++ b/tests/fixtures/spec_testsuites/core/forward.wast @@ -0,0 +1,20 @@ +(module + (func $even (export "even") (param $n i32) (result i32) + (if (result i32) (i32.eq (local.get $n) (i32.const 0)) + (then (i32.const 1)) + (else (call $odd (i32.sub (local.get $n) (i32.const 1)))) + ) + ) + + (func $odd (export "odd") (param $n i32) (result i32) + (if (result i32) (i32.eq (local.get $n) (i32.const 0)) + (then (i32.const 0)) + (else (call $even (i32.sub (local.get $n) (i32.const 1)))) + ) + ) +) + +(assert_return (invoke "even" (i32.const 13)) (i32.const 0)) +(assert_return (invoke "even" (i32.const 20)) (i32.const 1)) +(assert_return (invoke "odd" (i32.const 13)) (i32.const 1)) +(assert_return (invoke "odd" (i32.const 20)) (i32.const 0)) |
