27 lines
1.2 KiB
HTML
27 lines
1.2 KiB
HTML
<!doctype html>
|
|
<meta charset="utf-8">
|
|
<title>event.timeStamp is initialized using event's relevant global object</title>
|
|
<link rel="help" href="https://dom.spec.whatwg.org/#ref-for-dom-event-timestamp%E2%91%A1">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
|
|
<body>
|
|
<script>
|
|
const t = async_test();
|
|
t.step_timeout(() => {
|
|
const iframeDelayed = document.createElement("iframe");
|
|
iframeDelayed.onload = t.step_func_done(() => {
|
|
// Use eval() to eliminate false-positive test result for WebKit builds before r280256,
|
|
// which invoked WebIDL accessors in context of lexical (caller) global object.
|
|
const timeStampExpected = iframeDelayed.contentWindow.eval(`new Event("foo").timeStamp`);
|
|
const eventDelayed = new iframeDelayed.contentWindow.Event("foo");
|
|
|
|
const {get} = Object.getOwnPropertyDescriptor(Event.prototype, "timeStamp");
|
|
assert_approx_equals(get.call(eventDelayed), timeStampExpected, 5, "via Object.getOwnPropertyDescriptor");
|
|
|
|
Object.setPrototypeOf(eventDelayed, Event.prototype);
|
|
assert_approx_equals(eventDelayed.timeStamp, timeStampExpected, 5, "via Object.setPrototypeOf");
|
|
});
|
|
document.body.append(iframeDelayed);
|
|
}, 1000);
|
|
</script>
|