C-256's statement ends with: "A break over a heap frame stays a loud wall (an early exit must not skip a per-iteration Drop)."
That sentence describes the retired v1 lowering. The default structural wasm leg lowers break / continue over heap locals: under a statement-position if before almide/almide#2882, and in guard … else and match arms since then. On that leg a body local is a frame credit, released by the next pass's rebind or by the epilogue, so an early exit skips no release. almide/almide#2882 adds spec/wasm_cross/loop_break_continue_heap.almd as C-256 evidence, with allocs == frees under ALMIDE_WASM_ALLOC_COUNT.
Suggested edit: drop the last sentence, or replace it with "An early exit over heap locals releases nothing on the jump edge and leaks nothing: the next pass's rebind or the frame's epilogue releases them." After this lands, the almide als pin has to advance before the statement bytes match (check-als-pin compares statements byte for byte).
C-256's statement ends with: "A break over a heap frame stays a loud wall (an early exit must not skip a per-iteration Drop)."
That sentence describes the retired v1 lowering. The default structural wasm leg lowers
break/continueover heap locals: under a statement-positionifbefore almide/almide#2882, and inguard … elseandmatcharms since then. On that leg a body local is a frame credit, released by the next pass's rebind or by the epilogue, so an early exit skips no release. almide/almide#2882 addsspec/wasm_cross/loop_break_continue_heap.almdas C-256 evidence, with allocs == frees underALMIDE_WASM_ALLOC_COUNT.Suggested edit: drop the last sentence, or replace it with "An early exit over heap locals releases nothing on the jump edge and leaks nothing: the next pass's rebind or the frame's epilogue releases them." After this lands, the almide als pin has to advance before the statement bytes match (check-als-pin compares statements byte for byte).