summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/browsers/the-window-object/named-access-on-the-window-object/prototype.html
blob: 910374381be85e5b37e1f343b6070ce7a776fe2b (plain)
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>