Based on Narcissus.
It currently passes 99% of the ECMAScript Language test262 test suite.
And can optionally be run in a reversible mode, where state changes are recorded so that they can be undone. This allows much more informative visualisations and interaction, at the cost of running slightly slower and a bit more memory.
In reversible mode almost all state changes can be undone. Some state changes such as