Ooh, I also did the compile-to-WASM side quest! There are some really fun optimizations one can do to make the emulation run faster.
It's orders of magnitude faster than my naive hand-written emulator.
It's orders of magnitude faster than my naive hand-written emulator.
A big part of the joy came from making up my own extra credit side quests: implementing a compile-to-WASM emulator for the hack machine, adding optimisations to the compiler to produce smaller and/or faster programs, etc.