blob: 359d83f5e62245f0b029fec305ef1e79f2dd326b [file] [edit]
[asyncify] import is an import that can change the state
[asyncify] calls-import can change the state due to import
[asyncify] calls-calls-import can change the state due to calls-import
[asyncify] calls-calls-calls-import can change the state due to calls-calls-import
(module
(type $none_=>_none (func))
(type $i32_=>_none (func (param i32)))
(type $none_=>_i32 (func (result i32)))
(import "env" "import" (func $import))
(memory $0 1 2)
(global $__asyncify_state (mut i32) (i32.const 0))
(global $__asyncify_data (mut i32) (i32.const 0))
(export "asyncify_start_unwind" (func $asyncify_start_unwind))
(export "asyncify_stop_unwind" (func $asyncify_stop_unwind))
(export "asyncify_start_rewind" (func $asyncify_start_rewind))
(export "asyncify_stop_rewind" (func $asyncify_stop_rewind))
(export "asyncify_get_state" (func $asyncify_get_state))
(func $calls-import
(local $0 i32)
(local $1 i32)
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 2)
)
(nop)
)
(local.set $0
(block $__asyncify_unwind (result i32)
(block
(block
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 2)
)
(block
(i32.store
(global.get $__asyncify_data)
(i32.add
(i32.load
(global.get $__asyncify_data)
)
(i32.const -4)
)
)
(local.set $1
(i32.load
(i32.load
(global.get $__asyncify_data)
)
)
)
)
)
(if
(if (result i32)
(i32.eq
(global.get $__asyncify_state)
(i32.const 0)
)
(i32.const 1)
(i32.eq
(local.get $1)
(i32.const 0)
)
)
(block
(call $import)
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 1)
)
(br $__asyncify_unwind
(i32.const 0)
)
)
)
)
)
(return)
)
)
)
(block
(i32.store
(i32.load
(global.get $__asyncify_data)
)
(local.get $0)
)
(i32.store
(global.get $__asyncify_data)
(i32.add
(i32.load
(global.get $__asyncify_data)
)
(i32.const 4)
)
)
)
(nop)
)
(func $calls-calls-import
(local $0 i32)
(local $1 i32)
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 2)
)
(nop)
)
(local.set $0
(block $__asyncify_unwind (result i32)
(block
(block
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 2)
)
(block
(i32.store
(global.get $__asyncify_data)
(i32.add
(i32.load
(global.get $__asyncify_data)
)
(i32.const -4)
)
)
(local.set $1
(i32.load
(i32.load
(global.get $__asyncify_data)
)
)
)
)
)
(if
(if (result i32)
(i32.eq
(global.get $__asyncify_state)
(i32.const 0)
)
(i32.const 1)
(i32.eq
(local.get $1)
(i32.const 0)
)
)
(block
(call $calls-import)
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 1)
)
(br $__asyncify_unwind
(i32.const 0)
)
)
)
)
)
(return)
)
)
)
(block
(i32.store
(i32.load
(global.get $__asyncify_data)
)
(local.get $0)
)
(i32.store
(global.get $__asyncify_data)
(i32.add
(i32.load
(global.get $__asyncify_data)
)
(i32.const 4)
)
)
)
(nop)
)
(func $calls-calls-calls-import
(local $0 i32)
(local $1 i32)
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 2)
)
(nop)
)
(local.set $0
(block $__asyncify_unwind (result i32)
(block
(block
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 2)
)
(block
(i32.store
(global.get $__asyncify_data)
(i32.add
(i32.load
(global.get $__asyncify_data)
)
(i32.const -4)
)
)
(local.set $1
(i32.load
(i32.load
(global.get $__asyncify_data)
)
)
)
)
)
(if
(if (result i32)
(i32.eq
(global.get $__asyncify_state)
(i32.const 0)
)
(i32.const 1)
(i32.eq
(local.get $1)
(i32.const 0)
)
)
(block
(call $calls-calls-import)
(if
(i32.eq
(global.get $__asyncify_state)
(i32.const 1)
)
(br $__asyncify_unwind
(i32.const 0)
)
)
)
)
)
(return)
)
)
)
(block
(i32.store
(i32.load
(global.get $__asyncify_data)
)
(local.get $0)
)
(i32.store
(global.get $__asyncify_data)
(i32.add
(i32.load
(global.get $__asyncify_data)
)
(i32.const 4)
)
)
)
(nop)
)
(func $nothing
(nop)
)
(func $asyncify_start_unwind (param $0 i32)
(global.set $__asyncify_state
(i32.const 1)
)
(global.set $__asyncify_data
(local.get $0)
)
(if
(i32.gt_u
(i32.load
(global.get $__asyncify_data)
)
(i32.load offset=4
(global.get $__asyncify_data)
)
)
(unreachable)
)
)
(func $asyncify_stop_unwind
(global.set $__asyncify_state
(i32.const 0)
)
(if
(i32.gt_u
(i32.load
(global.get $__asyncify_data)
)
(i32.load offset=4
(global.get $__asyncify_data)
)
)
(unreachable)
)
)
(func $asyncify_start_rewind (param $0 i32)
(global.set $__asyncify_state
(i32.const 2)
)
(global.set $__asyncify_data
(local.get $0)
)
(if
(i32.gt_u
(i32.load
(global.get $__asyncify_data)
)
(i32.load offset=4
(global.get $__asyncify_data)
)
)
(unreachable)
)
)
(func $asyncify_stop_rewind
(global.set $__asyncify_state
(i32.const 0)
)
(if
(i32.gt_u
(i32.load
(global.get $__asyncify_data)
)
(i32.load offset=4
(global.get $__asyncify_data)
)
)
(unreachable)
)
)
(func $asyncify_get_state (result i32)
(global.get $__asyncify_state)
)
)