blob: 37dac176a2a3834f12c7e85cdd70bf88e580908a [file] [log] [blame] [edit]
(module
(import "import" "import" (func $import (param i32 i32)))
(memory 256 256)
(data (i32.const 10) "_________________")
(export "test1" $test1)
(func $test1
(local $temp i32)
;; Increment $temp from 0 to 1, which we can eval.
(local.set $temp
(i32.add
(local.get $temp)
(i32.const 1)
)
)
;; A safe store that will be evalled and alter memory.
(i32.store8 (i32.const 12) (i32.const 115))
;; A call to an import, which prevents evalling. We will stop here. The
;; 'tee' instruction should *not* have any effect, that is, we should not
;; partially eval this line in the block - we should eval none of it.
;; TODO: We should support such partial line evalling, with more careful
;; management of locals.
(call $import
(local.get $temp) ;; The value sent here should be '1'.
(local.tee $temp
(i32.const 50)
)
)
;; A safe store that we never reach
(i32.store8 (i32.const 13) (i32.const 115))
)
)