1async_test(t => { 2 // First observer creates second in callback to ensure the entry has been dispatched by the time 3 // the second observer begins observing. 4 new PerformanceObserver(() => { 5 // Second observer requires 'buffered: true' to see an entry. 6 new PerformanceObserver(t.step_func_done(list => { 7 const entries = list.getEntries(); 8 assert_equals(entries.length, 1, 'There should be 1 mark entry.'); 9 assert_equals(entries[0].entryType, 'mark'); 10 })).observe({type: 'mark', buffered: true}); 11 }).observe({entryTypes: ['mark']}); 12 performance.mark('foo'); 13}, 'PerformanceObserver with buffered flag sees previous marks'); 14 15async_test(t => { 16 // First observer creates second in callback to ensure the entry has been dispatched by the time 17 // the second observer begins observing. 18 new PerformanceObserver(() => { 19 // Second observer requires 'buffered: true' to see an entry. 20 new PerformanceObserver(t.step_func_done(list => { 21 const entries = list.getEntries(); 22 assert_equals(entries.length, 1, 'There should be 1 measure entry.'); 23 assert_equals(entries[0].entryType, 'measure'); 24 })).observe({type: 'measure', buffered: true}); 25 }).observe({entryTypes: ['measure']}); 26 performance.measure('bar'); 27}, 'PerformanceObserver with buffered flag sees previous measures'); 28