Basic Behavior test for PerformanceObserver APIs. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Inside PerformanceObserver callback PASS argumentsLength === 2 is true PASS list instanceof PerformanceObserverEntryList is true PASS obs instanceof PerformanceObserver is true PASS obs === observer is true PASS thisObject instanceof PerformanceObserver is true PASS thisObject === observer is true PerformanceObserverEntryList APIs PASS list.getEntries() instanceof Array is true PASS list.getEntries().length === 2 is true PASS list.getEntries()[0] instanceof PerformanceEntry is true PASS list.getEntries()[0].name is "mark3" PASS list.getEntries()[1].name is "mark4" PASS list.getEntries()[0].startTime <= list.getEntries()[1].startTime is true PASS list.getEntriesByType() threw exception TypeError: Not enough arguments. PASS list.getEntriesByType("not-real").length === 0 is true PASS list.getEntriesByType("mark").length === 2 is true PASS list.getEntriesByType("mark")[0] instanceof PerformanceEntry is true PASS list.getEntriesByType("mark")[0].name is "mark3" PASS list.getEntriesByType("mark")[1].name is "mark4" PASS list.getEntriesByName() threw exception TypeError: Not enough arguments. PASS list.getEntriesByName("not-real").length === 0 is true PASS list.getEntriesByName("mark1").length === 0 is true PASS list.getEntriesByName("mark3").length === 1 is true PASS list.getEntriesByName("mark3")[0] instanceof PerformanceEntry is true PASS list.getEntriesByName("mark3")[0].name is "mark3" PASS list.getEntriesByName("mark4").length === 1 is true PASS list.getEntriesByName("mark4")[0] instanceof PerformanceEntry is true PASS list.getEntriesByName("mark4")[0].name is "mark4" PASS list.getEntriesByName() threw exception TypeError: Not enough arguments. PASS list.getEntriesByName("not-real").length === 0 is true PASS list.getEntriesByName("mark1").length === 0 is true PASS list.getEntriesByName("mark3").length === 1 is true PASS list.getEntriesByName("mark3")[0] instanceof PerformanceEntry is true PASS list.getEntriesByName("mark3")[0].name is "mark3" PASS list.getEntriesByName("mark4").length === 1 is true PASS list.getEntriesByName("mark4")[0] instanceof PerformanceEntry is true PASS list.getEntriesByName("mark4")[0].name is "mark4" PASS list.getEntriesByName("mark3", "not-real").length === 0 is true PASS list.getEntriesByName("mark3", "mark").length === 1 is true PASS list.getEntriesByName(null, "mark").length === 0 is true PASS list.getEntriesByName(undefined, "mark").length === 0 is true Starting worker: resources/observer-basic.js [Worker] Inside PerformanceObserver callback PASS [Worker] argumentsLength === 2 is true PASS [Worker] list instanceof PerformanceObserverEntryList is true PASS [Worker] obs instanceof PerformanceObserver is true PASS [Worker] obs === observer is true PASS [Worker] thisObject instanceof PerformanceObserver is true PASS [Worker] thisObject === observer is true [Worker] [Worker] PerformanceObserverEntryList APIs PASS [Worker] list.getEntries() instanceof Array is true PASS [Worker] list.getEntries().length === 2 is true PASS [Worker] list.getEntries()[0] instanceof PerformanceEntry is true PASS [Worker] list.getEntries()[0].name is "mark3" PASS [Worker] list.getEntries()[1].name is "mark4" PASS [Worker] list.getEntries()[0].startTime <= list.getEntries()[1].startTime is true PASS [Worker] list.getEntriesByType() threw exception TypeError: Not enough arguments. PASS [Worker] list.getEntriesByType("not-real").length === 0 is true PASS [Worker] list.getEntriesByType("mark").length === 2 is true PASS [Worker] list.getEntriesByType("mark")[0] instanceof PerformanceEntry is true PASS [Worker] list.getEntriesByType("mark")[0].name is "mark3" PASS [Worker] list.getEntriesByType("mark")[1].name is "mark4" PASS [Worker] list.getEntriesByName() threw exception TypeError: Not enough arguments. PASS [Worker] list.getEntriesByName("not-real").length === 0 is true PASS [Worker] list.getEntriesByName("mark1").length === 0 is true PASS [Worker] list.getEntriesByName("mark3").length === 1 is true PASS [Worker] list.getEntriesByName("mark3")[0] instanceof PerformanceEntry is true PASS [Worker] list.getEntriesByName("mark3")[0].name is "mark3" PASS [Worker] list.getEntriesByName("mark4").length === 1 is true PASS [Worker] list.getEntriesByName("mark4")[0] instanceof PerformanceEntry is true PASS [Worker] list.getEntriesByName("mark4")[0].name is "mark4" PASS [Worker] list.getEntriesByName() threw exception TypeError: Not enough arguments. PASS [Worker] list.getEntriesByName("not-real").length === 0 is true PASS [Worker] list.getEntriesByName("mark1").length === 0 is true PASS [Worker] list.getEntriesByName("mark3").length === 1 is true PASS [Worker] list.getEntriesByName("mark3")[0] instanceof PerformanceEntry is true PASS [Worker] list.getEntriesByName("mark3")[0].name is "mark3" PASS [Worker] list.getEntriesByName("mark4").length === 1 is true PASS [Worker] list.getEntriesByName("mark4")[0] instanceof PerformanceEntry is true PASS [Worker] list.getEntriesByName("mark4")[0].name is "mark4" PASS [Worker] list.getEntriesByName("mark3", "not-real").length === 0 is true PASS [Worker] list.getEntriesByName("mark3", "mark").length === 1 is true PASS [Worker] list.getEntriesByName(null, "mark").length === 0 is true PASS [Worker] list.getEntriesByName(undefined, "mark").length === 0 is true PASS successfullyParsed is true TEST COMPLETE