Functions can be addressed by index or optional symbolic name. Parameters and locals can be named in WAT for readability, though binary encoding stores indexes.
(func $scale (param $x i32) (param $factor i32) (result i32)
(local $tmp i32)
local.get $x
local.get $factor
i32.mul
local.tee $tmp
return)- `local.get` pushes a local value.
- `local.set` consumes a value and writes a local.
- `local.tee` writes and keeps the value on the stack.
- Functions may have multiple params and, in modern WASM, multiple results.