Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: third_party/WebKit/LayoutTests/imported/wpt/custom-elements/htmlconstructor/newtarget.html

Issue 2468053002: Import wpt@9fcccf38b6be00f71ffa6bd6e29c5aa1ef25ee8c (Closed)
Patch Set: Skip cssom and svg/shapes, remove unwanted baseline Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <title>Custom Elements: [HTMLConstructor] derives prototype from NewTarget</titl e> 2 <title>Custom Elements: [HTMLConstructor] derives prototype from NewTarget</titl e>
3 <meta name="author" title="Domenic Denicola" href="mailto:d@domenic.me"> 3 <meta name="author" title="Domenic Denicola" href="mailto:d@domenic.me">
4 <meta name="help" content="https://html.spec.whatwg.org/multipage/dom.html#htmlc onstructor"> 4 <meta name="help" content="https://html.spec.whatwg.org/multipage/dom.html#htmlc onstructor">
5 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharness.js"></script>
6 <script src="/resources/testharnessreport.js"></script> 6 <script src="/resources/testharnessreport.js"></script>
7 <script src="../resources/custom-elements-helpers.js"></script> 7 <script src="../resources/custom-elements-helpers.js"></script>
8 <body> 8 <body>
9 <script> 9 <script>
10 "use strict"; 10 "use strict";
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 }); 94 });
95 95
96 [null, undefined, 5, "string"].forEach(function (notAnObject) { 96 [null, undefined, 5, "string"].forEach(function (notAnObject) {
97 test_with_window(w => { 97 test_with_window(w => {
98 // We have to return an object during define(), but not during super() 98 // We have to return an object during define(), but not during super()
99 let returnNotAnObject = false; 99 let returnNotAnObject = false;
100 100
101 function TestElement() { 101 function TestElement() {
102 const o = Reflect.construct(w.HTMLParagraphElement, [], new.target); 102 const o = Reflect.construct(w.HTMLParagraphElement, [], new.target);
103 103
104 assert_equals(Object.getPrototypeOf(o), window.HTMLParagraphElement, 104 assert_equals(Object.getPrototypeOf(o), window.HTMLParagraphElement.protot ype,
105 "Must use the HTMLParagraphElement from the realm of NewTarget"); 105 "Must use the HTMLParagraphElement from the realm of NewTarget");
106 assert_not_equals(Object.getPrototypeOf(o), w.HTMLParagraphElement, 106 assert_not_equals(Object.getPrototypeOf(o), w.HTMLParagraphElement.prototy pe,
107 "Must not use the HTMLParagraphElement from the realm of the active func tion object (w.HTMLParagraphElement)"); 107 "Must not use the HTMLParagraphElement from the realm of the active func tion object (w.HTMLParagraphElement)");
108 108
109 return o; 109 return o;
110 } 110 }
111 111
112 const ElementWithDynamicPrototype = new Proxy(TestElement, { 112 const ElementWithDynamicPrototype = new Proxy(TestElement, {
113 get: function (target, name) { 113 get: function (target, name) {
114 if (name == "prototype") 114 if (name == "prototype")
115 return returnNotAnObject ? notAnObject : {}; 115 return returnNotAnObject ? notAnObject : {};
116 return target[name]; 116 return target[name];
117 } 117 }
118 }); 118 });
119 119
120 w.customElements.define("test-element", ElementWithDynamicPrototype, { exten ds: "p" }); 120 w.customElements.define("test-element", ElementWithDynamicPrototype, { exten ds: "p" });
121 121
122 returnNotAnObject = true; 122 returnNotAnObject = true;
123 new ElementWithDynamicPrototype(); 123 new ElementWithDynamicPrototype();
124 }, "If prototype is not object (" + notAnObject + "), derives the fallback fro m NewTarget's realm (customized built-in elements)"); 124 }, "If prototype is not object (" + notAnObject + "), derives the fallback fro m NewTarget's realm (customized built-in elements)");
125 }); 125 });
126 126
127 </script> 127 </script>
128 </body> 128 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698