cyb/wysm/crates/wasmi/benches/wat/is_even.wat

(module
    (func $is_even (export "is_even") (param $a i32) (result i32)
        (if (result i32)
            (i32.eqz (local.get $a))
            (then
                (i32.const 1)
            )
            (else
                (call $is_odd (i32.sub (local.get $a) (i32.const 1)))
            )
        )
    )
    (func $is_odd (param $a i32) (result i32)
        (if (result i32)
            (i32.eqz (local.get $a))
            (then
                (i32.const 0)
            )
            (else
                (call $is_even (i32.sub (local.get $a) (i32.const 1)))
            )
        )
    )
)

Graph