github.com/wasilibs/wazerox@v0.0.0-20240124024944-4923be63ab5f/internal/integration_test/spectest/v1/testdata/forward.wast (about)

     1  (module
     2    (func $even (export "even") (param $n i32) (result i32)
     3      (if (result i32) (i32.eq (local.get $n) (i32.const 0))
     4        (then (i32.const 1))
     5        (else (call $odd (i32.sub (local.get $n) (i32.const 1))))
     6      )
     7    )
     8  
     9    (func $odd (export "odd") (param $n i32) (result i32)
    10      (if (result i32) (i32.eq (local.get $n) (i32.const 0))
    11        (then (i32.const 0))
    12        (else (call $even (i32.sub (local.get $n) (i32.const 1))))
    13      )
    14    )
    15  )
    16  
    17  (assert_return (invoke "even" (i32.const 13)) (i32.const 0))
    18  (assert_return (invoke "even" (i32.const 20)) (i32.const 1))
    19  (assert_return (invoke "odd" (i32.const 13)) (i32.const 1))
    20  (assert_return (invoke "odd" (i32.const 20)) (i32.const 0))