%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// META: script=performanceobservers.js test(function () { const obs = new PerformanceObserver(() => {}); assert_throws_js(TypeError, function () { obs.observe({entryTypes: "mark"}); }); }, "entryTypes must be a sequence or throw a TypeError"); test(function () { const obs = new PerformanceObserver(() => {}); obs.observe({entryTypes: []}); }, "Empty sequence entryTypes does not throw an exception."); test(function () { const obs = new PerformanceObserver(() => {}); obs.observe({entryTypes: ["this-cannot-match-an-entryType"]}); obs.observe({entryTypes: ["marks","navigate", "resources"]}); }, "Unknown entryTypes do not throw an exception."); test(function () { const obs = new PerformanceObserver(() => {}); obs.observe({entryTypes: ["mark","this-cannot-match-an-entryType"]}); obs.observe({entryTypes: ["this-cannot-match-an-entryType","mark"]}); obs.observe({entryTypes: ["mark"], others: true}); }, "Filter unsupported entryType entryType names within the entryTypes sequence"); async_test(function (t) { var finish = t.step_func(function () { t.done(); }); var observer = new PerformanceObserver( function (entryList, obs) { var self = this; t.step(function () { assert_true(entryList instanceof PerformanceObserverEntryList, "first callback parameter must be a PerformanceObserverEntryList instance"); assert_true(obs instanceof PerformanceObserver, "second callback parameter must be a PerformanceObserver instance"); assert_equals(observer, self, "observer is the this value"); assert_equals(observer, obs, "observer is second parameter"); assert_equals(self, obs, "this and second parameter are the same"); observer.disconnect(); finish(); }); } ); self.performance.clearMarks(); observer.observe({entryTypes: ["mark"]}); self.performance.mark("mark1"); }, "Check observer callback parameter and this values"); async_test(function (t) { var observer = new PerformanceObserver( t.step_func(function (entryList, obs) { checkEntries(entryList.getEntries(), [{ entryType: "measure", name: "measure1"}]); observer.disconnect(); t.done(); }) ); self.performance.clearMarks(); observer.observe({entryTypes: ["mark"]}); observer.observe({entryTypes: ["measure"]}); self.performance.mark("mark1"); self.performance.measure("measure1"); }, "replace observer if already present");