This is an in-browser demo of estr, built with Esprima and CodeMirror. See Introducing ESTR for a brief overview of estr.

In the CodeMirror-enhanced textarea below, CodeMirror supplies editing and basic Javascript syntax highlightling. On top of that, estr provides Javascript scope information and source transformation: move the cursor over a variable to see all occurrences highlighted (unbound variable occurrences are underlined); you can then navigate to the variable declaration (binding), iterate through the occurrences, or rename all variable occurrences, using the buttons under the textarea. Renaming is guarded by checks that will prevent naming conflicts (try with your own code samples, and please file a bug if you find a case where renaming breaks scoping;-).