I added one statement and it only says `timed out`. I'll stick with Graphviz, which certainly doesn't time out.

The part that is timing out is actually the JS interpreter, not the graph viewer. It’s a total hack to get SpiderMonkey running on the page at all.

The full Frankenstein stack is: SpiderMonkey compiled in arm emulation mode, to a WASI 0.1 module, adapted to a WASI 0.2 component, transpiled to the web with jco, running in some random WASI shim.

We do this because the JS runtime needs inline caches to be filled out before optimization, which requires an JIT and actual execution of machine code. Otherwise you just get a graph full of Unreachable. Frankly I’m amazed it works at all.

It's a shame that Wasm is so hostile to runtime code generation. I've been trying to figure out how to design something that's better on that axis.

Hackernews hug of death maybe