| <!DOCTYPE HTML> | 
 | <meta charset=utf-8> | 
 | <title>Largest Contentful Paint: toJSON</title> | 
 | <body> | 
 | <script src="/resources/testharness.js"></script> | 
 | <script src="/resources/testharnessreport.js"></script> | 
 | <p>Text!</p> | 
 | <script> | 
 |  async_test(function (t) { | 
 |  if (!window.LargestContentfulPaint) { | 
 |  assert_unreached("LargestContentfulPaint is not implemented"); | 
 |  } | 
 |  const observer = new PerformanceObserver( | 
 |  t.step_func_done(function(entryList) { | 
 |  const entry = entryList.getEntries()[0]; | 
 |  assert_equals(typeof(entry.toJSON), 'function'); | 
 |  const json = entry.toJSON(); | 
 |  assert_equals(typeof(json), 'object'); | 
 |  const keys = [ | 
 |  // PerformanceEntry | 
 |  'name', | 
 |  'entryType', | 
 |  'startTime', | 
 |  'duration', | 
 |  // LargestContentfulPaint | 
 |  'renderTime', | 
 |  'loadTime', | 
 |  'size', | 
 |  'id', | 
 |  'url', | 
 |  'element', | 
 |  ]; | 
 |  for (const key of keys) { | 
 |  assert_equals(json[key], entry[key], | 
 |  'LargestContentfulPaint ${key} entry does not match its toJSON value'); | 
 |  } | 
 |  }) | 
 |  ); | 
 |  observer.observe({type: 'largest-contentful-paint', buffered: true}); | 
 |  }, 'Test toJSON() in LargestContentfulPaint.'); | 
 | </script> | 
 | </body> |