Part III

Memory and Indirection

A WebAssembly function can keep values in locals and on the operand stack, but anything with an address lives in linear memory: one flat array of bytes per memory, bounds-checked on every access. This part covers the instructions that use it, how a compiler lays out a language's data and its stack inside it, and the two other kinds of state a module has: globals, and the tables that make indirect calls possible.

  1. 9Linear Memory
  2. 10Laying Out Memory
  3. 11Globals and Tables