# Blockly > Demos > Backwards Stepping with JS-Interpreter

This is a demo of executing code step-by-step with a sandboxed JavaScript interpreter -- both forwards and backwards.

Each step forwards saves the current state to a stack. Each state backwards restores to the previous state on the stack. Compression is used to keep only the deltas between stack frames. Note that because serialization reaches deep beyond the public API for the JS-Interpreter, the uncompiled acorn.js and interpreter.js must be used in place of acorn_interpreter.js.

→ More info on running code with JS-Interpreter