Full refactoring, in order to implement a full-featured Javascript-to-LLVM compiler.