1// META: title=PerformanceObserver: takeRecords 2// META: script=performanceobservers.js 3 4async_test(function (t) { 5 const observer = new PerformanceObserver(function (entryList, observer) { 6 assert_unreached('This callback should not have been called.') 7 }); 8 let entries = observer.takeRecords(); 9 checkEntries(entries, [], 'No records before observe'); 10 observer.observe({entryTypes: ['mark']}); 11 assert_equals(typeof(observer.takeRecords), 'function'); 12 entries = observer.takeRecords(); 13 checkEntries(entries, [], 'No records just from observe'); 14 performance.mark('a'); 15 performance.mark('b'); 16 entries = observer.takeRecords(); 17 checkEntries(entries, [ 18 {entryType: 'mark', name: 'a'}, 19 {entryType: 'mark', name: 'b'} 20 ]); 21 performance.mark('c'); 22 performance.mark('d'); 23 performance.mark('e'); 24 entries = observer.takeRecords(); 25 checkEntries(entries, [ 26 {entryType: 'mark', name: 'c'}, 27 {entryType: 'mark', name: 'd'}, 28 {entryType: 'mark', name: 'e'} 29 ]); 30 entries = observer.takeRecords(); 31 checkEntries(entries, [], 'No entries right after takeRecords'); 32 observer.disconnect(); 33 t.done(); 34 }, "Test PerformanceObserver's takeRecords()"); 35