28 lines
933 B
WebAssembly Text Format
28 lines
933 B
WebAssembly Text Format
;; data.drop
|
|
(module
|
|
(memory $mem0 0)
|
|
(memory $mem1 1)
|
|
(memory $mem2 0)
|
|
(data $p "x")
|
|
(data $a (memory 1) (i32.const 0) "x")
|
|
|
|
(func (export "drop_passive") (data.drop $p))
|
|
(func (export "init_passive") (param $len i32)
|
|
(memory.init $mem1 $p (i32.const 0) (i32.const 0) (local.get $len)))
|
|
|
|
(func (export "drop_active") (data.drop $a))
|
|
(func (export "init_active") (param $len i32)
|
|
(memory.init $mem1 $a (i32.const 0) (i32.const 0) (local.get $len)))
|
|
)
|
|
|
|
(invoke "init_passive" (i32.const 1))
|
|
(invoke "drop_passive")
|
|
(invoke "drop_passive")
|
|
(assert_return (invoke "init_passive" (i32.const 0)))
|
|
(assert_trap (invoke "init_passive" (i32.const 1)) "out of bounds memory access")
|
|
(invoke "init_passive" (i32.const 0))
|
|
(invoke "drop_active")
|
|
(assert_return (invoke "init_active" (i32.const 0)))
|
|
(assert_trap (invoke "init_active" (i32.const 1)) "out of bounds memory access")
|
|
(invoke "init_active" (i32.const 0))
|
|
|