From b226f14fd74bd86f7fc2ad4b27a78552fe9fb7a1 Mon Sep 17 00:00:00 2001 From: Arthur Pastel Date: Mon, 26 Jun 2023 11:45:51 +0200 Subject: [PATCH] fixup! feat: add a root frame for the callgraph generation --- packages/benchmark.js-plugin/src/index.ts | 28 ++++++++++------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/packages/benchmark.js-plugin/src/index.ts b/packages/benchmark.js-plugin/src/index.ts index 0fdfbed..e869363 100644 --- a/packages/benchmark.js-plugin/src/index.ts +++ b/packages/benchmark.js-plugin/src/index.ts @@ -164,35 +164,31 @@ async function runBenchmarks({ const bench = benches[i]; const uri = baseUri + "::" + (bench.name ?? `unknown_${i}`); const isAsync = bench.options.async || bench.options.defer; - let benchPayload; + let __codspeed_root_frame__; if (bench.options.defer) { - benchPayload = () => { + __codspeed_root_frame__ = () => { return new Promise((resolve, reject) => { (bench.fn as CallableFunction)({ resolve, reject }); }); }; } else if (bench.options.async) { - benchPayload = async () => { + __codspeed_root_frame__ = async () => { await (bench.fn as CallableFunction)(); }; } else { - benchPayload = bench.fn as CallableFunction; + __codspeed_root_frame__ = bench.fn as CallableFunction; } if (isAsync) { - await optimizeFunction(benchPayload); - await (async function __codspeed_root_frame__() { - measurement.startInstrumentation(); - await benchPayload(); - measurement.stopInstrumentation(uri); - })(); + await optimizeFunction(__codspeed_root_frame__); + measurement.startInstrumentation(); + await __codspeed_root_frame__(); + measurement.stopInstrumentation(uri); } else { - optimizeFunctionSync(benchPayload); - (function __codspeed_root_frame__() { - measurement.startInstrumentation(); - benchPayload(); - measurement.stopInstrumentation(uri); - })(); + optimizeFunctionSync(__codspeed_root_frame__); + measurement.startInstrumentation(); + __codspeed_root_frame__(); + measurement.stopInstrumentation(uri); } console.log(` ✔ Measured ${uri}`); benchmarkCompletedListeners.forEach((listener) => listener());