%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
// test data var testThreshold = 20; var expectedTimes = new Array(); function match_entries(entries, index) { var entry = entries[index]; var match = self.performance.getEntriesByName("mark")[index]; assert_equals(entry.name, match.name, "entry.name"); assert_equals(entry.startTime, match.startTime, "entry.startTime"); assert_equals(entry.entryType, match.entryType, "entry.entryType"); assert_equals(entry.duration, match.duration, "entry.duration"); } function filter_entries_by_type(entryList, entryType) { var testEntries = new Array(); // filter entryList for (var i in entryList) { if (entryList[i].entryType == entryType) { testEntries.push(entryList[i]); } } return testEntries; } test(function () { // create first mark self.performance.mark("mark"); expectedTimes[0] = self.performance.now(); const entries = self.performance.getEntriesByName("mark"); assert_equals(entries.length, 1); }, "Entry 0 is properly created"); test(function () { // create second, duplicate mark self.performance.mark("mark"); expectedTimes[1] = self.performance.now(); const entries = self.performance.getEntriesByName("mark"); assert_equals(entries.length, 2); }, "Entry 1 is properly created"); function test_mark(index) { test(function () { const entries = self.performance.getEntriesByName("mark"); assert_equals(entries[index].name, "mark", "Entry has the proper name"); }, "Entry " + index + " has the proper name"); test(function () { const entries = self.performance.getEntriesByName("mark"); assert_approx_equals(entries[index].startTime, expectedTimes[index], testThreshold); }, "Entry " + index + " startTime is approximately correct (up to " + testThreshold + "ms difference allowed)"); test(function () { const entries = self.performance.getEntriesByName("mark"); assert_equals(entries[index].entryType, "mark"); }, "Entry " + index + " has the proper entryType"); test(function () { const entries = self.performance.getEntriesByName("mark"); assert_equals(entries[index].duration, 0); }, "Entry " + index + " duration == 0"); test(function () { const entries = self.performance.getEntriesByName("mark", "mark"); assert_equals(entries[index].name, "mark"); }, "getEntriesByName(\"mark\", \"mark\")[" + index + "] returns an " + "object containing a \"mark\" mark"); test(function () { const entries = self.performance.getEntriesByName("mark", "mark"); match_entries(entries, index); }, "The mark returned by getEntriesByName(\"mark\", \"mark\")[" + index + "] matches the mark returned by " + "getEntriesByName(\"mark\")[" + index + "]"); test(function () { const entries = filter_entries_by_type(self.performance.getEntries(), "mark"); assert_equals(entries[index].name, "mark"); }, "getEntries()[" + index + "] returns an " + "object containing a \"mark\" mark"); test(function () { const entries = filter_entries_by_type(self.performance.getEntries(), "mark"); match_entries(entries, index); }, "The mark returned by getEntries()[" + index + "] matches the mark returned by " + "getEntriesByName(\"mark\")[" + index + "]"); test(function () { const entries = self.performance.getEntriesByType("mark"); assert_equals(entries[index].name, "mark"); }, "getEntriesByType(\"mark\")[" + index + "] returns an " + "object containing a \"mark\" mark"); test(function () { const entries = self.performance.getEntriesByType("mark"); match_entries(entries, index); }, "The mark returned by getEntriesByType(\"mark\")[" + index + "] matches the mark returned by " + "getEntriesByName(\"mark\")[" + index + "]"); } for (var i = 0; i < expectedTimes.length; i++) { test_mark(i); }