1
0
Fork 0
firefox/testing/web-platform/tests/js-self-profiling/resources/profiling-script.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

26 lines
959 B
JavaScript

(function(global) {
let counter = 0;
// Spins up a new profiler and performs some work in a new top-level task,
// calling some builtins. Returns a promise for the resulting trace.
const profileBuiltinsInNewTask = () => {
// Run profiling logic in a new task to eliminate the caller stack.
return new Promise(resolve => {
setTimeout(async () => {
const profiler = new Profiler({ sampleInterval: 10, maxBufferSize: 10000 });
for (const deadline = performance.now() + 500; performance.now() < deadline;) {
// Run a range of builtins to ensure they get included in the trace.
// Store this computation in a variable to prevent getting optimized out.
counter += Math.random();
counter += performance.now();
}
const trace = await profiler.stop();
resolve(trace);
});
});
}
global.ProfilingScript = {
profileBuiltinsInNewTask,
}
})(window);