Is the code in the eval also turned into wasm first then? Does this work as a JIT for wasm?

It actually works a bit differently. The eval is executed by the interpreter running inside the isolated wasm sandbox (StarlingMonkey). You can think of it as each sandbox having its own dedicated JavaScript engine.