These scenarios run in your browser on the real MELP WASM compiler —
not a simulation. The tick counts, the freeze state and
the closing report all come from the scope state machine inside the WASM; JavaScript only
supplies the clock.
Every scope that closes releases the timer · request · state · listener it owns
all by itself — without a single line of cleanup code.Rust does this without a GC too — but through the borrow checker.
MELP gives the same safety without one, from lexical scope.
—
WASM · gzip
?
What is counted: only the compiled .wasm (gzipped). The page total is ~30KB (JS bridge + HTML/CSS included). There is no separate runtime — MELP has none; cleanup is encoded at compile time.
0
Lines of cleanup
?
Lines of manual code written to release the resources. In the React equivalent below, that number is 4.
0
Leaks
?
Resources still alive after the scope closed. Not a measurement but an architectural guarantee: a closed scope's resource cannot stay alive.
0ms
GC pauses
?
No GC, therefore no GC pause. Not a number — a definition.
demo_tab_close.mlp
Live resource monitor
Output
// Press ▶ Run — the resources come alive, then go out with Close the Tab.▋
▸
What would the same scenario look like in React?
4 manual cleanups
In React you write 4 separate manual cleanups to release the same 4 resources. Forget one and you leak — and the compiler will not warn you.