Would like to see the eval version - the dialogue version just seems like normal code with extra steps?
yeah, the previous example was quite basic. I will write a complete example for that, but here is how you can run dynamic code:
import { task } from "@capsule-run/sdk"; export default task({ name: "main", compute: "HIGH", }, async () => { const untrustedCode = "const x = 10; x * 2 + 5;"; const result = eval(untrustedCode); return result; });
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.
yeah, the previous example was quite basic. I will write a complete example for that, but here is how you can run dynamic code:
Hope that helps!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.