The 11.00 module accepts a null heap and allocates 0x1800 bytes itself, requires at least 0x1800 for a caller heap, and keeps a state that distinguishes initialized from terminated. The three exports now follow that contract instead of throwing or always answering success.