| "use strict"; | 
|   | 
| var attachComments = require("./attachComments"); | 
| var convertComments = require("./convertComments"); | 
| var toTokens = require("./toTokens"); | 
| var toAST = require("./toAST"); | 
|   | 
| module.exports = function(ast, traverse, tt, code) { | 
|   // convert tokens | 
|   ast.tokens = toTokens(ast.tokens, tt, code); | 
|   | 
|   // add comments | 
|   convertComments(ast.comments); | 
|   | 
|   // transform esprima and acorn divergent nodes | 
|   toAST(ast, traverse, code); | 
|   | 
|   // ast.program.tokens = ast.tokens; | 
|   // ast.program.comments = ast.comments; | 
|   // ast = ast.program; | 
|   | 
|   // remove File | 
|   ast.type = "Program"; | 
|   ast.sourceType = ast.program.sourceType; | 
|   ast.directives = ast.program.directives; | 
|   ast.body = ast.program.body; | 
|   delete ast.program; | 
|   | 
|   attachComments(ast, ast.comments, ast.tokens); | 
| }; |