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