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

