summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/user-timing/mark-measure-feature-detection.html
blob: 6f1ad489e95680fc5d1be4e25dcaa2eeee9a0aa5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!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>