JavaScript AST manipulation with Babel: untangling scope confusion | Hacker News Reader