<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[195907] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/195907">195907</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-01-30 13:01:09 -0800 (Sat, 30 Jan 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[JS Bindings] prototype.constructor should be writable
https://bugs.webkit.org/show_bug.cgi?id=149412
&lt;rdar://problem/22545096&gt;

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C tests now that more checks are passing.

* web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
* web-platform-tests/dom/interfaces-expected.txt:
* web-platform-tests/fetch/api/headers/headers-idl-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

prototype.constructor should have the following properties:
{ [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }

as per the Web IDL specification:
https://heycam.github.io/webidl/#interface-prototype-object

In WebKit, it is currently not writable. It is writable in Firefox.

This patch was first landed in <a href="http://trac.webkit.org/projects/webkit/changeset/190085">r190085</a> but was rolled out for causing
crashes: &lt;rdar://problem/22825602&gt;. The issue was that even though we
marked constructor as writable, we failed to generate a setter for it.
This patch addresses the issue and the crash in &lt;rdar://problem/22825602&gt;
no longer occurs after this change. A regression test is also added for
this crash.

Tests:
fast/dom/HTMLDocument/constructor-setter-crash.html
fast/dom/prototype-constructor-setter.html

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributesHashTable):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::setJSTestActiveDOMObjectConstructor):
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::setJSTestClassWithJSBuiltinConstructorConstructor):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::setJSTestCustomConstructorWithNoInterfaceObjectConstructor):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::setJSTestCustomNamedGetterConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::setJSTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::setJSTestEventTargetConstructor):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::setJSTestExceptionConstructor):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::setJSTestGenerateIsReachableConstructor):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::setJSTestInterfaceConstructor):
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::setJSTestJSBuiltinConstructorConstructor):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::setJSTestMediaQueryListListenerConstructor):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::setJSTestNamedConstructorConstructor):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::setJSTestNodeConstructor):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::setJSTestNondeterministicConstructor):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::setJSTestOverloadedConstructorsConstructor):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::setJSTestOverrideBuiltinsConstructor):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::setJSTestSerializedScriptValueInterfaceConstructor):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::setJSTestTypedefsConstructor):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::setJSattributeConstructor):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::setJSreadonlyConstructor):
* page/DOMWindow.idl:

LayoutTests:

* fast/dom/HTMLDocument/constructor-setter-crash-expected.txt: Added.
* fast/dom/HTMLDocument/constructor-setter-crash.html: Added.
Add regression test for crash at &lt;rdar://problem/22825602&gt;.

* fast/dom/prototype-constructor-setter-expected.txt: Added.
* fast/dom/prototype-constructor-setter.html: Added.
Add new test checking that prototype.constructor is writable.

* js/dom/constructor-attributes-expected.txt:
Rebaseline existing test now that prototype.constructor is writable.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestinterfacesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/interfaces-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdominterfacesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheadersidlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomconstructorattributesexpectedtxt">trunk/LayoutTests/js/dom/constructor-attributes-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsIDLAttributestxt">trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSattributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowidl">trunk/Source/WebCore/page/DOMWindow.idl</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastdomHTMLDocumentconstructorsettercrashexpectedtxt">trunk/LayoutTests/fast/dom/HTMLDocument/constructor-setter-crash-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomHTMLDocumentconstructorsettercrashhtml">trunk/LayoutTests/fast/dom/HTMLDocument/constructor-setter-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastdomprototypeconstructorsetterexpectedtxt">trunk/LayoutTests/fast/dom/prototype-constructor-setter-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomprototypeconstructorsetterhtml">trunk/LayoutTests/fast/dom/prototype-constructor-setter.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/LayoutTests/ChangeLog        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -1,5 +1,24 @@
</span><span class="cx"> 2016-01-30  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        [JS Bindings] prototype.constructor should be writable
+        https://bugs.webkit.org/show_bug.cgi?id=149412
+        &lt;rdar://problem/22545096&gt;
+
+        Reviewed by Darin Adler.
+
+        * fast/dom/HTMLDocument/constructor-setter-crash-expected.txt: Added.
+        * fast/dom/HTMLDocument/constructor-setter-crash.html: Added.
+        Add regression test for crash at &lt;rdar://problem/22825602&gt;.
+
+        * fast/dom/prototype-constructor-setter-expected.txt: Added.
+        * fast/dom/prototype-constructor-setter.html: Added.
+        Add new test checking that prototype.constructor is writable.
+
+        * js/dom/constructor-attributes-expected.txt:
+        Rebaseline existing test now that prototype.constructor is writable.
+
+2016-01-30  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Move more 'constructor' properties to the prototype
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=153667
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLDocumentconstructorsettercrashexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLDocument/constructor-setter-crash-expected.txt (0 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLDocument/constructor-setter-crash-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLDocument/constructor-setter-crash-expected.txt        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Make sure we don't crash when setting HTMLDocument.constructor
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS document.constructor = 'test' did not throw exception.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomHTMLDocumentconstructorsettercrashhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/HTMLDocument/constructor-setter-crash.html (0 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/HTMLDocument/constructor-setter-crash.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLDocument/constructor-setter-crash.html        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script&gt;
+description(&quot;Make sure we don't crash when setting HTMLDocument.constructor&quot;);
+
+shouldNotThrow(&quot;document.constructor = 'test'&quot;);
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomprototypeconstructorsetterexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/prototype-constructor-setter-expected.txt (0 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/prototype-constructor-setter-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/dom/prototype-constructor-setter-expected.txt        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Makes sure prototype.constructor is writable
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS document.body.constructor is HTMLBodyElement.prototype.constructor
+PASS document.body.__proto__.constructor is HTMLBodyElement.prototype.constructor
+PASS document.body.__proto__.constructor = &quot;testPrototype&quot; did not throw exception.
+PASS document.body.__proto__.constructor is &quot;testPrototype&quot;
+PASS document.body.constructor is &quot;testPrototype&quot;
+PASS document.body.constructor = &quot;testInstance&quot; did not throw exception.
+PASS document.body.constructor is &quot;testInstance&quot;
+PASS document.body.__proto__.constructor is &quot;testPrototype&quot;
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomprototypeconstructorsetterhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/prototype-constructor-setter.html (0 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/prototype-constructor-setter.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/prototype-constructor-setter.html        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script&gt;
+description(&quot;Makes sure prototype.constructor is writable&quot;);
+
+shouldBe('document.body.constructor', 'HTMLBodyElement.prototype.constructor');
+shouldBe('document.body.__proto__.constructor', 'HTMLBodyElement.prototype.constructor');
+
+shouldNotThrow('document.body.__proto__.constructor = &quot;testPrototype&quot;');
+shouldBeEqualToString(&quot;document.body.__proto__.constructor&quot;, &quot;testPrototype&quot;);
+shouldBeEqualToString(&quot;document.body.constructor&quot;, &quot;testPrototype&quot;);
+
+shouldNotThrow('document.body.constructor = &quot;testInstance&quot;');
+shouldBeEqualToString(&quot;document.body.constructor&quot;, &quot;testInstance&quot;);
+shouldBeEqualToString(&quot;document.body.__proto__.constructor&quot;, &quot;testPrototype&quot;);
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -1,5 +1,20 @@
</span><span class="cx"> 2016-01-30  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        [JS Bindings] prototype.constructor should be writable
+        https://bugs.webkit.org/show_bug.cgi?id=149412
+        &lt;rdar://problem/22545096&gt;
+
+        Reviewed by Darin Adler.
+
+        Rebaseline W3C tests now that more checks are passing.
+
+        * web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
+        * web-platform-tests/dom/interfaces-expected.txt:
+        * web-platform-tests/fetch/api/headers/headers-idl-expected.txt:
+        * web-platform-tests/html/dom/interfaces-expected.txt:
+
+2016-01-30  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Move more 'constructor' properties to the prototype
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=153667
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestinterfacesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/interfaces-expected.txt (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/interfaces-expected.txt        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/interfaces-expected.txt        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -18,7 +18,7 @@
</span><span class="cx"> PASS XMLHttpRequestUpload interface object length 
</span><span class="cx"> PASS XMLHttpRequestUpload interface object name 
</span><span class="cx"> FAIL XMLHttpRequestUpload interface: existence and properties of interface prototype object assert_own_property: should inherit from XMLHttpRequestEventTarget, but self has no such property expected property &quot;XMLHttpRequestEventTarget&quot; missing
</span><del>-FAIL XMLHttpRequestUpload interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: XMLHttpRequestUpload.prototype.constructor is not writable expected true got false
</del><ins>+PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload 
</span><span class="cx"> PASS Stringification of (new XMLHttpRequest()).upload 
</span><span class="cx"> PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property &quot;onloadstart&quot; with the proper type (0) 
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> PASS XMLHttpRequest interface object length 
</span><span class="cx"> PASS XMLHttpRequest interface object name 
</span><span class="cx"> FAIL XMLHttpRequest interface: existence and properties of interface prototype object assert_own_property: should inherit from XMLHttpRequestEventTarget, but self has no such property expected property &quot;XMLHttpRequestEventTarget&quot; missing
</span><del>-FAIL XMLHttpRequest interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: XMLHttpRequest.prototype.constructor is not writable expected true got false
</del><ins>+PASS XMLHttpRequest interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL XMLHttpRequest interface: attribute onreadystatechange assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS XMLHttpRequest interface: constant UNSENT on interface object 
</span><span class="cx"> PASS XMLHttpRequest interface: constant UNSENT on interface prototype object 
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx"> PASS FormData interface object length 
</span><span class="cx"> PASS FormData interface object name 
</span><span class="cx"> PASS FormData interface: existence and properties of interface prototype object 
</span><del>-FAIL FormData interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: FormData.prototype.constructor is not writable expected true got false
</del><ins>+PASS FormData interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL FormData interface: operation append(USVString,Blob,USVString) assert_equals: property has wrong .length expected 2 but got 0
</span><span class="cx"> FAIL FormData interface: operation append(USVString,USVString) assert_equals: property has wrong .length expected 2 but got 0
</span><span class="cx"> FAIL FormData interface: operation delete(USVString) assert_own_property: interface prototype object missing non-static operation expected property &quot;delete&quot; missing
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx"> PASS ProgressEvent interface object length 
</span><span class="cx"> PASS ProgressEvent interface object name 
</span><span class="cx"> PASS ProgressEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL ProgressEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: ProgressEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS ProgressEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL ProgressEvent interface: attribute lengthComputable assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL ProgressEvent interface: attribute loaded assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL ProgressEvent interface: attribute total assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdominterfacesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -6,7 +6,7 @@
</span><span class="cx"> PASS Event interface object length 
</span><span class="cx"> PASS Event interface object name 
</span><span class="cx"> PASS Event interface: existence and properties of interface prototype object 
</span><del>-FAIL Event interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Event.prototype.constructor is not writable expected true got false
</del><ins>+PASS Event interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL Event interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL Event interface: attribute target assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL Event interface: attribute currentTarget assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> PASS CustomEvent interface object length 
</span><span class="cx"> PASS CustomEvent interface object name 
</span><span class="cx"> PASS CustomEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL CustomEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: CustomEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS CustomEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL CustomEvent interface: attribute detail assert_true: The prototype object must have a property &quot;detail&quot; expected true got false
</span><span class="cx"> FAIL CustomEvent interface: operation initCustomEvent(DOMString,boolean,boolean,any) assert_equals: property has wrong .length expected 4 but got 0
</span><span class="cx"> PASS CustomEvent must be primary interface of new CustomEvent(&quot;foo&quot;) 
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> PASS EventTarget interface object length 
</span><span class="cx"> PASS EventTarget interface object name 
</span><span class="cx"> PASS EventTarget interface: existence and properties of interface prototype object 
</span><del>-FAIL EventTarget interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: EventTarget.prototype.constructor is not writable expected true got false
</del><ins>+PASS EventTarget interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS EventTarget interface: operation addEventListener(DOMString,EventListener,boolean) 
</span><span class="cx"> PASS EventTarget interface: operation removeEventListener(DOMString,EventListener,boolean) 
</span><span class="cx"> PASS EventTarget interface: operation dispatchEvent(Event) 
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx"> PASS NodeList interface object length 
</span><span class="cx"> PASS NodeList interface object name 
</span><span class="cx"> PASS NodeList interface: existence and properties of interface prototype object 
</span><del>-FAIL NodeList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: NodeList.prototype.constructor is not writable expected true got false
</del><ins>+PASS NodeList interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS NodeList interface: operation item(unsigned long) 
</span><span class="cx"> FAIL NodeList interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> PASS NodeList must be primary interface of document.querySelectorAll(&quot;script&quot;) 
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> PASS HTMLCollection interface object length 
</span><span class="cx"> PASS HTMLCollection interface object name 
</span><span class="cx"> PASS HTMLCollection interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLCollection.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLCollection interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> FAIL HTMLCollection interface: operation item(unsigned long) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="cx"> FAIL HTMLCollection interface: operation namedItem(DOMString) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx"> PASS MutationObserver interface object length 
</span><span class="cx"> PASS MutationObserver interface object name 
</span><span class="cx"> PASS MutationObserver interface: existence and properties of interface prototype object 
</span><del>-FAIL MutationObserver interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MutationObserver.prototype.constructor is not writable expected true got false
</del><ins>+PASS MutationObserver interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS MutationObserver interface: operation observe(Node,MutationObserverInit) 
</span><span class="cx"> PASS MutationObserver interface: operation disconnect() 
</span><span class="cx"> PASS MutationObserver interface: operation takeRecords() 
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> PASS MutationRecord interface object length 
</span><span class="cx"> PASS MutationRecord interface object name 
</span><span class="cx"> PASS MutationRecord interface: existence and properties of interface prototype object 
</span><del>-FAIL MutationRecord interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MutationRecord.prototype.constructor is not writable expected true got false
</del><ins>+PASS MutationRecord interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL MutationRecord interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL MutationRecord interface: attribute target assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL MutationRecord interface: attribute addedNodes assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -174,7 +174,7 @@
</span><span class="cx"> PASS Node interface object length 
</span><span class="cx"> PASS Node interface object name 
</span><span class="cx"> FAIL Node interface: existence and properties of interface prototype object assert_equals: prototype of Node.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL Node interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Node.prototype.constructor is not writable expected true got false
</del><ins>+PASS Node interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS Node interface: constant ELEMENT_NODE on interface object 
</span><span class="cx"> PASS Node interface: constant ELEMENT_NODE on interface prototype object 
</span><span class="cx"> PASS Node interface: constant ATTRIBUTE_NODE on interface object 
</span><span class="lines">@@ -241,7 +241,7 @@
</span><span class="cx"> PASS Document interface object length 
</span><span class="cx"> PASS Document interface object name 
</span><span class="cx"> PASS Document interface: existence and properties of interface prototype object 
</span><del>-FAIL Document interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Document.prototype.constructor is not writable expected true got false
</del><ins>+PASS Document interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL Document interface: attribute implementation assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL Document interface: attribute URL assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL Document interface: attribute documentURI assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -285,7 +285,7 @@
</span><span class="cx"> PASS XMLDocument interface object length 
</span><span class="cx"> PASS XMLDocument interface object name 
</span><span class="cx"> PASS XMLDocument interface: existence and properties of interface prototype object 
</span><del>-FAIL XMLDocument interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: XMLDocument.prototype.constructor is not writable expected true got false
</del><ins>+PASS XMLDocument interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS XMLDocument must be primary interface of xmlDoc 
</span><span class="cx"> PASS Stringification of xmlDoc 
</span><span class="cx"> PASS Document interface: xmlDoc must inherit property &quot;implementation&quot; with the proper type (0) 
</span><span class="lines">@@ -458,7 +458,7 @@
</span><span class="cx"> PASS DOMImplementation interface object length 
</span><span class="cx"> PASS DOMImplementation interface object name 
</span><span class="cx"> PASS DOMImplementation interface: existence and properties of interface prototype object 
</span><del>-FAIL DOMImplementation interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DOMImplementation.prototype.constructor is not writable expected true got false
</del><ins>+PASS DOMImplementation interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL DOMImplementation interface: operation createDocumentType(DOMString,DOMString,DOMString) assert_equals: property has wrong .length expected 3 but got 0
</span><span class="cx"> FAIL DOMImplementation interface: operation createDocument(DOMString,DOMString,DocumentType) assert_equals: property has wrong .length expected 2 but got 0
</span><span class="cx"> PASS DOMImplementation interface: operation createHTMLDocument(DOMString) 
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx"> PASS DocumentFragment interface object length 
</span><span class="cx"> PASS DocumentFragment interface object name 
</span><span class="cx"> PASS DocumentFragment interface: existence and properties of interface prototype object 
</span><del>-FAIL DocumentFragment interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DocumentFragment.prototype.constructor is not writable expected true got false
</del><ins>+PASS DocumentFragment interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL DocumentFragment interface: operation getElementById(DOMString) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="cx"> FAIL DocumentFragment interface: attribute children assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL DocumentFragment interface: attribute firstElementChild assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -597,7 +597,7 @@
</span><span class="cx"> PASS DocumentType interface object length 
</span><span class="cx"> PASS DocumentType interface object name 
</span><span class="cx"> PASS DocumentType interface: existence and properties of interface prototype object 
</span><del>-FAIL DocumentType interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DocumentType.prototype.constructor is not writable expected true got false
</del><ins>+PASS DocumentType interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL DocumentType interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL DocumentType interface: attribute publicId assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL DocumentType interface: attribute systemId assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -700,7 +700,7 @@
</span><span class="cx"> PASS Element interface object length 
</span><span class="cx"> PASS Element interface object name 
</span><span class="cx"> PASS Element interface: existence and properties of interface prototype object 
</span><del>-FAIL Element interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Element.prototype.constructor is not writable expected true got false
</del><ins>+PASS Element interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL Element interface: attribute namespaceURI assert_own_property: expected property &quot;namespaceURI&quot; missing
</span><span class="cx"> FAIL Element interface: attribute prefix assert_own_property: expected property &quot;prefix&quot; missing
</span><span class="cx"> FAIL Element interface: attribute localName assert_own_property: expected property &quot;localName&quot; missing
</span><span class="lines">@@ -927,7 +927,7 @@
</span><span class="cx"> PASS NamedNodeMap interface object length 
</span><span class="cx"> PASS NamedNodeMap interface object name 
</span><span class="cx"> PASS NamedNodeMap interface: existence and properties of interface prototype object 
</span><del>-FAIL NamedNodeMap interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: NamedNodeMap.prototype.constructor is not writable expected true got false
</del><ins>+PASS NamedNodeMap interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL NamedNodeMap interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> FAIL NamedNodeMap interface: operation item(unsigned long) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="cx"> FAIL NamedNodeMap interface: operation getNamedItem(DOMString) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="lines">@@ -940,7 +940,7 @@
</span><span class="cx"> PASS Attr interface object length 
</span><span class="cx"> PASS Attr interface object name 
</span><span class="cx"> FAIL Attr interface: existence and properties of interface prototype object assert_equals: prototype of Attr.prototype is not Object.prototype expected object &quot;[object Object]&quot; but got object &quot;[object NodePrototype]&quot;
</span><del>-FAIL Attr interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Attr.prototype.constructor is not writable expected true got false
</del><ins>+PASS Attr interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL Attr interface: attribute namespaceURI assert_own_property: expected property &quot;namespaceURI&quot; missing
</span><span class="cx"> FAIL Attr interface: attribute prefix assert_own_property: expected property &quot;prefix&quot; missing
</span><span class="cx"> FAIL Attr interface: attribute localName assert_own_property: expected property &quot;localName&quot; missing
</span><span class="lines">@@ -965,7 +965,7 @@
</span><span class="cx"> PASS CharacterData interface object length 
</span><span class="cx"> PASS CharacterData interface object name 
</span><span class="cx"> PASS CharacterData interface: existence and properties of interface prototype object 
</span><del>-FAIL CharacterData interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: CharacterData.prototype.constructor is not writable expected true got false
</del><ins>+PASS CharacterData interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL CharacterData interface: attribute data assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL CharacterData interface: attribute length assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS CharacterData interface: operation substringData(unsigned long,unsigned long) 
</span><span class="lines">@@ -983,7 +983,7 @@
</span><span class="cx"> PASS Text interface object length 
</span><span class="cx"> PASS Text interface object name 
</span><span class="cx"> PASS Text interface: existence and properties of interface prototype object 
</span><del>-FAIL Text interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Text.prototype.constructor is not writable expected true got false
</del><ins>+PASS Text interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS Text interface: operation splitText(unsigned long) 
</span><span class="cx"> FAIL Text interface: attribute wholeText assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS Text must be primary interface of document.createTextNode(&quot;abc&quot;) 
</span><span class="lines">@@ -1095,7 +1095,7 @@
</span><span class="cx"> PASS ProcessingInstruction interface object length 
</span><span class="cx"> PASS ProcessingInstruction interface object name 
</span><span class="cx"> PASS ProcessingInstruction interface: existence and properties of interface prototype object 
</span><del>-FAIL ProcessingInstruction interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: ProcessingInstruction.prototype.constructor is not writable expected true got false
</del><ins>+PASS ProcessingInstruction interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL ProcessingInstruction interface: attribute target assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS ProcessingInstruction must be primary interface of xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) 
</span><span class="cx"> PASS Stringification of xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) 
</span><span class="lines">@@ -1204,7 +1204,7 @@
</span><span class="cx"> PASS Comment interface object length 
</span><span class="cx"> PASS Comment interface object name 
</span><span class="cx"> PASS Comment interface: existence and properties of interface prototype object 
</span><del>-FAIL Comment interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Comment.prototype.constructor is not writable expected true got false
</del><ins>+PASS Comment interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS Comment must be primary interface of document.createComment(&quot;abc&quot;) 
</span><span class="cx"> PASS Stringification of document.createComment(&quot;abc&quot;) 
</span><span class="cx"> PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;data&quot; with the proper type (0) 
</span><span class="lines">@@ -1311,7 +1311,7 @@
</span><span class="cx"> PASS Range interface object length 
</span><span class="cx"> PASS Range interface object name 
</span><span class="cx"> PASS Range interface: existence and properties of interface prototype object 
</span><del>-FAIL Range interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Range.prototype.constructor is not writable expected true got false
</del><ins>+PASS Range interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL Range interface: attribute startContainer assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL Range interface: attribute startOffset assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL Range interface: attribute endContainer assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1461,7 +1461,7 @@
</span><span class="cx"> PASS NodeIterator interface object length 
</span><span class="cx"> PASS NodeIterator interface object name 
</span><span class="cx"> PASS NodeIterator interface: existence and properties of interface prototype object 
</span><del>-FAIL NodeIterator interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: NodeIterator.prototype.constructor is not writable expected true got false
</del><ins>+PASS NodeIterator interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL NodeIterator interface: attribute root assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL NodeIterator interface: attribute referenceNode assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL NodeIterator interface: attribute pointerBeforeReferenceNode assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1484,7 +1484,7 @@
</span><span class="cx"> PASS TreeWalker interface object length 
</span><span class="cx"> PASS TreeWalker interface object name 
</span><span class="cx"> PASS TreeWalker interface: existence and properties of interface prototype object 
</span><del>-FAIL TreeWalker interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TreeWalker.prototype.constructor is not writable expected true got false
</del><ins>+PASS TreeWalker interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL TreeWalker interface: attribute root assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL TreeWalker interface: attribute whatToShow assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL TreeWalker interface: attribute filter assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1550,7 +1550,7 @@
</span><span class="cx"> PASS DOMTokenList interface object length 
</span><span class="cx"> PASS DOMTokenList interface object name 
</span><span class="cx"> PASS DOMTokenList interface: existence and properties of interface prototype object 
</span><del>-FAIL DOMTokenList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DOMTokenList.prototype.constructor is not writable expected true got false
</del><ins>+PASS DOMTokenList interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL DOMTokenList interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> PASS DOMTokenList interface: operation item(unsigned long) 
</span><span class="cx"> PASS DOMTokenList interface: operation contains(DOMString) 
</span><span class="lines">@@ -1575,6 +1575,6 @@
</span><span class="cx"> PASS DOMSettableTokenList interface object length 
</span><span class="cx"> PASS DOMSettableTokenList interface object name 
</span><span class="cx"> PASS DOMSettableTokenList interface: existence and properties of interface prototype object 
</span><del>-FAIL DOMSettableTokenList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DOMSettableTokenList.prototype.constructor is not writable expected true got false
</del><ins>+PASS DOMSettableTokenList interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL DOMSettableTokenList interface: attribute value assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheadersidlexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl-expected.txt (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl-expected.txt        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl-expected.txt        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> PASS Headers interface object length 
</span><span class="cx"> PASS Headers interface object name 
</span><span class="cx"> PASS Headers interface: existence and properties of interface prototype object 
</span><del>-FAIL Headers interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Headers.prototype.constructor is not writable expected true got false
</del><ins>+PASS Headers interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS Headers interface: operation append(ByteString,ByteString) 
</span><span class="cx"> PASS Headers interface: operation delete(ByteString) 
</span><span class="cx"> PASS Headers interface: operation get(ByteString) 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -755,7 +755,7 @@
</span><span class="cx"> PASS HTMLAllCollection interface object length 
</span><span class="cx"> PASS HTMLAllCollection interface object name 
</span><span class="cx"> FAIL HTMLAllCollection interface: existence and properties of interface prototype object assert_equals: prototype of HTMLAllCollection.prototype is not HTMLCollection.prototype expected object &quot;[object HTMLCollectionPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL HTMLAllCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLAllCollection.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLAllCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLAllCollection interface: operation item(unsigned long) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="cx"> FAIL HTMLAllCollection interface: operation item(DOMString) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="cx"> PASS HTMLAllCollection interface: operation namedItem(DOMString) 
</span><span class="lines">@@ -776,7 +776,7 @@
</span><span class="cx"> PASS HTMLFormControlsCollection interface object length 
</span><span class="cx"> PASS HTMLFormControlsCollection interface object name 
</span><span class="cx"> PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLFormControlsCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLFormControlsCollection.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLFormControlsCollection interface: operation namedItem(DOMString) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="cx"> FAIL HTMLFormControlsCollection must be primary interface of document.createElement(&quot;form&quot;).elements assert_equals: wrong typeof object expected &quot;function&quot; but got &quot;object&quot;
</span><span class="cx"> FAIL Stringification of document.createElement(&quot;form&quot;).elements assert_equals: wrong typeof object expected &quot;function&quot; but got &quot;object&quot;
</span><span class="lines">@@ -791,13 +791,13 @@
</span><span class="cx"> PASS RadioNodeList interface object length 
</span><span class="cx"> PASS RadioNodeList interface object name 
</span><span class="cx"> PASS RadioNodeList interface: existence and properties of interface prototype object 
</span><del>-FAIL RadioNodeList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: RadioNodeList.prototype.constructor is not writable expected true got false
</del><ins>+PASS RadioNodeList interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL RadioNodeList interface: attribute value assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLOptionsCollection interface: existence and properties of interface object assert_equals: class string of HTMLOptionsCollection expected &quot;[object Function]&quot; but got &quot;[object HTMLOptionsCollectionConstructor]&quot;
</span><span class="cx"> PASS HTMLOptionsCollection interface object length 
</span><span class="cx"> PASS HTMLOptionsCollection interface object name 
</span><span class="cx"> PASS HTMLOptionsCollection interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLOptionsCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLOptionsCollection.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLOptionsCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLOptionsCollection interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> PASS HTMLOptionsCollection interface: operation add([object Object],[object Object],[object Object],[object Object]) 
</span><span class="cx"> FAIL HTMLOptionsCollection interface: operation remove(long) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="lines">@@ -842,7 +842,7 @@
</span><span class="cx"> PASS DOMStringMap interface object length 
</span><span class="cx"> PASS DOMStringMap interface object name 
</span><span class="cx"> PASS DOMStringMap interface: existence and properties of interface prototype object 
</span><del>-FAIL DOMStringMap interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DOMStringMap.prototype.constructor is not writable expected true got false
</del><ins>+PASS DOMStringMap interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS DOMStringMap must be primary interface of document.head.dataset 
</span><span class="cx"> PASS Stringification of document.head.dataset 
</span><span class="cx"> FAIL DOMElementMap interface: existence and properties of interface object assert_own_property: self does not have own property &quot;DOMElementMap&quot; expected property &quot;DOMElementMap&quot; missing
</span><span class="lines">@@ -856,7 +856,7 @@
</span><span class="cx"> PASS HTMLElement interface object length 
</span><span class="cx"> PASS HTMLElement interface object name 
</span><span class="cx"> PASS HTMLElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLElement interface: attribute title assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLElement interface: attribute lang assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLElement interface: attribute translate assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1304,7 +1304,7 @@
</span><span class="cx"> PASS HTMLUnknownElement interface object length 
</span><span class="cx"> PASS HTMLUnknownElement interface object name 
</span><span class="cx"> PASS HTMLUnknownElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLUnknownElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLUnknownElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLUnknownElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS HTMLUnknownElement must be primary interface of document.createElement(&quot;blink&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;blink&quot;) 
</span><span class="cx"> PASS HTMLUnknownElement must be primary interface of document.createElement(&quot;quasit&quot;) 
</span><span class="lines">@@ -1331,7 +1331,7 @@
</span><span class="cx"> PASS HTMLHtmlElement interface object length 
</span><span class="cx"> PASS HTMLHtmlElement interface object name 
</span><span class="cx"> PASS HTMLHtmlElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLHtmlElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLHtmlElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLHtmlElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLHtmlElement interface: attribute version assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLHtmlElement must be primary interface of document.createElement(&quot;html&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;html&quot;) 
</span><span class="lines">@@ -1340,14 +1340,14 @@
</span><span class="cx"> PASS HTMLHeadElement interface object length 
</span><span class="cx"> PASS HTMLHeadElement interface object name 
</span><span class="cx"> PASS HTMLHeadElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLHeadElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLHeadElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLHeadElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS HTMLHeadElement must be primary interface of document.createElement(&quot;head&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;head&quot;) 
</span><span class="cx"> FAIL HTMLTitleElement interface: existence and properties of interface object assert_equals: class string of HTMLTitleElement expected &quot;[object Function]&quot; but got &quot;[object HTMLTitleElementConstructor]&quot;
</span><span class="cx"> PASS HTMLTitleElement interface object length 
</span><span class="cx"> PASS HTMLTitleElement interface object name 
</span><span class="cx"> PASS HTMLTitleElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTitleElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTitleElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTitleElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTitleElement interface: attribute text assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLTitleElement must be primary interface of document.createElement(&quot;title&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;title&quot;) 
</span><span class="lines">@@ -1356,7 +1356,7 @@
</span><span class="cx"> PASS HTMLBaseElement interface object length 
</span><span class="cx"> PASS HTMLBaseElement interface object name 
</span><span class="cx"> PASS HTMLBaseElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLBaseElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLBaseElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLBaseElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLBaseElement interface: attribute href assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLBaseElement interface: attribute target assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLBaseElement must be primary interface of document.createElement(&quot;base&quot;) 
</span><span class="lines">@@ -1367,7 +1367,7 @@
</span><span class="cx"> PASS HTMLLinkElement interface object length 
</span><span class="cx"> PASS HTMLLinkElement interface object name 
</span><span class="cx"> PASS HTMLLinkElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLLinkElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLLinkElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLLinkElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLLinkElement interface: attribute href assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLLinkElement interface: attribute crossOrigin assert_true: The prototype object must have a property &quot;crossOrigin&quot; expected true got false
</span><span class="cx"> FAIL HTMLLinkElement interface: attribute rel assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1397,7 +1397,7 @@
</span><span class="cx"> PASS HTMLMetaElement interface object length 
</span><span class="cx"> PASS HTMLMetaElement interface object name 
</span><span class="cx"> PASS HTMLMetaElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLMetaElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLMetaElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLMetaElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLMetaElement interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMetaElement interface: attribute httpEquiv assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMetaElement interface: attribute content assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1412,7 +1412,7 @@
</span><span class="cx"> PASS HTMLStyleElement interface object length 
</span><span class="cx"> PASS HTMLStyleElement interface object name 
</span><span class="cx"> PASS HTMLStyleElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLStyleElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLStyleElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLStyleElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLStyleElement interface: attribute media assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLStyleElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLStyleElement interface: attribute scoped assert_true: The prototype object must have a property &quot;scoped&quot; expected true got false
</span><span class="lines">@@ -1426,7 +1426,7 @@
</span><span class="cx"> PASS HTMLBodyElement interface object length 
</span><span class="cx"> PASS HTMLBodyElement interface object name 
</span><span class="cx"> PASS HTMLBodyElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLBodyElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLBodyElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLBodyElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLBodyElement interface: attribute text assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLBodyElement interface: attribute link assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLBodyElement interface: attribute vLink assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1471,7 +1471,7 @@
</span><span class="cx"> PASS HTMLHeadingElement interface object length 
</span><span class="cx"> PASS HTMLHeadingElement interface object name 
</span><span class="cx"> PASS HTMLHeadingElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLHeadingElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLHeadingElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLHeadingElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLHeadingElement interface: attribute align assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLHeadingElement must be primary interface of document.createElement(&quot;h1&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;h1&quot;) 
</span><span class="lines">@@ -1495,7 +1495,7 @@
</span><span class="cx"> PASS HTMLParagraphElement interface object length 
</span><span class="cx"> PASS HTMLParagraphElement interface object name 
</span><span class="cx"> PASS HTMLParagraphElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLParagraphElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLParagraphElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLParagraphElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLParagraphElement interface: attribute align assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLParagraphElement must be primary interface of document.createElement(&quot;p&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;p&quot;) 
</span><span class="lines">@@ -1504,7 +1504,7 @@
</span><span class="cx"> PASS HTMLHRElement interface object length 
</span><span class="cx"> PASS HTMLHRElement interface object name 
</span><span class="cx"> PASS HTMLHRElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLHRElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLHRElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLHRElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLHRElement interface: attribute align assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLHRElement interface: attribute color assert_true: The prototype object must have a property &quot;color&quot; expected true got false
</span><span class="cx"> FAIL HTMLHRElement interface: attribute noShade assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1521,7 +1521,7 @@
</span><span class="cx"> PASS HTMLPreElement interface object length 
</span><span class="cx"> PASS HTMLPreElement interface object name 
</span><span class="cx"> PASS HTMLPreElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLPreElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLPreElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLPreElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLPreElement interface: attribute width assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLPreElement must be primary interface of document.createElement(&quot;pre&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;pre&quot;) 
</span><span class="lines">@@ -1539,7 +1539,7 @@
</span><span class="cx"> PASS HTMLQuoteElement interface object length 
</span><span class="cx"> PASS HTMLQuoteElement interface object name 
</span><span class="cx"> PASS HTMLQuoteElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLQuoteElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLQuoteElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLQuoteElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLQuoteElement interface: attribute cite assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLQuoteElement must be primary interface of document.createElement(&quot;blockquote&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;blockquote&quot;) 
</span><span class="lines">@@ -1551,7 +1551,7 @@
</span><span class="cx"> PASS HTMLOListElement interface object length 
</span><span class="cx"> PASS HTMLOListElement interface object name 
</span><span class="cx"> PASS HTMLOListElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLOListElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLOListElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLOListElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLOListElement interface: attribute reversed assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLOListElement interface: attribute start assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLOListElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1560,14 +1560,14 @@
</span><span class="cx"> PASS HTMLUListElement interface object length 
</span><span class="cx"> PASS HTMLUListElement interface object name 
</span><span class="cx"> PASS HTMLUListElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLUListElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLUListElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLUListElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLUListElement interface: attribute compact assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLUListElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLLIElement interface: existence and properties of interface object assert_equals: class string of HTMLLIElement expected &quot;[object Function]&quot; but got &quot;[object HTMLLIElementConstructor]&quot;
</span><span class="cx"> PASS HTMLLIElement interface object length 
</span><span class="cx"> PASS HTMLLIElement interface object name 
</span><span class="cx"> PASS HTMLLIElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLLIElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLLIElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLLIElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLLIElement interface: attribute value assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLLIElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLLIElement must be primary interface of document.createElement(&quot;li&quot;) 
</span><span class="lines">@@ -1578,13 +1578,13 @@
</span><span class="cx"> PASS HTMLDListElement interface object length 
</span><span class="cx"> PASS HTMLDListElement interface object name 
</span><span class="cx"> PASS HTMLDListElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLDListElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLDListElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLDListElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLDListElement interface: attribute compact assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLDivElement interface: existence and properties of interface object assert_equals: class string of HTMLDivElement expected &quot;[object Function]&quot; but got &quot;[object HTMLDivElementConstructor]&quot;
</span><span class="cx"> PASS HTMLDivElement interface object length 
</span><span class="cx"> PASS HTMLDivElement interface object name 
</span><span class="cx"> PASS HTMLDivElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLDivElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLDivElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLDivElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLDivElement interface: attribute align assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLDivElement must be primary interface of document.createElement(&quot;div&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;div&quot;) 
</span><span class="lines">@@ -1593,7 +1593,7 @@
</span><span class="cx"> PASS HTMLAnchorElement interface object length 
</span><span class="cx"> PASS HTMLAnchorElement interface object name 
</span><span class="cx"> PASS HTMLAnchorElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLAnchorElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLAnchorElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLAnchorElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLAnchorElement interface: attribute target assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLAnchorElement interface: attribute download assert_true: The prototype object must have a property &quot;download&quot; expected true got false
</span><span class="cx"> FAIL HTMLAnchorElement interface: attribute ping assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1648,7 +1648,7 @@
</span><span class="cx"> PASS HTMLDataElement interface object length 
</span><span class="cx"> PASS HTMLDataElement interface object name 
</span><span class="cx"> PASS HTMLDataElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLDataElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLDataElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLDataElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLDataElement interface: attribute value assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLDataElement must be primary interface of document.createElement(&quot;data&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;data&quot;) 
</span><span class="lines">@@ -1657,7 +1657,7 @@
</span><span class="cx"> PASS HTMLTimeElement interface object length 
</span><span class="cx"> PASS HTMLTimeElement interface object name 
</span><span class="cx"> PASS HTMLTimeElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTimeElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTimeElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTimeElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTimeElement interface: attribute dateTime assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLTimeElement must be primary interface of document.createElement(&quot;time&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;time&quot;) 
</span><span class="lines">@@ -1666,14 +1666,14 @@
</span><span class="cx"> PASS HTMLSpanElement interface object length 
</span><span class="cx"> PASS HTMLSpanElement interface object name 
</span><span class="cx"> PASS HTMLSpanElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLSpanElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLSpanElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLSpanElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS HTMLSpanElement must be primary interface of document.createElement(&quot;span&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;span&quot;) 
</span><span class="cx"> FAIL HTMLBRElement interface: existence and properties of interface object assert_equals: class string of HTMLBRElement expected &quot;[object Function]&quot; but got &quot;[object HTMLBRElementConstructor]&quot;
</span><span class="cx"> PASS HTMLBRElement interface object length 
</span><span class="cx"> PASS HTMLBRElement interface object name 
</span><span class="cx"> PASS HTMLBRElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLBRElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLBRElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLBRElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLBRElement interface: attribute clear assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLBRElement must be primary interface of document.createElement(&quot;br&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;br&quot;) 
</span><span class="lines">@@ -1682,7 +1682,7 @@
</span><span class="cx"> PASS HTMLModElement interface object length 
</span><span class="cx"> PASS HTMLModElement interface object name 
</span><span class="cx"> PASS HTMLModElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLModElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLModElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLModElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLModElement interface: attribute cite assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLModElement interface: attribute dateTime assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLModElement must be primary interface of document.createElement(&quot;ins&quot;) 
</span><span class="lines">@@ -1697,14 +1697,14 @@
</span><span class="cx"> PASS HTMLPictureElement interface object length 
</span><span class="cx"> PASS HTMLPictureElement interface object name 
</span><span class="cx"> PASS HTMLPictureElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLPictureElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLPictureElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLPictureElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS HTMLPictureElement must be primary interface of document.createElement(&quot;picture&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;picture&quot;) 
</span><span class="cx"> FAIL HTMLImageElement interface: existence and properties of interface object assert_equals: class string of HTMLImageElement expected &quot;[object Function]&quot; but got &quot;[object HTMLImageElementConstructor]&quot;
</span><span class="cx"> PASS HTMLImageElement interface object length 
</span><span class="cx"> PASS HTMLImageElement interface object name 
</span><span class="cx"> PASS HTMLImageElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLImageElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLImageElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLImageElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLImageElement interface: attribute alt assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLImageElement interface: attribute src assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLImageElement interface: attribute srcset assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1773,7 +1773,7 @@
</span><span class="cx"> PASS HTMLIFrameElement interface object length 
</span><span class="cx"> PASS HTMLIFrameElement interface object name 
</span><span class="cx"> PASS HTMLIFrameElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLIFrameElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLIFrameElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLIFrameElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLIFrameElement interface: attribute src assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLIFrameElement interface: attribute srcdoc assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLIFrameElement interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1794,7 +1794,7 @@
</span><span class="cx"> PASS HTMLEmbedElement interface object length 
</span><span class="cx"> PASS HTMLEmbedElement interface object name 
</span><span class="cx"> PASS HTMLEmbedElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLEmbedElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLEmbedElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLEmbedElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLEmbedElement interface: attribute src assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLEmbedElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLEmbedElement interface: attribute width assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1815,7 +1815,7 @@
</span><span class="cx"> PASS HTMLObjectElement interface object length 
</span><span class="cx"> PASS HTMLObjectElement interface object name 
</span><span class="cx"> PASS HTMLObjectElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLObjectElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLObjectElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLObjectElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLObjectElement interface: attribute data assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLObjectElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLObjectElement interface: attribute typeMustMatch assert_true: The prototype object must have a property &quot;typeMustMatch&quot; expected true got false
</span><span class="lines">@@ -1875,7 +1875,7 @@
</span><span class="cx"> PASS HTMLParamElement interface object length 
</span><span class="cx"> PASS HTMLParamElement interface object name 
</span><span class="cx"> PASS HTMLParamElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLParamElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLParamElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLParamElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLParamElement interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLParamElement interface: attribute value assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLParamElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1890,7 +1890,7 @@
</span><span class="cx"> PASS HTMLVideoElement interface object length 
</span><span class="cx"> PASS HTMLVideoElement interface object name 
</span><span class="cx"> PASS HTMLVideoElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLVideoElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLVideoElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLVideoElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLVideoElement interface: attribute width assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLVideoElement interface: attribute height assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLVideoElement interface: attribute videoWidth assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -1956,7 +1956,7 @@
</span><span class="cx"> PASS HTMLAudioElement interface object length 
</span><span class="cx"> PASS HTMLAudioElement interface object name 
</span><span class="cx"> PASS HTMLAudioElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLAudioElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLAudioElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLAudioElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS HTMLAudioElement must be primary interface of document.createElement(&quot;audio&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;audio&quot;) 
</span><span class="cx"> PASS HTMLMediaElement interface: document.createElement(&quot;audio&quot;) must inherit property &quot;error&quot; with the proper type (0) 
</span><span class="lines">@@ -2063,7 +2063,7 @@
</span><span class="cx"> PASS HTMLSourceElement interface object length 
</span><span class="cx"> PASS HTMLSourceElement interface object name 
</span><span class="cx"> PASS HTMLSourceElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLSourceElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLSourceElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLSourceElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLSourceElement interface: attribute src assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLSourceElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLSourceElement interface: attribute srcset assert_true: The prototype object must have a property &quot;srcset&quot; expected true got false
</span><span class="lines">@@ -2080,7 +2080,7 @@
</span><span class="cx"> PASS HTMLTrackElement interface object length 
</span><span class="cx"> PASS HTMLTrackElement interface object name 
</span><span class="cx"> PASS HTMLTrackElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTrackElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTrackElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTrackElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTrackElement interface: attribute kind assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTrackElement interface: attribute src assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTrackElement interface: attribute srclang assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2113,7 +2113,7 @@
</span><span class="cx"> PASS HTMLMediaElement interface object length 
</span><span class="cx"> PASS HTMLMediaElement interface object name 
</span><span class="cx"> PASS HTMLMediaElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLMediaElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLMediaElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLMediaElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLMediaElement interface: attribute error assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMediaElement interface: attribute src assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMediaElement interface: attribute currentSrc assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2171,7 +2171,7 @@
</span><span class="cx"> PASS MediaError interface object length 
</span><span class="cx"> PASS MediaError interface object name 
</span><span class="cx"> PASS MediaError interface: existence and properties of interface prototype object 
</span><del>-FAIL MediaError interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MediaError.prototype.constructor is not writable expected true got false
</del><ins>+PASS MediaError interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS MediaError interface: constant MEDIA_ERR_ABORTED on interface object 
</span><span class="cx"> PASS MediaError interface: constant MEDIA_ERR_ABORTED on interface prototype object 
</span><span class="cx"> PASS MediaError interface: constant MEDIA_ERR_NETWORK on interface object 
</span><span class="lines">@@ -2233,7 +2233,7 @@
</span><span class="cx"> PASS MediaController interface object length 
</span><span class="cx"> PASS MediaController interface object name 
</span><span class="cx"> FAIL MediaController interface: existence and properties of interface prototype object assert_equals: prototype of MediaController.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL MediaController interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MediaController.prototype.constructor is not writable expected true got false
</del><ins>+PASS MediaController interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL MediaController interface: attribute readyState assert_true: The prototype object must have a property &quot;readyState&quot; expected true got false
</span><span class="cx"> FAIL MediaController interface: attribute buffered assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL MediaController interface: attribute seekable assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2308,7 +2308,7 @@
</span><span class="cx"> PASS TextTrackList interface object length 
</span><span class="cx"> PASS TextTrackList interface object name 
</span><span class="cx"> FAIL TextTrackList interface: existence and properties of interface prototype object assert_equals: prototype of TextTrackList.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL TextTrackList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TextTrackList.prototype.constructor is not writable expected true got false
</del><ins>+PASS TextTrackList interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL TextTrackList interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> PASS TextTrackList interface: operation getTrackById(DOMString) 
</span><span class="cx"> FAIL TextTrackList interface: attribute onchange assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2336,7 +2336,7 @@
</span><span class="cx"> PASS TextTrack interface object length 
</span><span class="cx"> PASS TextTrack interface object name 
</span><span class="cx"> FAIL TextTrack interface: existence and properties of interface prototype object assert_equals: prototype of TextTrack.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL TextTrack interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TextTrack.prototype.constructor is not writable expected true got false
</del><ins>+PASS TextTrack interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL TextTrack interface: attribute kind assert_true: The prototype object must have a property &quot;kind&quot; expected true got false
</span><span class="cx"> FAIL TextTrack interface: attribute label assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL TextTrack interface: attribute language assert_true: The prototype object must have a property &quot;language&quot; expected true got false
</span><span class="lines">@@ -2377,7 +2377,7 @@
</span><span class="cx"> PASS TextTrackCueList interface object length 
</span><span class="cx"> PASS TextTrackCueList interface object name 
</span><span class="cx"> PASS TextTrackCueList interface: existence and properties of interface prototype object 
</span><del>-FAIL TextTrackCueList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TextTrackCueList.prototype.constructor is not writable expected true got false
</del><ins>+PASS TextTrackCueList interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL TextTrackCueList interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> PASS TextTrackCueList interface: operation getCueById(DOMString) 
</span><span class="cx"> PASS TextTrackCueList must be primary interface of document.createElement(&quot;video&quot;).addTextTrack(&quot;subtitles&quot;).cues 
</span><span class="lines">@@ -2389,7 +2389,7 @@
</span><span class="cx"> FAIL TextTrackCue interface object length assert_equals: wrong value for TextTrackCue.length expected 0 but got 3
</span><span class="cx"> PASS TextTrackCue interface object name 
</span><span class="cx"> FAIL TextTrackCue interface: existence and properties of interface prototype object assert_equals: prototype of TextTrackCue.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL TextTrackCue interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TextTrackCue.prototype.constructor is not writable expected true got false
</del><ins>+PASS TextTrackCue interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL TextTrackCue interface: attribute track assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL TextTrackCue interface: attribute id assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL TextTrackCue interface: attribute startTime assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2401,7 +2401,7 @@
</span><span class="cx"> PASS TimeRanges interface object length 
</span><span class="cx"> PASS TimeRanges interface object name 
</span><span class="cx"> PASS TimeRanges interface: existence and properties of interface prototype object 
</span><del>-FAIL TimeRanges interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TimeRanges.prototype.constructor is not writable expected true got false
</del><ins>+PASS TimeRanges interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL TimeRanges interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> PASS TimeRanges interface: operation start(unsigned long) 
</span><span class="cx"> PASS TimeRanges interface: operation end(unsigned long) 
</span><span class="lines">@@ -2416,7 +2416,7 @@
</span><span class="cx"> PASS TrackEvent interface object length 
</span><span class="cx"> PASS TrackEvent interface object name 
</span><span class="cx"> PASS TrackEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL TrackEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TrackEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS TrackEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL TrackEvent interface: attribute track assert_true: The prototype object must have a property &quot;track&quot; expected true got false
</span><span class="cx"> FAIL TrackEvent must be primary interface of new TrackEvent(&quot;addtrack&quot;; {track:document.createElement(&quot;track&quot;).track}) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;SyntaxError: Unexpected token ';'. Expected ')' to end a ...&quot;
</span><span class="cx"> FAIL Stringification of new TrackEvent(&quot;addtrack&quot;; {track:document.createElement(&quot;track&quot;).track}) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;SyntaxError: Unexpected token ';'. Expected ')' to end a ...&quot;
</span><span class="lines">@@ -2443,7 +2443,7 @@
</span><span class="cx"> PASS HTMLMapElement interface object length 
</span><span class="cx"> PASS HTMLMapElement interface object name 
</span><span class="cx"> PASS HTMLMapElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLMapElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLMapElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLMapElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLMapElement interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMapElement interface: attribute areas assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMapElement interface: attribute images assert_true: The prototype object must have a property &quot;images&quot; expected true got false
</span><span class="lines">@@ -2456,7 +2456,7 @@
</span><span class="cx"> PASS HTMLAreaElement interface object length 
</span><span class="cx"> PASS HTMLAreaElement interface object name 
</span><span class="cx"> PASS HTMLAreaElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLAreaElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLAreaElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLAreaElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLAreaElement interface: attribute alt assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLAreaElement interface: attribute coords assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLAreaElement interface: attribute shape assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2503,7 +2503,7 @@
</span><span class="cx"> PASS HTMLTableElement interface object length 
</span><span class="cx"> PASS HTMLTableElement interface object name 
</span><span class="cx"> PASS HTMLTableElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTableElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTableElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTableElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTableElement interface: attribute caption assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLTableElement interface: operation createCaption() 
</span><span class="cx"> PASS HTMLTableElement interface: operation deleteCaption() 
</span><span class="lines">@@ -2564,7 +2564,7 @@
</span><span class="cx"> PASS HTMLTableCaptionElement interface object length 
</span><span class="cx"> PASS HTMLTableCaptionElement interface object name 
</span><span class="cx"> PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTableCaptionElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTableCaptionElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTableCaptionElement interface: attribute align assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLTableCaptionElement must be primary interface of document.createElement(&quot;caption&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;caption&quot;) 
</span><span class="lines">@@ -2573,7 +2573,7 @@
</span><span class="cx"> PASS HTMLTableColElement interface object length 
</span><span class="cx"> PASS HTMLTableColElement interface object name 
</span><span class="cx"> PASS HTMLTableColElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTableColElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTableColElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTableColElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTableColElement interface: attribute span assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTableColElement interface: attribute align assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTableColElement interface: attribute ch assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2600,7 +2600,7 @@
</span><span class="cx"> PASS HTMLTableSectionElement interface object length 
</span><span class="cx"> PASS HTMLTableSectionElement interface object name 
</span><span class="cx"> PASS HTMLTableSectionElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTableSectionElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTableSectionElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTableSectionElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTableSectionElement interface: attribute rows assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLTableSectionElement interface: operation insertRow(long) 
</span><span class="cx"> FAIL HTMLTableSectionElement interface: operation deleteRow(long) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="lines">@@ -2651,7 +2651,7 @@
</span><span class="cx"> PASS HTMLTableRowElement interface object length 
</span><span class="cx"> PASS HTMLTableRowElement interface object name 
</span><span class="cx"> PASS HTMLTableRowElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTableRowElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTableRowElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTableRowElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTableRowElement interface: attribute rowIndex assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTableRowElement interface: attribute sectionRowIndex assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTableRowElement interface: attribute cells assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2682,7 +2682,7 @@
</span><span class="cx"> PASS HTMLTableDataCellElement interface object length 
</span><span class="cx"> PASS HTMLTableDataCellElement interface object name 
</span><span class="cx"> PASS HTMLTableDataCellElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTableDataCellElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTableDataCellElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTableDataCellElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTableDataCellElement interface: attribute abbr assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLTableDataCellElement must be primary interface of document.createElement(&quot;td&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;td&quot;) 
</span><span class="lines">@@ -2704,7 +2704,7 @@
</span><span class="cx"> PASS HTMLTableHeaderCellElement interface object length 
</span><span class="cx"> PASS HTMLTableHeaderCellElement interface object name 
</span><span class="cx"> PASS HTMLTableHeaderCellElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTableHeaderCellElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTableHeaderCellElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTableHeaderCellElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTableHeaderCellElement interface: attribute scope assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTableHeaderCellElement interface: attribute abbr assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTableHeaderCellElement interface: attribute sorted assert_true: The prototype object must have a property &quot;sorted&quot; expected true got false
</span><span class="lines">@@ -2732,7 +2732,7 @@
</span><span class="cx"> PASS HTMLTableCellElement interface object length 
</span><span class="cx"> PASS HTMLTableCellElement interface object name 
</span><span class="cx"> PASS HTMLTableCellElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTableCellElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTableCellElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTableCellElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTableCellElement interface: attribute colSpan assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTableCellElement interface: attribute rowSpan assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTableCellElement interface: attribute headers assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2750,7 +2750,7 @@
</span><span class="cx"> PASS HTMLFormElement interface object length 
</span><span class="cx"> PASS HTMLFormElement interface object name 
</span><span class="cx"> PASS HTMLFormElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLFormElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLFormElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLFormElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLFormElement interface: attribute acceptCharset assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFormElement interface: attribute action assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFormElement interface: attribute autocomplete assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2789,7 +2789,7 @@
</span><span class="cx"> PASS HTMLLabelElement interface object length 
</span><span class="cx"> PASS HTMLLabelElement interface object name 
</span><span class="cx"> PASS HTMLLabelElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLLabelElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLLabelElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLLabelElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLLabelElement interface: attribute form assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLLabelElement interface: attribute htmlFor assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLLabelElement interface: attribute control assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2802,7 +2802,7 @@
</span><span class="cx"> PASS HTMLInputElement interface object length 
</span><span class="cx"> PASS HTMLInputElement interface object name 
</span><span class="cx"> PASS HTMLInputElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLInputElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLInputElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLInputElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLInputElement interface: attribute accept assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLInputElement interface: attribute alt assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLInputElement interface: attribute autocomplete assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2933,7 +2933,7 @@
</span><span class="cx"> PASS HTMLButtonElement interface object length 
</span><span class="cx"> PASS HTMLButtonElement interface object name 
</span><span class="cx"> PASS HTMLButtonElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLButtonElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLButtonElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLButtonElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLButtonElement interface: attribute autofocus assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLButtonElement interface: attribute disabled assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLButtonElement interface: attribute form assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -2979,7 +2979,7 @@
</span><span class="cx"> PASS HTMLSelectElement interface object length 
</span><span class="cx"> PASS HTMLSelectElement interface object name 
</span><span class="cx"> PASS HTMLSelectElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLSelectElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLSelectElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLSelectElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLSelectElement interface: attribute autocomplete assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLSelectElement interface: attribute autofocus assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLSelectElement interface: attribute disabled assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3054,7 +3054,7 @@
</span><span class="cx"> PASS HTMLOptGroupElement interface object length 
</span><span class="cx"> PASS HTMLOptGroupElement interface object name 
</span><span class="cx"> PASS HTMLOptGroupElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLOptGroupElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLOptGroupElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLOptGroupElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLOptGroupElement interface: attribute disabled assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLOptGroupElement interface: attribute label assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLOptGroupElement must be primary interface of document.createElement(&quot;optgroup&quot;) 
</span><span class="lines">@@ -3065,7 +3065,7 @@
</span><span class="cx"> PASS HTMLOptionElement interface object length 
</span><span class="cx"> PASS HTMLOptionElement interface object name 
</span><span class="cx"> PASS HTMLOptionElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLOptionElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLOptionElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLOptionElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLOptionElement interface: attribute disabled assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLOptionElement interface: attribute form assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLOptionElement interface: attribute label assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3098,7 +3098,7 @@
</span><span class="cx"> PASS HTMLTextAreaElement interface object length 
</span><span class="cx"> PASS HTMLTextAreaElement interface object name 
</span><span class="cx"> PASS HTMLTextAreaElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTextAreaElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTextAreaElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTextAreaElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTextAreaElement interface: attribute autocomplete assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTextAreaElement interface: attribute autofocus assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLTextAreaElement interface: attribute cols assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3177,7 +3177,7 @@
</span><span class="cx"> PASS HTMLKeygenElement interface object length 
</span><span class="cx"> PASS HTMLKeygenElement interface object name 
</span><span class="cx"> PASS HTMLKeygenElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLKeygenElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLKeygenElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLKeygenElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLKeygenElement interface: attribute autofocus assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLKeygenElement interface: attribute challenge assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLKeygenElement interface: attribute disabled assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3213,7 +3213,7 @@
</span><span class="cx"> PASS HTMLOutputElement interface object length 
</span><span class="cx"> PASS HTMLOutputElement interface object name 
</span><span class="cx"> PASS HTMLOutputElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLOutputElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLOutputElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLOutputElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLOutputElement interface: attribute htmlFor assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLOutputElement interface: attribute form assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLOutputElement interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3247,7 +3247,7 @@
</span><span class="cx"> PASS HTMLProgressElement interface object length 
</span><span class="cx"> PASS HTMLProgressElement interface object name 
</span><span class="cx"> PASS HTMLProgressElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLProgressElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLProgressElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLProgressElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLProgressElement interface: attribute value assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLProgressElement interface: attribute max assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLProgressElement interface: attribute position assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3262,7 +3262,7 @@
</span><span class="cx"> PASS HTMLMeterElement interface object length 
</span><span class="cx"> PASS HTMLMeterElement interface object name 
</span><span class="cx"> PASS HTMLMeterElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLMeterElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLMeterElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLMeterElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLMeterElement interface: attribute value assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMeterElement interface: attribute min assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMeterElement interface: attribute max assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3283,7 +3283,7 @@
</span><span class="cx"> PASS HTMLFieldSetElement interface object length 
</span><span class="cx"> PASS HTMLFieldSetElement interface object name 
</span><span class="cx"> PASS HTMLFieldSetElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLFieldSetElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLFieldSetElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLFieldSetElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLFieldSetElement interface: attribute disabled assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFieldSetElement interface: attribute form assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFieldSetElement interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3299,7 +3299,7 @@
</span><span class="cx"> PASS HTMLLegendElement interface object length 
</span><span class="cx"> PASS HTMLLegendElement interface object name 
</span><span class="cx"> PASS HTMLLegendElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLLegendElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLLegendElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLLegendElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLLegendElement interface: attribute form assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLLegendElement interface: attribute align assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLLegendElement must be primary interface of document.createElement(&quot;legend&quot;) 
</span><span class="lines">@@ -3316,7 +3316,7 @@
</span><span class="cx"> PASS ValidityState interface object length 
</span><span class="cx"> PASS ValidityState interface object name 
</span><span class="cx"> PASS ValidityState interface: existence and properties of interface prototype object 
</span><del>-FAIL ValidityState interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: ValidityState.prototype.constructor is not writable expected true got false
</del><ins>+PASS ValidityState interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL ValidityState interface: attribute valueMissing assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL ValidityState interface: attribute typeMismatch assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL ValidityState interface: attribute patternMismatch assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3345,7 +3345,7 @@
</span><span class="cx"> PASS HTMLDetailsElement interface object length 
</span><span class="cx"> PASS HTMLDetailsElement interface object name 
</span><span class="cx"> PASS HTMLDetailsElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLDetailsElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLDetailsElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLDetailsElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLDetailsElement interface: attribute open assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLDetailsElement must be primary interface of document.createElement(&quot;details&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;details&quot;) 
</span><span class="lines">@@ -3354,7 +3354,7 @@
</span><span class="cx"> PASS HTMLMenuElement interface object length 
</span><span class="cx"> PASS HTMLMenuElement interface object name 
</span><span class="cx"> PASS HTMLMenuElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLMenuElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLMenuElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLMenuElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLMenuElement interface: attribute type assert_true: The prototype object must have a property &quot;type&quot; expected true got false
</span><span class="cx"> FAIL HTMLMenuElement interface: attribute label assert_true: The prototype object must have a property &quot;label&quot; expected true got false
</span><span class="cx"> FAIL HTMLMenuElement interface: attribute compact assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3396,7 +3396,7 @@
</span><span class="cx"> PASS HTMLScriptElement interface object length 
</span><span class="cx"> PASS HTMLScriptElement interface object name 
</span><span class="cx"> PASS HTMLScriptElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLScriptElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLScriptElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLScriptElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLScriptElement interface: attribute src assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLScriptElement interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLScriptElement interface: attribute charset assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -3421,13 +3421,13 @@
</span><span class="cx"> PASS HTMLTemplateElement interface object length 
</span><span class="cx"> PASS HTMLTemplateElement interface object name 
</span><span class="cx"> PASS HTMLTemplateElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLTemplateElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLTemplateElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLTemplateElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLTemplateElement interface: attribute content assert_true: The prototype object must have a property &quot;content&quot; expected true got false
</span><span class="cx"> FAIL HTMLCanvasElement interface: existence and properties of interface object assert_equals: class string of HTMLCanvasElement expected &quot;[object Function]&quot; but got &quot;[object HTMLCanvasElementConstructor]&quot;
</span><span class="cx"> PASS HTMLCanvasElement interface object length 
</span><span class="cx"> PASS HTMLCanvasElement interface object name 
</span><span class="cx"> PASS HTMLCanvasElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLCanvasElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLCanvasElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLCanvasElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLCanvasElement interface: attribute width assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLCanvasElement interface: attribute height assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLCanvasElement interface: operation getContext(DOMString,any) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="lines">@@ -3465,7 +3465,7 @@
</span><span class="cx"> FAIL CanvasRenderingContext2D interface object length assert_equals: wrong value for CanvasRenderingContext2D.length expected 1 but got 0
</span><span class="cx"> PASS CanvasRenderingContext2D interface object name 
</span><span class="cx"> FAIL CanvasRenderingContext2D interface: existence and properties of interface prototype object assert_equals: prototype of CanvasRenderingContext2D.prototype is not Object.prototype expected object &quot;[object Object]&quot; but got object &quot;[object CanvasRenderingContextPrototype]&quot;
</span><del>-FAIL CanvasRenderingContext2D interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: CanvasRenderingContext2D.prototype.constructor is not writable expected true got false
</del><ins>+PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL CanvasRenderingContext2D interface: attribute canvas assert_own_property: expected property &quot;canvas&quot; missing
</span><span class="cx"> FAIL CanvasRenderingContext2D interface: attribute width assert_true: The prototype object must have a property &quot;width&quot; expected true got false
</span><span class="cx"> FAIL CanvasRenderingContext2D interface: attribute height assert_true: The prototype object must have a property &quot;height&quot; expected true got false
</span><span class="lines">@@ -3680,19 +3680,19 @@
</span><span class="cx"> PASS CanvasGradient interface object length 
</span><span class="cx"> PASS CanvasGradient interface object name 
</span><span class="cx"> PASS CanvasGradient interface: existence and properties of interface prototype object 
</span><del>-FAIL CanvasGradient interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: CanvasGradient.prototype.constructor is not writable expected true got false
</del><ins>+PASS CanvasGradient interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL CanvasGradient interface: operation addColorStop(double,DOMString) assert_equals: property has wrong .length expected 2 but got 0
</span><span class="cx"> FAIL CanvasPattern interface: existence and properties of interface object assert_equals: class string of CanvasPattern expected &quot;[object Function]&quot; but got &quot;[object CanvasPatternConstructor]&quot;
</span><span class="cx"> PASS CanvasPattern interface object length 
</span><span class="cx"> PASS CanvasPattern interface object name 
</span><span class="cx"> PASS CanvasPattern interface: existence and properties of interface prototype object 
</span><del>-FAIL CanvasPattern interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: CanvasPattern.prototype.constructor is not writable expected true got false
</del><ins>+PASS CanvasPattern interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL CanvasPattern interface: operation setTransform(SVGMatrix) assert_own_property: interface prototype object missing non-static operation expected property &quot;setTransform&quot; missing
</span><span class="cx"> FAIL TextMetrics interface: existence and properties of interface object assert_equals: class string of TextMetrics expected &quot;[object Function]&quot; but got &quot;[object TextMetricsConstructor]&quot;
</span><span class="cx"> PASS TextMetrics interface object length 
</span><span class="cx"> PASS TextMetrics interface object name 
</span><span class="cx"> PASS TextMetrics interface: existence and properties of interface prototype object 
</span><del>-FAIL TextMetrics interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TextMetrics.prototype.constructor is not writable expected true got false
</del><ins>+PASS TextMetrics interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL TextMetrics interface: attribute width assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL TextMetrics interface: attribute actualBoundingBoxLeft assert_true: The prototype object must have a property &quot;actualBoundingBoxLeft&quot; expected true got false
</span><span class="cx"> FAIL TextMetrics interface: attribute actualBoundingBoxRight assert_true: The prototype object must have a property &quot;actualBoundingBoxRight&quot; expected true got false
</span><span class="lines">@@ -3709,7 +3709,7 @@
</span><span class="cx"> PASS ImageData interface object length 
</span><span class="cx"> PASS ImageData interface object name 
</span><span class="cx"> PASS ImageData interface: existence and properties of interface prototype object 
</span><del>-FAIL ImageData interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: ImageData.prototype.constructor is not writable expected true got false
</del><ins>+PASS ImageData interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL ImageData interface: attribute width assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL ImageData interface: attribute height assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL ImageData interface: attribute data assert_true: The prototype object must have a property &quot;data&quot; expected true got false
</span><span class="lines">@@ -3733,7 +3733,7 @@
</span><span class="cx"> PASS Path2D interface object length 
</span><span class="cx"> PASS Path2D interface object name 
</span><span class="cx"> PASS Path2D interface: existence and properties of interface prototype object 
</span><del>-FAIL Path2D interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Path2D.prototype.constructor is not writable expected true got false
</del><ins>+PASS Path2D interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS Path2D interface: operation addPath(Path2D,SVGMatrix) 
</span><span class="cx"> FAIL Path2D interface: operation addPathByStrokingPath(Path2D,CanvasDrawingStyles,SVGMatrix) assert_own_property: interface prototype object missing non-static operation expected property &quot;addPathByStrokingPath&quot; missing
</span><span class="cx"> FAIL Path2D interface: operation addText(DOMString,CanvasDrawingStyles,SVGMatrix,unrestricted double,unrestricted double,unrestricted double) assert_own_property: interface prototype object missing non-static operation expected property &quot;addText&quot; missing
</span><span class="lines">@@ -3754,7 +3754,7 @@
</span><span class="cx"> PASS DataTransfer interface object length 
</span><span class="cx"> PASS DataTransfer interface object name 
</span><span class="cx"> PASS DataTransfer interface: existence and properties of interface prototype object 
</span><del>-FAIL DataTransfer interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DataTransfer.prototype.constructor is not writable expected true got false
</del><ins>+PASS DataTransfer interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL DataTransfer interface: attribute dropEffect assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL DataTransfer interface: attribute effectAllowed assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL DataTransfer interface: attribute items assert_true: The prototype object must have a property &quot;items&quot; expected true got false
</span><span class="lines">@@ -4072,13 +4072,13 @@
</span><span class="cx"> PASS BarProp interface object length 
</span><span class="cx"> PASS BarProp interface object name 
</span><span class="cx"> PASS BarProp interface: existence and properties of interface prototype object 
</span><del>-FAIL BarProp interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: BarProp.prototype.constructor is not writable expected true got false
</del><ins>+PASS BarProp interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL BarProp interface: attribute visible assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL History interface: existence and properties of interface object assert_equals: class string of History expected &quot;[object Function]&quot; but got &quot;[object HistoryConstructor]&quot;
</span><span class="cx"> PASS History interface object length 
</span><span class="cx"> PASS History interface object name 
</span><span class="cx"> PASS History interface: existence and properties of interface prototype object 
</span><del>-FAIL History interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: History.prototype.constructor is not writable expected true got false
</del><ins>+PASS History interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL History interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> FAIL History interface: attribute state assert_true: The prototype object must have a property &quot;state&quot; expected true got false
</span><span class="cx"> PASS History interface: operation go(long) 
</span><span class="lines">@@ -4106,7 +4106,7 @@
</span><span class="cx"> PASS Location interface object length 
</span><span class="cx"> PASS Location interface object name 
</span><span class="cx"> PASS Location interface: existence and properties of interface prototype object 
</span><del>-FAIL Location interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Location.prototype.constructor is not writable expected true got false
</del><ins>+PASS Location interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS Location must be primary interface of window.location 
</span><span class="cx"> PASS Stringification of window.location 
</span><span class="cx"> FAIL Location interface: window.location must have own property &quot;href&quot; assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4128,7 +4128,7 @@
</span><span class="cx"> PASS PopStateEvent interface object length 
</span><span class="cx"> PASS PopStateEvent interface object name 
</span><span class="cx"> PASS PopStateEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL PopStateEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: PopStateEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS PopStateEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL PopStateEvent interface: attribute state assert_true: The prototype object must have a property &quot;state&quot; expected true got false
</span><span class="cx"> PASS PopStateEvent must be primary interface of new PopStateEvent(&quot;popstate&quot;, { data: {} }) 
</span><span class="cx"> PASS Stringification of new PopStateEvent(&quot;popstate&quot;, { data: {} }) 
</span><span class="lines">@@ -4157,26 +4157,26 @@
</span><span class="cx"> PASS HashChangeEvent interface object length 
</span><span class="cx"> PASS HashChangeEvent interface object name 
</span><span class="cx"> PASS HashChangeEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL HashChangeEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HashChangeEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS HashChangeEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HashChangeEvent interface: attribute oldURL assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HashChangeEvent interface: attribute newURL assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL PageTransitionEvent interface: existence and properties of interface object assert_equals: class string of PageTransitionEvent expected &quot;[object Function]&quot; but got &quot;[object PageTransitionEventConstructor]&quot;
</span><span class="cx"> PASS PageTransitionEvent interface object length 
</span><span class="cx"> PASS PageTransitionEvent interface object name 
</span><span class="cx"> PASS PageTransitionEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL PageTransitionEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: PageTransitionEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS PageTransitionEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL PageTransitionEvent interface: attribute persisted assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL BeforeUnloadEvent interface: existence and properties of interface object assert_equals: class string of BeforeUnloadEvent expected &quot;[object Function]&quot; but got &quot;[object BeforeUnloadEventConstructor]&quot;
</span><span class="cx"> PASS BeforeUnloadEvent interface object length 
</span><span class="cx"> PASS BeforeUnloadEvent interface object name 
</span><span class="cx"> PASS BeforeUnloadEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL BeforeUnloadEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: BeforeUnloadEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS BeforeUnloadEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL BeforeUnloadEvent interface: attribute returnValue assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL ApplicationCache interface: existence and properties of interface object assert_equals: class string of ApplicationCache expected &quot;[object Function]&quot; but got &quot;[object ApplicationCacheConstructor]&quot;
</span><span class="cx"> PASS ApplicationCache interface object length 
</span><span class="cx"> PASS ApplicationCache interface object name 
</span><span class="cx"> FAIL ApplicationCache interface: existence and properties of interface prototype object assert_equals: prototype of ApplicationCache.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL ApplicationCache interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: ApplicationCache.prototype.constructor is not writable expected true got false
</del><ins>+PASS ApplicationCache interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS ApplicationCache interface: constant UNCACHED on interface object 
</span><span class="cx"> PASS ApplicationCache interface: constant UNCACHED on interface prototype object 
</span><span class="cx"> PASS ApplicationCache interface: constant IDLE on interface object 
</span><span class="lines">@@ -4235,7 +4235,7 @@
</span><span class="cx"> PASS ErrorEvent interface object length 
</span><span class="cx"> PASS ErrorEvent interface object name 
</span><span class="cx"> PASS ErrorEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL ErrorEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: ErrorEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS ErrorEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL ErrorEvent interface: attribute message assert_true: The prototype object must have a property &quot;message&quot; expected true got false
</span><span class="cx"> FAIL ErrorEvent interface: attribute filename assert_true: The prototype object must have a property &quot;filename&quot; expected true got false
</span><span class="cx"> FAIL ErrorEvent interface: attribute lineno assert_true: The prototype object must have a property &quot;lineno&quot; expected true got false
</span><span class="lines">@@ -4245,7 +4245,7 @@
</span><span class="cx"> PASS Navigator interface object length 
</span><span class="cx"> PASS Navigator interface object name 
</span><span class="cx"> PASS Navigator interface: existence and properties of interface prototype object 
</span><del>-FAIL Navigator interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Navigator.prototype.constructor is not writable expected true got false
</del><ins>+PASS Navigator interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL Navigator interface: attribute appCodeName assert_true: The prototype object must have a property &quot;appCodeName&quot; expected true got false
</span><span class="cx"> FAIL Navigator interface: attribute appName assert_true: The prototype object must have a property &quot;appName&quot; expected true got false
</span><span class="cx"> FAIL Navigator interface: attribute appVersion assert_true: The prototype object must have a property &quot;appVersion&quot; expected true got false
</span><span class="lines">@@ -4302,7 +4302,7 @@
</span><span class="cx"> PASS PluginArray interface object length 
</span><span class="cx"> PASS PluginArray interface object name 
</span><span class="cx"> PASS PluginArray interface: existence and properties of interface prototype object 
</span><del>-FAIL PluginArray interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: PluginArray.prototype.constructor is not writable expected true got false
</del><ins>+PASS PluginArray interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS PluginArray interface: operation refresh(boolean) 
</span><span class="cx"> FAIL PluginArray interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> FAIL PluginArray interface: operation item(unsigned long) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="lines">@@ -4311,7 +4311,7 @@
</span><span class="cx"> PASS MimeTypeArray interface object length 
</span><span class="cx"> PASS MimeTypeArray interface object name 
</span><span class="cx"> PASS MimeTypeArray interface: existence and properties of interface prototype object 
</span><del>-FAIL MimeTypeArray interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MimeTypeArray.prototype.constructor is not writable expected true got false
</del><ins>+PASS MimeTypeArray interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL MimeTypeArray interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> FAIL MimeTypeArray interface: operation item(unsigned long) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="cx"> FAIL MimeTypeArray interface: operation namedItem(DOMString) assert_equals: property has wrong .length expected 1 but got 0
</span><span class="lines">@@ -4319,7 +4319,7 @@
</span><span class="cx"> PASS Plugin interface object length 
</span><span class="cx"> PASS Plugin interface object name 
</span><span class="cx"> PASS Plugin interface: existence and properties of interface prototype object 
</span><del>-FAIL Plugin interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Plugin.prototype.constructor is not writable expected true got false
</del><ins>+PASS Plugin interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL Plugin interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL Plugin interface: attribute description assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL Plugin interface: attribute filename assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4330,7 +4330,7 @@
</span><span class="cx"> PASS MimeType interface object length 
</span><span class="cx"> PASS MimeType interface object name 
</span><span class="cx"> PASS MimeType interface: existence and properties of interface prototype object 
</span><del>-FAIL MimeType interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MimeType.prototype.constructor is not writable expected true got false
</del><ins>+PASS MimeType interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL MimeType interface: attribute type assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL MimeType interface: attribute description assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL MimeType interface: attribute suffixes assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4359,7 +4359,7 @@
</span><span class="cx"> PASS MessageEvent interface object length 
</span><span class="cx"> PASS MessageEvent interface object name 
</span><span class="cx"> PASS MessageEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL MessageEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MessageEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS MessageEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL MessageEvent interface: attribute data assert_true: The prototype object must have a property &quot;data&quot; expected true got false
</span><span class="cx"> FAIL MessageEvent interface: attribute origin assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL MessageEvent interface: attribute lastEventId assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4370,7 +4370,7 @@
</span><span class="cx"> PASS EventSource interface object length 
</span><span class="cx"> PASS EventSource interface object name 
</span><span class="cx"> FAIL EventSource interface: existence and properties of interface prototype object assert_equals: prototype of EventSource.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL EventSource interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: EventSource.prototype.constructor is not writable expected true got false
</del><ins>+PASS EventSource interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL EventSource interface: attribute url assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL EventSource interface: attribute withCredentials assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS EventSource interface: constant CONNECTING on interface object 
</span><span class="lines">@@ -4388,7 +4388,7 @@
</span><span class="cx"> PASS WebSocket interface object length 
</span><span class="cx"> PASS WebSocket interface object name 
</span><span class="cx"> FAIL WebSocket interface: existence and properties of interface prototype object assert_equals: prototype of WebSocket.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL WebSocket interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: WebSocket.prototype.constructor is not writable expected true got false
</del><ins>+PASS WebSocket interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL WebSocket interface: attribute url assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS WebSocket interface: constant CONNECTING on interface object 
</span><span class="cx"> PASS WebSocket interface: constant CONNECTING on interface prototype object 
</span><span class="lines">@@ -4416,7 +4416,7 @@
</span><span class="cx"> PASS CloseEvent interface object length 
</span><span class="cx"> PASS CloseEvent interface object name 
</span><span class="cx"> PASS CloseEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL CloseEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: CloseEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS CloseEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL CloseEvent interface: attribute wasClean assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL CloseEvent interface: attribute code assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL CloseEvent interface: attribute reason assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4424,14 +4424,14 @@
</span><span class="cx"> PASS MessageChannel interface object length 
</span><span class="cx"> PASS MessageChannel interface object name 
</span><span class="cx"> PASS MessageChannel interface: existence and properties of interface prototype object 
</span><del>-FAIL MessageChannel interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MessageChannel.prototype.constructor is not writable expected true got false
</del><ins>+PASS MessageChannel interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL MessageChannel interface: attribute port1 assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL MessageChannel interface: attribute port2 assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL MessagePort interface: existence and properties of interface object assert_equals: class string of MessagePort expected &quot;[object Function]&quot; but got &quot;[object MessagePortConstructor]&quot;
</span><span class="cx"> PASS MessagePort interface object length 
</span><span class="cx"> PASS MessagePort interface object name 
</span><span class="cx"> FAIL MessagePort interface: existence and properties of interface prototype object assert_equals: prototype of MessagePort.prototype is not EventTarget.prototype expected object &quot;[object EventTargetPrototype]&quot; but got object &quot;[object Object]&quot;
</span><del>-FAIL MessagePort interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MessagePort.prototype.constructor is not writable expected true got false
</del><ins>+PASS MessagePort interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS MessagePort interface: operation postMessage(any,[object Object]) 
</span><span class="cx"> PASS MessagePort interface: operation start() 
</span><span class="cx"> PASS MessagePort interface: operation close() 
</span><span class="lines">@@ -4496,7 +4496,7 @@
</span><span class="cx"> PASS Worker interface object length 
</span><span class="cx"> PASS Worker interface object name 
</span><span class="cx"> PASS Worker interface: existence and properties of interface prototype object 
</span><del>-FAIL Worker interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Worker.prototype.constructor is not writable expected true got false
</del><ins>+PASS Worker interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS Worker interface: operation terminate() 
</span><span class="cx"> PASS Worker interface: operation postMessage(any,[object Object]) 
</span><span class="cx"> FAIL Worker interface: attribute onmessage assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4541,7 +4541,7 @@
</span><span class="cx"> PASS Storage interface object length 
</span><span class="cx"> PASS Storage interface object name 
</span><span class="cx"> PASS Storage interface: existence and properties of interface prototype object 
</span><del>-FAIL Storage interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Storage.prototype.constructor is not writable expected true got false
</del><ins>+PASS Storage interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL Storage interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
</span><span class="cx"> PASS Storage interface: operation key(unsigned long) 
</span><span class="cx"> PASS Storage interface: operation getItem(DOMString) 
</span><span class="lines">@@ -4552,7 +4552,7 @@
</span><span class="cx"> PASS StorageEvent interface object length 
</span><span class="cx"> PASS StorageEvent interface object name 
</span><span class="cx"> PASS StorageEvent interface: existence and properties of interface prototype object 
</span><del>-FAIL StorageEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: StorageEvent.prototype.constructor is not writable expected true got false
</del><ins>+PASS StorageEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL StorageEvent interface: attribute key assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL StorageEvent interface: attribute oldValue assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL StorageEvent interface: attribute newValue assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4562,7 +4562,7 @@
</span><span class="cx"> PASS HTMLAppletElement interface object length 
</span><span class="cx"> PASS HTMLAppletElement interface object name 
</span><span class="cx"> PASS HTMLAppletElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLAppletElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLAppletElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLAppletElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLAppletElement interface: attribute align assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLAppletElement interface: attribute alt assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLAppletElement interface: attribute archive assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4591,7 +4591,7 @@
</span><span class="cx"> PASS HTMLMarqueeElement interface object length 
</span><span class="cx"> PASS HTMLMarqueeElement interface object name 
</span><span class="cx"> PASS HTMLMarqueeElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLMarqueeElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLMarqueeElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLMarqueeElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLMarqueeElement interface: attribute behavior assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMarqueeElement interface: attribute bgColor assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLMarqueeElement interface: attribute direction assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4630,7 +4630,7 @@
</span><span class="cx"> PASS HTMLFrameSetElement interface object length 
</span><span class="cx"> PASS HTMLFrameSetElement interface object name 
</span><span class="cx"> PASS HTMLFrameSetElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLFrameSetElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLFrameSetElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLFrameSetElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLFrameSetElement interface: attribute cols assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFrameSetElement interface: attribute rows assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFrameSetElement interface: attribute onafterprint assert_true: The prototype object must have a property &quot;onafterprint&quot; expected true got false
</span><span class="lines">@@ -4667,7 +4667,7 @@
</span><span class="cx"> PASS HTMLFrameElement interface object length 
</span><span class="cx"> PASS HTMLFrameElement interface object name 
</span><span class="cx"> PASS HTMLFrameElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLFrameElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLFrameElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLFrameElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLFrameElement interface: attribute name assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFrameElement interface: attribute scrolling assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFrameElement interface: attribute src assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="lines">@@ -4694,7 +4694,7 @@
</span><span class="cx"> PASS HTMLDirectoryElement interface object length 
</span><span class="cx"> PASS HTMLDirectoryElement interface object name 
</span><span class="cx"> PASS HTMLDirectoryElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLDirectoryElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLDirectoryElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLDirectoryElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLDirectoryElement interface: attribute compact assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> PASS HTMLDirectoryElement must be primary interface of document.createElement(&quot;dir&quot;) 
</span><span class="cx"> PASS Stringification of document.createElement(&quot;dir&quot;) 
</span><span class="lines">@@ -4703,7 +4703,7 @@
</span><span class="cx"> PASS HTMLFontElement interface object length 
</span><span class="cx"> PASS HTMLFontElement interface object name 
</span><span class="cx"> PASS HTMLFontElement interface: existence and properties of interface prototype object 
</span><del>-FAIL HTMLFontElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: HTMLFontElement.prototype.constructor is not writable expected true got false
</del><ins>+PASS HTMLFontElement interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> FAIL HTMLFontElement interface: attribute color assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFontElement interface: attribute face assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span><span class="cx"> FAIL HTMLFontElement interface: attribute size assert_equals: getter must be Function expected &quot;function&quot; but got &quot;undefined&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomconstructorattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/constructor-attributes-expected.txt (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/constructor-attributes-expected.txt        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/LayoutTests/js/dom/constructor-attributes-expected.txt        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> PASS x = URIError.prototype; delete x.constructor; x.hasOwnProperty('constructor') is false
</span><span class="cx"> PASS document.createTextNode('').__proto__.hasOwnProperty('constructor') is true
</span><span class="cx"> PASS canEnum(document.createTextNode('').__proto__, 'constructor') is false
</span><del>-FAIL x = document.createTextNode('').__proto__; x.constructor = 4; x.constructor should be 4 (of type number). Was [object TextConstructor] (of type object).
</del><ins>+PASS x = document.createTextNode('').__proto__; x.constructor = 4; x.constructor is 4
</ins><span class="cx"> PASS x = document.createTextNode('').__proto__; delete x.constructor; x.hasOwnProperty('constructor') is false
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/ChangeLog        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -1,5 +1,80 @@
</span><span class="cx"> 2016-01-30  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        [JS Bindings] prototype.constructor should be writable
+        https://bugs.webkit.org/show_bug.cgi?id=149412
+        &lt;rdar://problem/22545096&gt;
+
+        Reviewed by Darin Adler.
+
+        prototype.constructor should have the following properties:
+        { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+
+        as per the Web IDL specification:
+        https://heycam.github.io/webidl/#interface-prototype-object
+
+        In WebKit, it is currently not writable. It is writable in Firefox.
+
+        This patch was first landed in r190085 but was rolled out for causing
+        crashes: &lt;rdar://problem/22825602&gt;. The issue was that even though we
+        marked constructor as writable, we failed to generate a setter for it.
+        This patch addresses the issue and the crash in &lt;rdar://problem/22825602&gt;
+        no longer occurs after this change. A regression test is also added for
+        this crash.
+
+        Tests:
+        fast/dom/HTMLDocument/constructor-setter-crash.html
+        fast/dom/prototype-constructor-setter.html
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateAttributesHashTable):
+        (GenerateImplementation):
+        * bindings/scripts/IDLAttributes.txt:
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        (WebCore::setJSTestActiveDOMObjectConstructor):
+        * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
+        (WebCore::setJSTestClassWithJSBuiltinConstructorConstructor):
+        * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
+        (WebCore::setJSTestCustomConstructorWithNoInterfaceObjectConstructor):
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+        (WebCore::setJSTestCustomNamedGetterConstructor):
+        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+        (WebCore::setJSTestEventConstructorConstructor):
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+        (WebCore::setJSTestEventTargetConstructor):
+        * bindings/scripts/test/JS/JSTestException.cpp:
+        (WebCore::setJSTestExceptionConstructor):
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+        (WebCore::setJSTestGenerateIsReachableConstructor):
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        (WebCore::setJSTestInterfaceConstructor):
+        * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
+        (WebCore::setJSTestJSBuiltinConstructorConstructor):
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+        (WebCore::setJSTestMediaQueryListListenerConstructor):
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        (WebCore::setJSTestNamedConstructorConstructor):
+        * bindings/scripts/test/JS/JSTestNode.cpp:
+        (WebCore::setJSTestNodeConstructor):
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+        (WebCore::setJSTestNondeterministicConstructor):
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::setJSTestObjConstructor):
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        (WebCore::setJSTestOverloadedConstructorsConstructor):
+        * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
+        (WebCore::setJSTestOverrideBuiltinsConstructor):
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+        (WebCore::setJSTestSerializedScriptValueInterfaceConstructor):
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        (WebCore::setJSTestTypedefsConstructor):
+        * bindings/scripts/test/JS/JSattribute.cpp:
+        (WebCore::setJSattributeConstructor):
+        * bindings/scripts/test/JS/JSreadonly.cpp:
+        (WebCore::setJSreadonlyConstructor):
+        * page/DOMWindow.idl:
+
+2016-01-30  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Move more 'constructor' properties to the prototype
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=153667
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -1356,13 +1356,15 @@
</span><span class="cx">             push(@$hashKeys, &quot;constructor&quot;);
</span><span class="cx">             my $getter = &quot;js&quot; . $interfaceName . &quot;Constructor&quot;;
</span><span class="cx">             push(@$hashValue1, $getter);
</span><del>-            if ($interface-&gt;extendedAttributes-&gt;{&quot;ReplaceableConstructor&quot;}) {
-                my $setter = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
-                push(@$hashValue2, $setter);
</del><ins>+
+            my $setter = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
+            push(@$hashValue2, $setter);
+
+            # FIXME: Do we really need to special-case DOMWindow?
+            if ($interfaceName eq &quot;DOMWindow&quot;) {
</ins><span class="cx">                 push(@$hashSpecials, &quot;DontEnum | DontDelete&quot;);
</span><span class="cx">             } else {
</span><del>-                push(@$hashValue2, &quot;0&quot;);
-                push(@$hashSpecials, &quot;DontEnum | ReadOnly&quot;);
</del><ins>+                push(@$hashSpecials, &quot;DontEnum&quot;);
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -1848,10 +1850,8 @@
</span><span class="cx">             push(@implContent, &quot;JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);\n&quot;);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if ($interface-&gt;extendedAttributes-&gt;{&quot;ReplaceableConstructor&quot;}) {
-            my $constructorFunctionName = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
-            push(@implContent, &quot;void ${constructorFunctionName}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n&quot;);
-        }
</del><ins>+        my $constructorFunctionName = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
+        push(@implContent, &quot;void ${constructorFunctionName}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n&quot;);
</ins><span class="cx"> 
</span><span class="cx">         push(@implContent, &quot;\n&quot;);
</span><span class="cx">     }
</span><span class="lines">@@ -2514,39 +2514,38 @@
</span><span class="cx">             push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if ($interface-&gt;extendedAttributes-&gt;{&quot;ReplaceableConstructor&quot;}) {
-            my $constructorFunctionName = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
</del><ins>+        my $constructorFunctionName = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
</ins><span class="cx"> 
</span><del>-            push(@implContent, &quot;void ${constructorFunctionName}(ExecState* state, JSObject*, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n&quot;);
-            push(@implContent, &quot;{\n&quot;);
-            push(@implContent, &quot;    JSValue value = JSValue::decode(encodedValue);&quot;);
-            if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomProxyToJSObject&quot;}) {
-                push(@implContent, &quot;    ${className}* castedThis = to${className}(JSValue::decode(thisValue));\n&quot;);
</del><ins>+        push(@implContent, &quot;void ${constructorFunctionName}(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n&quot;);
+        push(@implContent, &quot;{\n&quot;);
+        push(@implContent, &quot;    JSValue value = JSValue::decode(encodedValue);\n&quot;);
+        if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomProxyToJSObject&quot;}) {
+            push(@implContent, &quot;    UNUSED_PARAM(baseValue);\n&quot;);
+            push(@implContent, &quot;    ${className}* domObject = to${className}(JSValue::decode(thisValue));\n&quot;);
+        } elsif (ConstructorShouldBeOnInstance($interface)) {
+            push(@implContent, &quot;    UNUSED_PARAM(baseValue);\n&quot;);
+            push(@implContent, &quot;    ${className}* domObject = &quot; . GetCastingHelperForThisObject($interface) . &quot;(JSValue::decode(thisValue));\n&quot;);
+        } else {
+            push(@implContent, &quot;    UNUSED_PARAM(thisValue);\n&quot;);
+            push(@implContent, &quot;    ${className}Prototype* domObject = jsDynamicCast&lt;${className}Prototype*&gt;(baseValue);\n&quot;);
+        }
+        push(@implContent, &quot;    if (UNLIKELY(!domObject)) {\n&quot;);
+        push(@implContent, &quot;        throwVMTypeError(state);\n&quot;);
+        push(@implContent, &quot;        return;\n&quot;);
+        push(@implContent, &quot;    }\n&quot;);
+        if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;}) {
+            if ($interfaceName eq &quot;DOMWindow&quot;) {
+                push(@implContent, &quot;    if (!BindingSecurity::shouldAllowAccessToDOMWindow(state, domObject-&gt;wrapped()))\n&quot;);
</ins><span class="cx">             } else {
</span><del>-                push(@implContent, &quot;    ${className}* castedThis = &quot; . GetCastingHelperForThisObject($interface) . &quot;(JSValue::decode(thisValue));\n&quot;);
</del><ins>+                push(@implContent, &quot;    if (!shouldAllowAccessToFrame(state, domObject-&gt;wrapped().frame()))\n&quot;);
</ins><span class="cx">             }
</span><del>-            push(@implContent, &quot;    if (UNLIKELY(!castedThis)) {\n&quot;);
-            push(@implContent, &quot;        throwVMTypeError(state);\n&quot;);
</del><span class="cx">             push(@implContent, &quot;        return;\n&quot;);
</span><del>-            push(@implContent, &quot;    }\n&quot;);
-            if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;}) {
-                if ($interfaceName eq &quot;DOMWindow&quot;) {
-                    push(@implContent, &quot;    if (!BindingSecurity::shouldAllowAccessToDOMWindow(state, castedThis-&gt;wrapped()))\n&quot;);
-                } else {
-                    push(@implContent, &quot;    if (!shouldAllowAccessToFrame(state, castedThis-&gt;wrapped().frame()))\n&quot;);
-                }
-                push(@implContent, &quot;        return;\n&quot;);
-            }
</del><ins>+        }
</ins><span class="cx"> 
</span><del>-            push(@implContent, &quot;    // Shadowing a built-in constructor\n&quot;);
</del><ins>+        push(@implContent, &quot;    // Shadowing a built-in constructor\n&quot;);
</ins><span class="cx"> 
</span><del>-            if ($interfaceName eq &quot;DOMWindow&quot;) {
-                push(@implContent, &quot;    castedThis-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);\n&quot;);
-            } else {
-                die &quot;No way to handle interface with ReplaceableConstructor extended attribute: $interfaceName&quot;;
-            }
-            push(@implContent, &quot;}\n\n&quot;);
-        }
</del><ins>+        push(@implContent, &quot;    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);\n&quot;);
+        push(@implContent, &quot;}\n\n&quot;);
</ins><span class="cx">     }
</span><span class="cx">     my $hasCustomSetter = $interface-&gt;extendedAttributes-&gt;{&quot;CustomNamedSetter&quot;}
</span><span class="cx">                           || $interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;};
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsIDLAttributestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -111,7 +111,6 @@
</span><span class="cx"> RaisesExceptionWithMessage
</span><span class="cx"> Reflect=*
</span><span class="cx"> Replaceable
</span><del>-ReplaceableConstructor
</del><span class="cx"> ReportExtraMemoryCost
</span><span class="cx"> RequiresExistingAtomicString
</span><span class="cx"> SetterRaisesException
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestActiveDOMObjectExcitingAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> JSC::EncodedJSValue jsTestActiveDOMObjectConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestActiveDOMObjectConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestActiveDOMObjectPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -81,7 +82,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestActiveDOMObjectTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestActiveDOMObjectConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestActiveDOMObjectConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestActiveDOMObjectConstructor) } },
</ins><span class="cx">     { &quot;excitingAttr&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestActiveDOMObjectExcitingAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -167,6 +168,21 @@
</span><span class="cx">     return JSValue::encode(JSTestActiveDOMObject::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestActiveDOMObjectConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(baseValue);
+    JSTestActiveDOMObject* domObject = jsDynamicCast&lt;JSTestActiveDOMObject*&gt;(JSValue::decode(thisValue));
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    if (!shouldAllowAccessToFrame(state, domObject-&gt;wrapped().frame()))
+        return;
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestActiveDOMObject::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestActiveDOMObjectConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -33,6 +33,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestClassWithJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestClassWithJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestClassWithJSBuiltinConstructorPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -84,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestClassWithJSBuiltinConstructorPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestClassWithJSBuiltinConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestClassWithJSBuiltinConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestClassWithJSBuiltinConstructorConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> const ClassInfo JSTestClassWithJSBuiltinConstructorPrototype::s_info = { &quot;TestClassWithJSBuiltinConstructorPrototype&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestClassWithJSBuiltinConstructorPrototype) };
</span><span class="lines">@@ -126,6 +127,19 @@
</span><span class="cx">     return JSValue::encode(JSTestClassWithJSBuiltinConstructor::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestClassWithJSBuiltinConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestClassWithJSBuiltinConstructorPrototype* domObject = jsDynamicCast&lt;JSTestClassWithJSBuiltinConstructorPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestClassWithJSBuiltinConstructor::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestClassWithJSBuiltinConstructorConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestCustomConstructorWithNoInterfaceObjectConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestCustomConstructorWithNoInterfaceObjectConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestCustomConstructorWithNoInterfaceObjectPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -78,7 +79,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestCustomConstructorWithNoInterfaceObjectPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestCustomConstructorWithNoInterfaceObjectConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestCustomConstructorWithNoInterfaceObjectConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestCustomConstructorWithNoInterfaceObjectConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> const ClassInfo JSTestCustomConstructorWithNoInterfaceObjectPrototype::s_info = { &quot;TestCustomConstructorWithNoInterfaceObjectPrototype&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestCustomConstructorWithNoInterfaceObjectPrototype) };
</span><span class="lines">@@ -123,6 +124,19 @@
</span><span class="cx">     return JSValue::encode(constructor);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestCustomConstructorWithNoInterfaceObjectConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestCustomConstructorWithNoInterfaceObjectPrototype* domObject = jsDynamicCast&lt;JSTestCustomConstructorWithNoInterfaceObjectPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> bool JSTestCustomConstructorWithNoInterfaceObjectOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt; handle, void*, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><span class="cx">     UNUSED_PARAM(handle);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -39,6 +39,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestCustomNamedGetterConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestCustomNamedGetterConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestCustomNamedGetterPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -77,7 +78,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestCustomNamedGetterTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestCustomNamedGetterConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestCustomNamedGetterConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestCustomNamedGetterConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> static const HashTable JSTestCustomNamedGetterTable = { 1, 1, true, JSTestCustomNamedGetterTableValues, JSTestCustomNamedGetterTableIndex };
</span><span class="lines">@@ -171,6 +172,19 @@
</span><span class="cx">     return JSValue::encode(JSTestCustomNamedGetter::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestCustomNamedGetterConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(baseValue);
+    JSTestCustomNamedGetter* domObject = jsDynamicCast&lt;JSTestCustomNamedGetter*&gt;(JSValue::decode(thisValue));
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestCustomNamedGetter::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestCustomNamedGetterConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> JSC::EncodedJSValue jsTestEventConstructorAttr1(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> JSC::EncodedJSValue jsTestEventConstructorAttr2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> JSC::EncodedJSValue jsTestEventConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestEventConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestEventConstructorPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -119,7 +120,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestEventConstructorPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestEventConstructorConstructor) } },
</ins><span class="cx">     { &quot;attr1&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorAttr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx">     { &quot;attr2&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorAttr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx"> };
</span><span class="lines">@@ -191,6 +192,19 @@
</span><span class="cx">     return JSValue::encode(JSTestEventConstructor::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestEventConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestEventConstructorPrototype* domObject = jsDynamicCast&lt;JSTestEventConstructorPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestEventConstructor::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestEventConstructorConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestEventTargetConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestEventTargetConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestEventTargetPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -86,7 +87,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestEventTargetTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventTargetConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventTargetConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestEventTargetConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> static const HashTable JSTestEventTargetTable = { 1, 1, true, JSTestEventTargetTableValues, JSTestEventTargetTableIndex };
</span><span class="lines">@@ -187,6 +188,19 @@
</span><span class="cx">     return JSValue::encode(JSTestEventTarget::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestEventTargetConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(baseValue);
+    JSTestEventTarget* domObject = jsDynamicCast&lt;JSTestEventTarget*&gt;(JSValue::decode(thisValue));
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void JSTestEventTarget::getOwnPropertyNames(JSObject* object, ExecState* state, PropertyNameArray&amp; propertyNames, EnumerationMode mode)
</span><span class="cx"> {
</span><span class="cx">     auto* thisObject = jsCast&lt;JSTestEventTarget*&gt;(object);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestExceptionName(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> JSC::EncodedJSValue jsTestExceptionConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestExceptionConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestExceptionPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -90,7 +91,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestExceptionPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestExceptionConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestExceptionConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestExceptionConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> const ClassInfo JSTestExceptionPrototype::s_info = { &quot;TestExceptionPrototype&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestExceptionPrototype) };
</span><span class="lines">@@ -153,6 +154,19 @@
</span><span class="cx">     return JSValue::encode(JSTestException::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestExceptionConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestExceptionPrototype* domObject = jsDynamicCast&lt;JSTestExceptionPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestException::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestExceptionConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestGenerateIsReachableConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestGenerateIsReachableConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestGenerateIsReachablePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -73,7 +74,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestGenerateIsReachablePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestGenerateIsReachableConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestGenerateIsReachableConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestGenerateIsReachableConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> const ClassInfo JSTestGenerateIsReachablePrototype::s_info = { &quot;TestGenerateIsReachablePrototype&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestGenerateIsReachablePrototype) };
</span><span class="lines">@@ -115,6 +116,19 @@
</span><span class="cx">     return JSValue::encode(JSTestGenerateIsReachable::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestGenerateIsReachableConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestGenerateIsReachablePrototype* domObject = jsDynamicCast&lt;JSTestGenerateIsReachablePrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestGenerateIsReachable::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestGenerateIsReachableConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -122,6 +122,7 @@
</span><span class="cx"> void setJSTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><span class="cx"> #endif
</span><span class="cx"> JSC::EncodedJSValue jsTestInterfaceConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestInterfaceConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestInterfacePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -293,7 +294,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestInterfacePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceConstructor) } },
</ins><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><span class="cx">     { &quot;implementsStr1&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsStr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx"> #else
</span><span class="lines">@@ -602,6 +603,19 @@
</span><span class="cx">     return JSValue::encode(JSTestInterface::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestInterfaceConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestInterfacePrototype* domObject = jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void JSTestInterface::put(JSCell* cell, ExecState* state, PropertyName propertyName, JSValue value, PutPropertySlot&amp; slot)
</span><span class="cx"> {
</span><span class="cx">     auto* thisObject = jsCast&lt;JSTestInterface*&gt;(cell);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> JSC::EncodedJSValue jsTestJSBuiltinConstructorTestAttributeRWCustom(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> void setJSTestJSBuiltinConstructorTestAttributeRWCustom(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><span class="cx"> JSC::EncodedJSValue jsTestJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestJSBuiltinConstructorPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -104,7 +105,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestJSBuiltinConstructorPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestJSBuiltinConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestJSBuiltinConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestJSBuiltinConstructorConstructor) } },
</ins><span class="cx">     { &quot;testAttribute&quot;, Accessor | Builtin, NoIntrinsic, { (intptr_t)static_cast&lt;BuiltinGenerator&gt;(testJSBuiltinConstructorTestAttributeCodeGenerator), (intptr_t) (setTestJSBuiltinConstructorTestAttributeCodeGenerator) } },
</span><span class="cx">     { &quot;testFunction&quot;, JSC::Builtin, NoIntrinsic, { (intptr_t)static_cast&lt;BuiltinGenerator&gt;(testJSBuiltinConstructorTestFunctionCodeGenerator), (intptr_t) (0) } },
</span><span class="cx">     { &quot;testCustomFunction&quot;, JSC::Function, NoIntrinsic, { (intptr_t)static_cast&lt;NativeFunction&gt;(jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunction), (intptr_t) (0) } },
</span><span class="lines">@@ -176,6 +177,19 @@
</span><span class="cx">     return JSValue::encode(JSTestJSBuiltinConstructor::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestJSBuiltinConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestJSBuiltinConstructorPrototype* domObject = jsDynamicCast&lt;JSTestJSBuiltinConstructorPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void setJSTestJSBuiltinConstructorTestAttributeRWCustom(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</span><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -39,6 +39,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestMediaQueryListListenerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestMediaQueryListListenerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestMediaQueryListListenerPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -80,7 +81,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestMediaQueryListListenerPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestMediaQueryListListenerConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestMediaQueryListListenerConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestMediaQueryListListenerConstructor) } },
</ins><span class="cx">     { &quot;method&quot;, JSC::Function, NoIntrinsic, { (intptr_t)static_cast&lt;NativeFunction&gt;(jsTestMediaQueryListListenerPrototypeFunctionMethod), (intptr_t) (1) } },
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -123,6 +124,19 @@
</span><span class="cx">     return JSValue::encode(JSTestMediaQueryListListener::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestMediaQueryListListenerConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestMediaQueryListListenerPrototype* domObject = jsDynamicCast&lt;JSTestMediaQueryListListenerPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestMediaQueryListListener::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestMediaQueryListListenerConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestNamedConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestNamedConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestNamedConstructorPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -108,7 +109,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestNamedConstructorPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNamedConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNamedConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestNamedConstructorConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> const ClassInfo JSTestNamedConstructorPrototype::s_info = { &quot;TestNamedConstructorPrototype&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestNamedConstructorPrototype) };
</span><span class="lines">@@ -150,6 +151,19 @@
</span><span class="cx">     return JSValue::encode(JSTestNamedConstructor::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestNamedConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestNamedConstructorPrototype* domObject = jsDynamicCast&lt;JSTestNamedConstructorPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestNamedConstructor::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestNamedConstructorConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> JSC::EncodedJSValue jsTestNodeName(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> void setJSTestNodeName(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><span class="cx"> JSC::EncodedJSValue jsTestNodeConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestNodeConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestNodePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -86,7 +87,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestNodePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNodeConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNodeConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestNodeConstructor) } },
</ins><span class="cx">     { &quot;name&quot;, CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNodeName), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestNodeName) } },
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -137,6 +138,19 @@
</span><span class="cx">     return JSValue::encode(JSTestNode::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestNodeConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestNodePrototype* domObject = jsDynamicCast&lt;JSTestNodePrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void setJSTestNodeName(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</span><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -55,6 +55,7 @@
</span><span class="cx"> JSC::EncodedJSValue jsTestNondeterministicNondeterministicSetterExceptionAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> void setJSTestNondeterministicNondeterministicSetterExceptionAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><span class="cx"> JSC::EncodedJSValue jsTestNondeterministicConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestNondeterministicConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestNondeterministicPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -96,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestNondeterministicPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNondeterministicConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNondeterministicConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestNondeterministicConstructor) } },
</ins><span class="cx">     { &quot;nondeterministicReadonlyAttr&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNondeterministicNondeterministicReadonlyAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx">     { &quot;nondeterministicWriteableAttr&quot;, CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNondeterministicNondeterministicWriteableAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestNondeterministicNondeterministicWriteableAttr) } },
</span><span class="cx">     { &quot;nondeterministicExceptionAttr&quot;, CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestNondeterministicNondeterministicExceptionAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestNondeterministicNondeterministicExceptionAttr) } },
</span><span class="lines">@@ -318,6 +319,19 @@
</span><span class="cx">     return JSValue::encode(JSTestNondeterministic::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestNondeterministicConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestNondeterministicPrototype* domObject = jsDynamicCast&lt;JSTestNondeterministicPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void setJSTestNondeterministicNondeterministicWriteableAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</span><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -332,6 +332,7 @@
</span><span class="cx"> JSC::EncodedJSValue jsTestObjPutForwardsNullableAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> void setJSTestObjPutForwardsNullableAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><span class="cx"> JSC::EncodedJSValue jsTestObjConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestObjConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestObjPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -489,7 +490,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestObjPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConstructor) } },
</ins><span class="cx">     { &quot;readOnlyLongAttr&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx">     { &quot;readOnlyStringAttr&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx">     { &quot;readOnlyTestObjAttr&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyTestObjAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="lines">@@ -1853,6 +1854,19 @@
</span><span class="cx">     return JSValue::encode(JSTestObj::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestObjConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestObjPrototype* domObject = jsDynamicCast&lt;JSTestObjPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void setJSTestObjConstructorStaticStringAttr(ExecState* state, JSObject* baseObject, EncodedJSValue, EncodedJSValue encodedValue)
</span><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestOverloadedConstructorsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestOverloadedConstructorsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestOverloadedConstructorsPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -153,7 +154,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestOverloadedConstructorsPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestOverloadedConstructorsConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestOverloadedConstructorsConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestOverloadedConstructorsConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> const ClassInfo JSTestOverloadedConstructorsPrototype::s_info = { &quot;TestOverloadedConstructorsPrototype&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestOverloadedConstructorsPrototype) };
</span><span class="lines">@@ -195,6 +196,19 @@
</span><span class="cx">     return JSValue::encode(JSTestOverloadedConstructors::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestOverloadedConstructorsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestOverloadedConstructorsPrototype* domObject = jsDynamicCast&lt;JSTestOverloadedConstructorsPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSTestOverloadedConstructors::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSTestOverloadedConstructorsConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsTestOverrideBuiltinsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestOverrideBuiltinsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestOverrideBuiltinsPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -79,7 +80,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestOverrideBuiltinsTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestOverrideBuiltinsConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestOverrideBuiltinsConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestOverrideBuiltinsConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> static const HashTable JSTestOverrideBuiltinsTable = { 1, 1, true, JSTestOverrideBuiltinsTableValues, JSTestOverrideBuiltinsTableIndex };
</span><span class="lines">@@ -169,6 +170,19 @@
</span><span class="cx">     return JSValue::encode(JSTestOverrideBuiltins::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestOverrideBuiltinsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(baseValue);
+    JSTestOverrideBuiltins* domObject = jsDynamicCast&lt;JSTestOverrideBuiltins*&gt;(JSValue::decode(thisValue));
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void JSTestOverrideBuiltins::getOwnPropertyNames(JSObject* object, ExecState* state, PropertyNameArray&amp; propertyNames, EnumerationMode mode)
</span><span class="cx"> {
</span><span class="cx">     auto* thisObject = jsCast&lt;JSTestOverrideBuiltins*&gt;(object);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -46,6 +46,7 @@
</span><span class="cx"> JSC::EncodedJSValue jsTestSerializedScriptValueInterfacePorts(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceCachedReadonlyValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestSerializedScriptValueInterfaceConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestSerializedScriptValueInterfacePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -87,7 +88,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestSerializedScriptValueInterfacePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestSerializedScriptValueInterfaceConstructor) } },
</ins><span class="cx">     { &quot;value&quot;, CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestSerializedScriptValueInterfaceValue) } },
</span><span class="cx">     { &quot;readonlyValue&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceReadonlyValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx">     { &quot;cachedValue&quot;, CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceCachedValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestSerializedScriptValueInterfaceCachedValue) } },
</span><span class="lines">@@ -210,6 +211,19 @@
</span><span class="cx">     return JSValue::encode(JSTestSerializedScriptValueInterface::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestSerializedScriptValueInterfaceConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestSerializedScriptValueInterfacePrototype* domObject = jsDynamicCast&lt;JSTestSerializedScriptValueInterfacePrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void setJSTestSerializedScriptValueInterfaceValue(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</span><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -72,6 +72,7 @@
</span><span class="cx"> JSC::EncodedJSValue jsTestTypedefsStringAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> void setJSTestTypedefsStringAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><span class="cx"> JSC::EncodedJSValue jsTestTypedefsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSTestTypedefsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSTestTypedefsPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -150,7 +151,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSTestTypedefsPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsConstructor) } },
</ins><span class="cx">     { &quot;unsignedLongLongAttr&quot;, CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsUnsignedLongLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsUnsignedLongLongAttr) } },
</span><span class="cx">     { &quot;immutableSerializedScriptValue&quot;, CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsImmutableSerializedScriptValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsImmutableSerializedScriptValue) } },
</span><span class="cx">     { &quot;attrWithGetterException&quot;, CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsAttrWithGetterException) } },
</span><span class="lines">@@ -315,6 +316,19 @@
</span><span class="cx">     return JSValue::encode(JSTestTypedefs::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSTestTypedefsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSTestTypedefsPrototype* domObject = jsDynamicCast&lt;JSTestTypedefsPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> void setJSTestTypedefsUnsignedLongLongAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</span><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsattributeReadonly(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> JSC::EncodedJSValue jsattributeConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSattributeConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSattributePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -76,7 +77,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSattributePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsattributeConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsattributeConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSattributeConstructor) } },
</ins><span class="cx">     { &quot;readonly&quot;, ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsattributeReadonly), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -133,6 +134,19 @@
</span><span class="cx">     return JSValue::encode(JSattribute::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSattributeConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSattributePrototype* domObject = jsDynamicCast&lt;JSattributePrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSattribute::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSattributeConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> // Attributes
</span><span class="cx"> 
</span><span class="cx"> JSC::EncodedJSValue jsreadonlyConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><ins>+void setJSreadonlyConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> 
</span><span class="cx"> class JSreadonlyPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -73,7 +74,7 @@
</span><span class="cx"> 
</span><span class="cx"> static const HashTableValue JSreadonlyPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>-    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsreadonlyConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
</del><ins>+    { &quot;constructor&quot;, DontEnum, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsreadonlyConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSreadonlyConstructor) } },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> const ClassInfo JSreadonlyPrototype::s_info = { &quot;readonlyPrototype&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSreadonlyPrototype) };
</span><span class="lines">@@ -115,6 +116,19 @@
</span><span class="cx">     return JSValue::encode(JSreadonly::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void setJSreadonlyConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(thisValue);
+    JSreadonlyPrototype* domObject = jsDynamicCast&lt;JSreadonlyPrototype*&gt;(baseValue);
+    if (UNLIKELY(!domObject)) {
+        throwVMTypeError(state);
+        return;
+    }
+    // Shadowing a built-in constructor
+    domObject-&gt;putDirect(state-&gt;vm(), state-&gt;propertyNames().constructor, value);
+}
+
</ins><span class="cx"> JSValue JSreadonly::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return getDOMConstructor&lt;JSreadonlyConstructor&gt;(vm, *jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.idl (195906 => 195907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.idl        2016-01-30 20:57:09 UTC (rev 195906)
+++ trunk/Source/WebCore/page/DOMWindow.idl        2016-01-30 21:01:09 UTC (rev 195907)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx">     CustomPutFunction,
</span><span class="cx">     EventTarget,
</span><span class="cx">     JSGenerateToNativeObject,
</span><del>-    ReplaceableConstructor,
</del><span class="cx">     JSLegacyParent=JSDOMWindowBase,
</span><span class="cx">     InterfaceName=Window,
</span><span class="cx"> ] interface DOMWindow {
</span></span></pre>
</div>
</div>

</body>
</html>