The global.set variable instruction sets the value of a global variable.
(module
(import "console" "log" (func $log (param i32)))
(global $var (mut i32) (i32.const 0))
(func $main
i32.const 10 ;; load a number onto the stack
global.set $var ;; set the $var
global.get $var ;; load $var onto the stack
call $log ;; log the result
)
(start $main)
)const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });global.set identifier
global.setThe global.set instruction type. Must always be included first.
identifierAn identifier for the global whose value you want to set. This can be one of the following:
nameThe identifying name set for the global when it was first initialized. This must begin with a $ symbol, for example $my_global.
indexThe global's index number, for example 0 for the first global in the Wasm script, 1 for the second, etc.
[new_value] -> []
new_valueThe new value set for the global. For the global.set instruction to succeed, the global must be mutable (the mut flag was set when it was declared), and the new_value must have the same data_type as the global.
| Instruction | Binary format | Example text => binary |
|---|---|---|
global.set | 0x24 | global.set 0 => 0x24 0x00 |