wasmtime: Implement global.{get,set} for externref globals (#1969)
* wasmtime: Implement `global.{get,set}` for externref globals
We use libcalls to implement these -- unlike `table.{get,set}`, for which we
create inline JIT fast paths -- because no known toolchain actually uses
externref globals.
Part of #929
* wasmtime: Enable `{extern,func}ref` globals in the API
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
;; This test contains the changes in
|
||||
;; https://github.com/WebAssembly/reference-types/pull/104, and can be deleted
|
||||
;; once that merges and we update our upstream tests.
|
||||
|
||||
(module
|
||||
(global $mr (mut externref) (ref.null extern))
|
||||
(func (export "get-mr") (result externref) (global.get $mr))
|
||||
(func (export "set-mr") (param externref) (global.set $mr (local.get 0)))
|
||||
)
|
||||
|
||||
(assert_return (invoke "get-mr") (ref.null extern))
|
||||
(assert_return (invoke "set-mr" (ref.extern 10)))
|
||||
(assert_return (invoke "get-mr") (ref.extern 10))
|
||||
Reference in New Issue
Block a user