(module
 (type $i32_f32_=>_none (func (param i32 f32)))
 (type $i32_i32_f32_=>_none (func (param i32 i32 f32)))
 (type $none_=>_none (func))
 (import "env" "invoke_vif" (func $invoke_vif (param i32 i32 f32)))
 (memory $0 256 256)
 (table $0 7 7 funcref)
 (elem (i32.const 1) $exc $other_safe $other_unsafe $deep_safe $deep_unsafe)
 (func $exc
  (call $other_safe
   (i32.const 42)
   (f32.const 3.141590118408203)
  )
  (call $other_unsafe
   (i32.const 55)
   (f32.const 2.1828181743621826)
  )
  (call $deep_safe
   (i32.const 100)
   (f32.const 1.1109999418258667)
  )
  (call $deep_unsafe
   (i32.const 999)
   (f32.const 1.4140000343322754)
  )
  (call $invoke_vif
   (i32.add
    (i32.const 1)
    (i32.const 1)
   )
   (i32.const 42)
   (f32.const 3.141590118408203)
  )
  (call $invoke_vif
   (i32.const 0)
   (i32.const 42)
   (f32.const 3.141590118408203)
  )
  (call $invoke_vif
   (i32.const 1337)
   (i32.const 42)
   (f32.const 3.141590118408203)
  )
 )
 (func $other_safe (param $0 i32) (param $1 f32)
  (nop)
 )
 (func $other_unsafe (param $0 i32) (param $1 f32)
  (nop)
 )
 (func $deep_safe (param $0 i32) (param $1 f32)
  (call $other_safe
   (unreachable)
   (unreachable)
  )
 )
 (func $deep_unsafe (param $0 i32) (param $1 f32)
  (call $other_unsafe
   (unreachable)
   (unreachable)
  )
 )
)
(module
 (type $none_=>_none (func))
 (func $call
  (call $call)
 )
)
(module
 (type $i32_i32_f32_=>_none (func (param i32 i32 f32)))
 (type $none_=>_none (func))
 (type $i32_f32_=>_none (func (param i32 f32)))
 (import "env" "glob" (global $glob i32))
 (import "env" "invoke_vif" (func $invoke_vif (param i32 i32 f32)))
 (memory $0 256 256)
 (table $0 7 7 funcref)
 (elem (global.get $glob) $other_safe)
 (func $exc
  (call $invoke_vif
   (i32.const 3)
   (i32.const 42)
   (f32.const 3.141590118408203)
  )
 )
 (func $other_safe (param $0 i32) (param $1 f32)
  (nop)
 )
)
(module
 (type $none_=>_none (func))
 (type $i32_i32_f32_=>_none (func (param i32 i32 f32)))
 (type $i32_f32_=>_none (func (param i32 f32)))
 (import "env" "glob" (global $glob i32))
 (import "env" "invoke_vif" (func $invoke_vif (param i32 i32 f32)))
 (memory $0 256 256)
 (table $0 7 7 funcref)
 (elem (i32.const 0) $other_safe)
 (func $exc
  (call $invoke_vif
   (i32.const 0)
   (i32.const 42)
   (f32.const 3.141590118408203)
  )
 )
 (func $other_safe (param $0 i32) (param $1 f32)
  (call_indirect (type $none_=>_none)
   (i32.const 0)
  )
 )
)
