Basic Interface test for performance-timeline APIs. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PerformanceEntry PASS PerformanceEntry is defined. PASS "name" in PerformanceEntry.prototype is true PASS "entryType" in PerformanceEntry.prototype is true PASS "startTime" in PerformanceEntry.prototype is true PASS "duration" in PerformanceEntry.prototype is true PASS new PerformanceEntry() threw exception TypeError: Illegal constructor. Performance extensions PASS Performance.prototype.getEntries is defined. PASS Performance.prototype.getEntriesByType is defined. PASS Performance.prototype.getEntriesByName is defined. PASS performance.getEntries() instanceof Array is true PASS performance.getEntries().length === 1 is true PASS performance.mark("test"); did not throw exception. PASS performance.getEntries().length === 2 is true PASS performance.getEntries()[markIndex] instanceof PerformanceEntry is true PASS performance.getEntries()[markIndex].name is "test" PASS performance.getEntries()[markIndex].entryType is "mark" PASS typeof performance.getEntries()[markIndex].startTime === "number" is true PASS typeof performance.getEntries()[markIndex].duration === "number" is true PASS performance.getEntriesByType() threw exception TypeError: Not enough arguments. PASS performance.getEntriesByType("not-real").length === 0 is true PASS performance.getEntriesByType("mark").length === 1 is true PASS performance.getEntriesByType("mark")[0] instanceof PerformanceEntry is true PASS performance.getEntriesByType("mark")[0].name is "test" PASS performance.getEntriesByType("mark")[0].entryType is "mark" PASS typeof performance.getEntriesByType("mark")[0].startTime === "number" is true PASS typeof performance.getEntriesByType("mark")[0].duration === "number" is true PASS performance.getEntriesByName() threw exception TypeError: Not enough arguments. PASS performance.getEntriesByName("not-real").length === 0 is true PASS performance.getEntriesByName("test").length === 1 is true PASS performance.getEntriesByName("test")[0] instanceof PerformanceEntry is true PASS performance.getEntriesByName("test")[0].name is "test" PASS performance.getEntriesByName("test")[0].entryType is "mark" PASS typeof performance.getEntriesByName("test")[0].startTime === "number" is true PASS typeof performance.getEntriesByName("test")[0].duration === "number" is true PASS performance.getEntriesByName("test", "not-real").length === 0 is true PASS performance.getEntriesByName("test", "mark").length === 1 is true Starting worker: resources/timeline-api.js [Worker] PerformanceEntry PASS [Worker] PerformanceEntry is defined. PASS [Worker] "name" in PerformanceEntry.prototype is true PASS [Worker] "entryType" in PerformanceEntry.prototype is true PASS [Worker] "startTime" in PerformanceEntry.prototype is true PASS [Worker] "duration" in PerformanceEntry.prototype is true PASS [Worker] new PerformanceEntry() threw exception TypeError: Illegal constructor. [Worker] [Worker] Performance extensions PASS [Worker] Performance.prototype.getEntries is defined. PASS [Worker] Performance.prototype.getEntriesByType is defined. PASS [Worker] Performance.prototype.getEntriesByName is defined. PASS [Worker] performance.getEntries() instanceof Array is true PASS [Worker] performance.getEntries().length === 0 is true PASS [Worker] performance.mark("test"); did not throw exception. PASS [Worker] performance.getEntries().length === 1 is true PASS [Worker] performance.getEntries()[markIndex] instanceof PerformanceEntry is true PASS [Worker] performance.getEntries()[markIndex].name is "test" PASS [Worker] performance.getEntries()[markIndex].entryType is "mark" PASS [Worker] typeof performance.getEntries()[markIndex].startTime === "number" is true PASS [Worker] typeof performance.getEntries()[markIndex].duration === "number" is true PASS [Worker] performance.getEntriesByType() threw exception TypeError: Not enough arguments. PASS [Worker] performance.getEntriesByType("not-real").length === 0 is true PASS [Worker] performance.getEntriesByType("mark").length === 1 is true PASS [Worker] performance.getEntriesByType("mark")[0] instanceof PerformanceEntry is true PASS [Worker] performance.getEntriesByType("mark")[0].name is "test" PASS [Worker] performance.getEntriesByType("mark")[0].entryType is "mark" PASS [Worker] typeof performance.getEntriesByType("mark")[0].startTime === "number" is true PASS [Worker] typeof performance.getEntriesByType("mark")[0].duration === "number" is true PASS [Worker] performance.getEntriesByName() threw exception TypeError: Not enough arguments. PASS [Worker] performance.getEntriesByName("not-real").length === 0 is true PASS [Worker] performance.getEntriesByName("test").length === 1 is true PASS [Worker] performance.getEntriesByName("test")[0] instanceof PerformanceEntry is true PASS [Worker] performance.getEntriesByName("test")[0].name is "test" PASS [Worker] performance.getEntriesByName("test")[0].entryType is "mark" PASS [Worker] typeof performance.getEntriesByName("test")[0].startTime === "number" is true PASS [Worker] typeof performance.getEntriesByName("test")[0].duration === "number" is true PASS [Worker] performance.getEntriesByName("test", "not-real").length === 0 is true PASS [Worker] performance.getEntriesByName("test", "mark").length === 1 is true PASS successfullyParsed is true TEST COMPLETE