codemirror + esprima powered html5 javascript editor component