xref: /wasmtime-44.0.1/examples/async.wat (revision 37cf8e1e)
1*37cf8e1eSTyler Rockwood(module
2*37cf8e1eSTyler Rockwood  (import "host" "print" (func $print (param i32)))
3*37cf8e1eSTyler Rockwood  (func $fibonacci (param $n i32) (result i32)
4*37cf8e1eSTyler Rockwood    (if
5*37cf8e1eSTyler Rockwood      (i32.lt_s (local.get $n) (i32.const 2))
6*37cf8e1eSTyler Rockwood      (then (return (local.get $n)))
7*37cf8e1eSTyler Rockwood    )
8*37cf8e1eSTyler Rockwood    (i32.add
9*37cf8e1eSTyler Rockwood      (call $fibonacci (i32.sub (local.get $n) (i32.const 1)))
10*37cf8e1eSTyler Rockwood      (call $fibonacci (i32.sub (local.get $n) (i32.const 2)))
11*37cf8e1eSTyler Rockwood    )
12*37cf8e1eSTyler Rockwood  )
13*37cf8e1eSTyler Rockwood  (func $print_fibonacci (param $n i32)
14*37cf8e1eSTyler Rockwood    (call $fibonacci (local.get $n))
15*37cf8e1eSTyler Rockwood    (call $print)
16*37cf8e1eSTyler Rockwood  )
17*37cf8e1eSTyler Rockwood  (export "print_fibonacci" (func $print_fibonacci))
18*37cf8e1eSTyler Rockwood)
19