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: