×

Please see the spec. The entire specification is implemented here (unless you're doing weird things with nested functions...)

×

This is an implementation of Crafting Interpreters written in Go, compiled to WebAssembly.

It works by running the .wasm binary in a WebWorker, passing the program text from the main to the WebWorker, and then messaging back the console output of the WebWorker line by line back to the main thread.

Like most things on the web, it's a bit frankensteined together, so there are a few quirks:

  • The interpreter itself passes most of the tests in the public Test suite. The few that I haven't bothered to hunt down are pretty minor. It's Turing-complete though (for as paltry as that guarantee is)!
  • There is no time out feature in the UI. You need to manually kill the running program if you want to start a new one.
  • No syntax highlighting.
  •