cross-global-npo.html (1439B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <title>Named access across globals</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <div id=log></div> 7 <script> 8 async_test(function() { 9 var iframe = document.createElement("iframe"); 10 iframe.src = "cross-global-support.html"; 11 document.body.appendChild(iframe); 12 iframe.onload = this.step_func_done(function() { 13 var name = "named"; 14 var win = iframe.contentWindow; 15 var element = win.document.getElementById(name); 16 17 var expectedValues = [ 18 // [value, is own property] 19 [element, false, "window"], 20 [element, false, "Window.prototype"], 21 [element, true, "named prototype object"], 22 [undefined, false, "EventTarget.prototype"], 23 [undefined, false, "Object.prototype"], 24 ]; 25 for (var object = win; object; object = Object.getPrototypeOf(object)) { 26 var expected = expectedValues.shift(); 27 assert_equals(object[name], expected[0], "[[Get]] on " + expected[2]); 28 var desc = Object.getOwnPropertyDescriptor(object, name); 29 if (expected[1]) { 30 assert_not_equals(desc, undefined, "[[GetOwnProperty]] on " + expected[2] + " should return something"); 31 assert_equals(desc.value, element, "[[GetOwnProperty]] on " + expected[2]); 32 } else { 33 assert_equals(desc, undefined, "[[GetOwnProperty]] on " + expected[2]); 34 } 35 } 36 }); 37 }); 38 </script>