WebAssembly execution is specified as a stack machine. Instructions push values, pop operands, and produce results. Engines may internally compile to registers, SSA, or machine code, but validation is defined in stack terms.
before: [ ..., i32, i32 ]
instr: i32.add
after: [ ..., i32 ]- Core numeric value types are `i32`, `i64`, `f32`, and `f64`.
- `v128` is used by SIMD instructions.
- Reference values include `funcref` and `externref`.
- Blocks, loops, if/else, branch labels, return, call, and call_indirect all have validated stack effects.