Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!doctype html>
<meta charset=utf-8>
<title>Named access across globals</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
async_test(function() {
var iframe = document.createElement("iframe");
iframe.src = "cross-global-support.html";
document.body.appendChild(iframe);
iframe.onload = this.step_func_done(function() {
var name = "named";
var win = iframe.contentWindow;
var element = win.document.getElementById(name);
var expectedValues = [
// [value, is own property]
[element, false, "window"],
[element, false, "Window.prototype"],
[element, true, "named prototype object"],
[undefined, false, "EventTarget.prototype"],
[undefined, false, "Object.prototype"],
];
for (var object = win; object; object = Object.getPrototypeOf(object)) {
var expected = expectedValues.shift();
assert_equals(object[name], expected[0], "[[Get]] on " + expected[2]);
var desc = Object.getOwnPropertyDescriptor(object, name);
if (expected[1]) {
assert_not_equals(desc, undefined, "[[GetOwnProperty]] on " + expected[2] + " should return something");
assert_equals(desc.value, element, "[[GetOwnProperty]] on " + expected[2]);
} else {
assert_equals(desc, undefined, "[[GetOwnProperty]] on " + expected[2]);
}
}
});
});
</script>