1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
<!doctype html>
<meta charset=utf-8>
<title>Named access with shadowing properties</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
test(function() {
var name = "named1";
window[name] = "shadowing";
var element = document.createElement("span");
element.id = name;
document.body.appendChild(element);
assert_equals(window[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(window, name).value, "shadowing");
assert_equals(Window.prototype[name], element);
assert_equals(Object.getOwnPropertyDescriptor(Window.prototype, name), undefined);
var npo = Object.getPrototypeOf(Window.prototype);
assert_equals(npo[name], element);
assert_equals(Object.getOwnPropertyDescriptor(npo, name).value, element);
assert_equals(EventTarget.prototype[name], undefined);
assert_equals(Object.getOwnPropertyDescriptor(EventTarget.prototype, name), undefined);
}, "Property on window.");
test(function() {
var name = "named2";
Window.prototype[name] = "shadowing";
var element = document.createElement("span");
element.id = name;
document.body.appendChild(element);
assert_equals(window[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(window, name), undefined);
assert_equals(Window.prototype[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(Window.prototype, name).value, "shadowing");
var npo = Object.getPrototypeOf(Window.prototype);
assert_equals(npo[name], element);
assert_equals(Object.getOwnPropertyDescriptor(npo, name).value, element);
assert_equals(EventTarget.prototype[name], undefined);
assert_equals(Object.getOwnPropertyDescriptor(EventTarget.prototype, name), undefined);
}, "Property on Window.prototype.");
test(function() {
var name = "named3";
EventTarget.prototype[name] = "shadowing";
var element = document.createElement("span");
element.id = name;
document.body.appendChild(element);
assert_equals(window[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(window, name), undefined);
assert_equals(Window.prototype[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(Window.prototype, name), undefined);
var npo = Object.getPrototypeOf(Window.prototype);
assert_equals(npo[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(npo, name), undefined);
assert_equals(EventTarget.prototype[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(EventTarget.prototype, name).value, "shadowing");
}, "Property on EventTarget.prototype.");
test(function() {
var name = "named4";
Object.prototype[name] = "shadowing";
var element = document.createElement("span");
element.id = name;
document.body.appendChild(element);
assert_equals(window[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(window, name), undefined);
assert_equals(Window.prototype[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(Window.prototype, name), undefined);
var npo = Object.getPrototypeOf(Window.prototype);
assert_equals(npo[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(npo, name), undefined);
assert_equals(EventTarget.prototype[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(EventTarget.prototype, name), undefined);
assert_equals(Object.prototype[name], "shadowing");
assert_equals(Object.getOwnPropertyDescriptor(Object.prototype, name).value, "shadowing");
}, "Property on Object.prototype.");
</script>
|