node
node copied to clipboard
While using performance.measure(...) the detail fields isn't passed on to the PerformanceObserver since Node V20
Version
20
Platform
Mac
Subsystem
perf_hooks
What steps will reproduce the bug?
const { performance, PerformanceObserver } = require('perf_hooks');
const perfObserver = new PerformanceObserver((items) => {
const entries = items.getEntries();
entries.forEach((entry) => console.log(entry));
});
perfObserver.observe({ entryTypes: ['measure'] });
performance.mark(`sample-start`);
console.log('doing some work...');
performance.mark('sample-end');
performance.measure('sample', {
start: 'sample-start',
end: 'sample-end',
detail: { some: 'data' },
});
How often does it reproduce? Is there a required condition?
Reproduces consistently
What is the expected behavior? Why is that the expected behavior?
The expected output-
doing some work...
PerformanceMeasure {
name: 'sample',
entryType: 'measure',
startTime: 8.93499899105882,
duration: 6.525000999999975,
detail: { some: 'data' }
}
What do you see instead?
doing some work...
PerformanceMeasure {
name: 'sample',
entryType: 'measure',
startTime: 8.93499899105882,
duration: 6.525000999999975,
}
Additional information
Works well when using Node V18
Thanks for the report! If you don't mind, could you edit your issue to use markdown code blocks? That way it'll be easier for viewers to see code vs text.
@RedYetiDev I would like to work on this issue. I will start investigating the problem and will post updates here. Thank you!
You can use entry.detail or submit a PR to add toJSON function for PerformanceMeasure class .