We're building an AOT compiler for JavaScript. How did this project start, and how is the compiler designed?