Linear memory is read/write data memory. It is separate from compiled code, is not executable, and WASM cannot jump into it. Pointers are integer offsets into this buffer.

  • A normal WebAssembly memory page is 64 KiB.
  • Memory can grow with `memory.grow`; current standard memories do not shrink.
  • JavaScript views memory through typed arrays over `memory.buffer`.
  • Strings are usually UTF-8 bytes plus a pointer/length convention.
  • Shared memory requires `SharedArrayBuffer`, maximum sizes, workers, and cross-origin isolation headers.