| <script src="../resources/js-test-pre.js"></script> |
| description("Ensure PerformanceObservers are notified in order of registration (observe)."); |
| window.jsTestIsAsync = true; |
| let observer1 = new PerformanceObserver((list) => { |
| testPassed("PerformanceObserver 1 callback fired"); |
| let observer2 = new PerformanceObserver((list) => { |
| testPassed("PerformanceObserver 2 callback fired"); |
| // Ensure creation doesn't impact order. |
| let observerSpecial = new PerformanceObserver((list) => { |
| testPassed("PerformanceObserver 6 callback fired"); |
| let observer3 = new PerformanceObserver((list) => { |
| testPassed("PerformanceObserver 3 callback fired"); |
| let observer4 = new PerformanceObserver((list) => { |
| testPassed("PerformanceObserver 4 callback fired"); |
| let observer5 = new PerformanceObserver((list) => { |
| testPassed("PerformanceObserver 5 callback fired"); |
| // Register all in order. |
| for (let o of [observer1, observer2, observerSpecial, observer3, observer4, observer5]) |
| o.observe({entryTypes: ["mark"]}); |
| // Unregister and re-register moves this to the back of the line. |
| observerSpecial.disconnect(); |
| observerSpecial.observe({entryTypes: ["mark"]}); |
| performance.mark("mark1"); |
| <script src="../resources/js-test-post.js"></script> |