// stores HEAP8[x] = 1; HEAP16[x] = 2; HEAP32[x] = 3; HEAPU8[x] = 4; HEAPU16[x] = 5; HEAPU32[x] = 6; HEAPF32[x] = 7; HEAPF64[x] = 8; HEAP64[x] = 9n; HEAPU64[x] = 10n; // loads a1 = HEAP8[x]; a2 = HEAP16[x]; a3 = HEAP32[x]; a4 = HEAPU8[x]; a5 = HEAPU16[x]; a6 = HEAPU32[x]; a7 = HEAPF32[x]; a8 = HEAPF64[x]; a9 = HEAP64[x]; a10 = HEAPU64[x]; // store return value foo = HEAPU8[1337] = 42; // nesting HEAP16[bar(HEAPF64[5])]; HEAPF32[x] = HEAP32[y]; // skip establishStackSpace, because it sets up variables used by ASan itself function establishStackSpace() { HEAP32[0]; } // but do handle everything else function somethingElse() { return HEAP8[ptr]; } // ignore a.X HEAP8.length; HEAP8[length];