🏡 index : quine-global/recast.git

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");