Infinite Footguns: Writing a JavaScript Interpreter in JavaScript

Building a JavaScript AST interpreter in JavaScript: scope isolation, ES5 implementation, and all the footguns along the way.