1<!doctype html> 2<meta charset="utf-8"> 3<title>event.timeStamp is initialized using event's relevant global object</title> 4<link rel="help" href="https://dom.spec.whatwg.org/#ref-for-dom-event-timestamp%E2%91%A1"> 5<script src="/resources/testharness.js"></script> 6<script src="/resources/testharnessreport.js"></script> 7 8<body> 9<script> 10const t = async_test(); 11t.step_timeout(() => { 12 const iframeDelayed = document.createElement("iframe"); 13 iframeDelayed.onload = t.step_func_done(() => { 14 // Use eval() to eliminate false-positive test result for WebKit builds before r280256, 15 // which invoked WebIDL accessors in context of lexical (caller) global object. 16 const timeStampExpected = iframeDelayed.contentWindow.eval(`new Event("foo").timeStamp`); 17 const eventDelayed = new iframeDelayed.contentWindow.Event("foo"); 18 19 const {get} = Object.getOwnPropertyDescriptor(Event.prototype, "timeStamp"); 20 assert_approx_equals(get.call(eventDelayed), timeStampExpected, 5, "via Object.getOwnPropertyDescriptor"); 21 22 Object.setPrototypeOf(eventDelayed, Event.prototype); 23 assert_approx_equals(eventDelayed.timeStamp, timeStampExpected, 5, "via Object.setPrototypeOf"); 24 }); 25 document.body.append(iframeDelayed); 26}, 1000); 27</script> 28