import path from "path" ; import fs from "fs" ; import * as recast from "../main" ; const source = fs . readFileSync ( path . join ( __dirname , "data" , "backbone.js" ) , "utf8" ) ; const start = + new Date ( ) ; const ast = recast . parse ( source ) ; const types = Object . create ( null ) ; const parseTime = + new Date ( ) - start ; console . log ( "parse" , parseTime , "ms" ) ; recast . visit ( ast , { visitNode : function ( path ) { types [ path . value . type ] = true ; this . traverse ( path ) ; } , } ) ; const visitTime = + new Date ( ) - start - parseTime ; console . log ( "visit" , visitTime , "ms" ) ; recast . prettyPrint ( ast ) . code ; const printTime = + new Date ( ) - start - visitTime - parseTime ; console . log ( "print" , printTime , "ms" ) ; console . log ( "total" , + new Date ( ) - start , "ms" ) ;