A javascript AST and to_source generator