2021-10-11 19:04:01 +02:00

43 lines
1.1 KiB
JavaScript

import Benchmark from "benchmark";
import baseline from "@babel-baseline/core";
import current from "@babel/core";
import parser from "@babel-baseline/parser";
import { report } from "../../util.mjs";
import { readFileSync } from "fs";
const suite = new Benchmark.Suite();
const fixtureName = "babel-parser-expression.txt";
function createInput() {
return parser.parse(
readFileSync(new URL("./" + fixtureName, import.meta.url), {
encoding: "utf-8",
}),
{ sourceType: "module", plugins: ["flow"] }
);
}
function benchCases(name, implementation, options) {
const input = createInput();
suite.add(
`${name} ${fixtureName}`,
() => {
implementation(input, {
plugins: ["@babel/preset-env", "@babel/preset-flow"],
targets: "ie 11",
configFile: false,
babelrc: false,
...options,
});
},
{
// increase minSamples for accuracy
minSamples: 100,
}
);
}
benchCases("baseline", baseline.transformFromAstSync, {});
benchCases("current", current.transformFromAstSync, {});
suite.on("cycle", report).run();