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.

wasm
(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.