wasmtime 0.3.0

Command-line interface for Wasmtime
Documentation
(module
  (type $indirect_sig (func (param i64) (result i64)))

  (func $assert (param i32)
    (block $ok
      (br_if $ok
        (get_local 0)
      )
      (unreachable)
    )
  )

  (func $plus_1 (param i64) (result i64)
    get_local 0
    i64.const 1
    i64.add
  )
  (func $minus_1 (param i64) (result i64)
    get_local 0
    i64.const 1
    i64.sub
  )

  (func $main 
    (call $call_indirect
      (i32.const 0)
      (i64.const 2)
    )
    (call $call_indirect
      (i32.const 1)
      (i64.const 0)
    )
  )

  (func $call_indirect (param $func i32) (param $expected i64)
    (call $assert
      (i64.eq
        (call_indirect (type $indirect_sig)
          (i64.const 1)
          (get_local $func)
        )
        (get_local $expected)
      )
    )
  )
  (start $main)
  
  (table 2 2 anyfunc)
  (elem (i32.const 0) $plus_1 $minus_1)
)