Hacker News new | ask | show | jobs
by hlude 15 days ago
I built this because I needed to see what the JavaScript engine was physically doing how the call stack fills, how the heap mutates, what actually happens when await suspends a function. Existing tools showed me the logical flow but not the physical state.

How it works technically:

- Acorn parses code into an AST client-side

- A custom interpreter runs in a Web Worker off the main thread, with a sync fallback for environments without Worker support

- The worker produces a flat immutable array of step snapshots

- Svelte 5 $state.raw: scrubbing the timeline is a constant-time array index swap

- GSAP animates only what changed between snapshots

Result: 60fps stepping through call stack, heap mutations and async/await simultaneously. 12 modules plus free-form mode. MIT licensed. Code runs entirely client-side your source never leaves the browser.

GitHub: https://github.com/HenryOnilude/vivix (MIT, 490 tests)

Known limitations: 500-step cap to prevent infinite loops, flat scope model for let/const inside blocks.