Basic Interface test for PerformanceObserver APIs. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PerformanceObserver PASS PerformanceObserver is defined. PASS PerformanceObserver.prototype.observe is defined. PASS PerformanceObserver.prototype.disconnect is defined. PASS PerformanceObserver() threw exception TypeError: Constructor requires 'new' operator. PASS new PerformanceObserver() threw exception TypeError: Not enough arguments. PASS new PerformanceObserver(1) threw exception TypeError: Argument 1 ('callback') to the PerformanceObserver constructor must be a function. PASS observer = new PerformanceObserver(function() {}) did not throw exception. PASS observer.observe() threw exception TypeError: no type or entryTypes were provided. PASS observer.observe("mark") threw exception TypeError: Type error. PASS observer.observe({}) threw exception TypeError: no type or entryTypes were provided. PASS observer.observe({entryTypes:"mark"}) threw exception TypeError: Value is not a sequence. PASS observer.observe({entryTypes:[]}) did not throw exception. PASS observer.observe({entryTypes:["not-real"]}) did not throw exception. PASS observer.observe({entryTypes:["mark"]}) did not throw exception. PASS observer.observe({entryTypes:["mark", "not-real"]}) did not throw exception. PASS observer.observe({entryTypes:["mark", "measure"]}) did not throw exception. PASS observer.disconnect() did not throw exception. PASS observer.disconnect() did not throw exception. PerformanceObserverEntryList PASS PerformanceObserverEntryList is defined. PASS PerformanceObserverEntryList.prototype.getEntries is defined. PASS PerformanceObserverEntryList.prototype.getEntriesByType is defined. PASS PerformanceObserverEntryList.prototype.getEntriesByName is defined. PASS new PerformanceObserverEntryList() threw exception TypeError: Illegal constructor. Starting worker: resources/observer-api.js [Worker] PerformanceObserver PASS [Worker] PerformanceObserver is defined. PASS [Worker] PerformanceObserver.prototype.observe is defined. PASS [Worker] PerformanceObserver.prototype.disconnect is defined. PASS [Worker] PerformanceObserver() threw exception TypeError: Constructor requires 'new' operator. PASS [Worker] new PerformanceObserver() threw exception TypeError: Not enough arguments. PASS [Worker] new PerformanceObserver(1) threw exception TypeError: Argument 1 ('callback') to the PerformanceObserver constructor must be a function. PASS [Worker] observer = new PerformanceObserver(function() {}) did not throw exception. PASS [Worker] observer.observe() threw exception TypeError: no type or entryTypes were provided. PASS [Worker] observer.observe("mark") threw exception TypeError: Type error. PASS [Worker] observer.observe({}) threw exception TypeError: no type or entryTypes were provided. PASS [Worker] observer.observe({entryTypes:"mark"}) threw exception TypeError: Value is not a sequence. PASS [Worker] observer.observe({entryTypes:[]}) did not throw exception. PASS [Worker] observer.observe({entryTypes:["not-real"]}) did not throw exception. PASS [Worker] observer.observe({entryTypes:["mark"]}) did not throw exception. PASS [Worker] observer.observe({entryTypes:["mark", "not-real"]}) did not throw exception. PASS [Worker] observer.observe({entryTypes:["mark", "measure"]}) did not throw exception. PASS [Worker] observer.disconnect() did not throw exception. PASS [Worker] observer.disconnect() did not throw exception. [Worker] [Worker] PerformanceObserverEntryList PASS [Worker] PerformanceObserverEntryList is defined. PASS [Worker] PerformanceObserverEntryList.prototype.getEntries is defined. PASS [Worker] PerformanceObserverEntryList.prototype.getEntriesByType is defined. PASS [Worker] PerformanceObserverEntryList.prototype.getEntriesByName is defined. PASS [Worker] new PerformanceObserverEntryList() threw exception TypeError: Illegal constructor. PASS successfullyParsed is true TEST COMPLETE