mirror of
https://github.com/servo/servo.git
synced 2025-10-15 16:00:28 +01:00
29 lines
1.1 KiB
JavaScript
29 lines
1.1 KiB
JavaScript
async_test(function (t) {
|
|
if (typeof PerformanceLongTaskTiming === 'undefined') {
|
|
assert_unreached("Longtasks are not supported.");
|
|
t.done();
|
|
}
|
|
new PerformanceObserver(
|
|
t.step_func_done(entryList => {
|
|
const entries = entryList.getEntries();
|
|
assert_equals(entries.length, 1,
|
|
'Exactly one entry is expected.');
|
|
const longtask = entries[0];
|
|
assert_equals(longtask.entryType, 'longtask');
|
|
assert_equals(longtask.name, 'self');
|
|
assert_greater_than(longtask.duration, 50);
|
|
assert_greater_than_equal(longtask.startTime, 0);
|
|
const currentTime = performance.now();
|
|
assert_less_than_equal(longtask.startTime, currentTime);
|
|
t.done();
|
|
})
|
|
).observe({entryTypes: ['longtask']});
|
|
|
|
window.onload = () => {
|
|
/* Generate a slow microtask */
|
|
Promise.resolve().then(() => {
|
|
const begin = window.performance.now();
|
|
while (window.performance.now() < begin + 60);
|
|
});
|
|
};
|
|
}, 'A short task followed by a long microtask is observable.');
|