| <!DOCTYPE HTML> |
| <meta charset=utf-8> |
| <title>User Timing: L2 vs L3 feature detection</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| test(() => { |
| // Feature detection for PerformanceMark. |
| assert_equals(typeof(PerformanceMark.prototype), "object"); |
| // Test for UserTiming L3. |
| if (PerformanceMark.prototype.hasOwnProperty('detail')) { |
| assert_equals(typeof(performance.mark("mark")), "object", |
| "performance.mark should return an object in UserTiming L3."); |
| } |
| // Test for UserTiming L2. |
| else { |
| assert_equals(typeof(performance.mark("mark")), "undefined", |
| "performance.mark should be void in UserTiming L2."); |
| } |
| }, "Test PerformanceMark existence and feature detection"); |
| |
| test(() => { |
| // Feature detection for PerformanceMeasure. |
| assert_equals(typeof(PerformanceMeasure.prototype), "object"); |
| // Test for UserTiming L3. |
| if (PerformanceMeasure.prototype.hasOwnProperty('detail')) { |
| assert_equals(typeof(performance.measure("measure")), "object", |
| "performance.measure should return an object in UserTiming L3."); |
| } |
| // Test for UserTiming L2. |
| else { |
| assert_equals(typeof(performance.measure("measure")), "undefined", |
| "performance.measure should be void in UserTiming L2."); |
| } |
| }, "Test PerformanceMeasure existence and feature detection"); |
| </script> |