JSExplain: a Double Debugger for JavaScript

Abstract

We present JSExplain, a reference interpreter for JavaScript that closely follows the specification and that produces execution traces. These traces may be interactively investigated in a browser, with an interface that displays not only the code and the state of the interpreter, but also the code and the state of the interpreted program. Conditional breakpoints may be expressed with respect to both the interpreter and the interpreted program. In that respect, JSExplain is a double-debugger for the specification of JavaScript.

Paper

Arthur Charguéraud, Alan Schmitt and Thomas Wood
Web Programming, April 2018