// META: title=PerformanceObserver: takeRecords // META: script=performanceobservers.js async_test(function (t) { const observer = new PerformanceObserver(function (entryList, observer) { assert_unreached('This callback should not have been called.') }); let entries = observer.takeRecords(); checkEntries(entries, [], 'No records before observe'); observer.observe({entryTypes: ['mark']}); assert_equals(typeof(observer.takeRecords), 'function'); entries = observer.takeRecords(); checkEntries(entries, [], 'No records just from observe'); performance.mark('a'); performance.mark('b'); entries = observer.takeRecords(); checkEntries(entries, [ {entryType: 'mark', name: 'a'}, {entryType: 'mark', name: 'b'} ]); performance.mark('c'); performance.mark('d'); performance.mark('e'); entries = observer.takeRecords(); checkEntries(entries, [ {entryType: 'mark', name: 'c'}, {entryType: 'mark', name: 'd'}, {entryType: 'mark', name: 'e'} ]); entries = observer.takeRecords(); checkEntries(entries, [], 'No entries right after takeRecords'); observer.disconnect(); t.done(); }, "Test PerformanceObserver's takeRecords()");