wasmtime-cli 45.0.0

Command-line interface for Wasmtime
Documentation
;;! gc = true
;;! bulk_memory = true

;; Test that we only evaluate a const expression once, even if it is referenced
;; by e.g. `array.new_elem` many times.
(module
  (type $arr (array (mut arrayref)))

  (elem $elem arrayref
    (item (array.new_default $arr (i32.const 0))))

  (func (export "run") (result i32)
    (local $a (ref null $arr))
    (local $b (ref null $arr))

    (local.set $a (array.new_elem $arr $elem (i32.const 0) (i32.const 1)))
    (local.set $b (array.new_elem $arr $elem (i32.const 0) (i32.const 1)))

    (ref.eq (array.get $arr (local.get $a) (i32.const 0))
            (array.get $arr (local.get $b) (i32.const 0)))
  )
)

(assert_return (invoke "run") (i32.const 1))