<!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>[190314] trunk/Source/WebCore</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/190314">190314</a></dd>
<dt>Author</dt> <dd>youenn.fablet@crf.canon.fr</dd>
<dt>Date</dt> <dd>2015-09-29 10:49:28 -0700 (Tue, 29 Sep 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Improve binding of JSBuiltinConstructor classes
https://bugs.webkit.org/show_bug.cgi?id=149556

Reviewed by Darin Adler.

JSBuiltinConstructor classes no longer need definition of a DOM class.
These classes no longer go through the JS wrapper cache.
Removed code related to DOM class handling (m_impl, releaseImpl, WrapperOwner, toJS, ...)
Updated creation code.

Refactoring of the binding generator code to simplify whether generating or not some methods.

Removed unneeded include of DOM class in JSXX.cpp (already done in JSXX.h)

Added new binding test to cover JSBuiltinConstructor keyword.

Covered by binding tests.

* bindings/js/JSDOMBinding.h:
(WebCore::createJSBuiltin):
(WebCore::DOMConstructorObject::createStructure):.
* bindings/scripts/CodeGeneratorJS.pm:
(NeedsImplementationClass):
(ShouldGenerateToWrapped):
(ShouldGenerateWrapperOwnerCode):
(ShouldGenerateToJSDeclaration):
(ShouldGenerateToJSImplementation):
(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorDefinition):
(ComputeFunctionSpecial):.
(UseJSBuiltins):.
* bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp: Added.
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestJSBuiltinConstructor):
(webkit_dom_test_js_builtin_constructor_finalize):
(webkit_dom_test_js_builtin_constructor_constructor):
(webkit_dom_test_js_builtin_constructor_class_init):
(webkit_dom_test_js_builtin_constructor_init):
* bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructorPrivate.h: Added.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: Added.
(WebCore::JSTestJSBuiltinConstructorPrototype::create):
(WebCore::JSTestJSBuiltinConstructorPrototype::createStructure):
(WebCore::JSTestJSBuiltinConstructorPrototype::JSTestJSBuiltinConstructorPrototype):
(WebCore::JSTestJSBuiltinConstructorConstructor::create):
(WebCore::JSTestJSBuiltinConstructorConstructor::createStructure):
(WebCore::JSTestJSBuiltinConstructorConstructor::constructJSTestJSBuiltinConstructor):
(WebCore::JSTestJSBuiltinConstructorConstructor::JSTestJSBuiltinConstructorConstructor):
(WebCore::JSTestJSBuiltinConstructorConstructor::finishCreation):
(WebCore::JSTestJSBuiltinConstructorConstructor::getConstructData):
(WebCore::JSTestJSBuiltinConstructorPrototype::finishCreation):
(WebCore::JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor):
(WebCore::JSTestJSBuiltinConstructor::createPrototype):
(WebCore::JSTestJSBuiltinConstructor::getPrototype):
(WebCore::JSTestJSBuiltinConstructor::destroy):
(WebCore::JSTestJSBuiltinConstructor::~JSTestJSBuiltinConstructor):
(WebCore::jsTestJSBuiltinConstructorConstructor):
(WebCore::JSTestJSBuiltinConstructor::getConstructor):
(WebCore::JSTestJSBuiltinConstructor::visitChildren):
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h: Added.
(WebCore::JSTestJSBuiltinConstructor::create):
(WebCore::JSTestJSBuiltinConstructor::createStructure):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
* bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h: Added.
* bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm: Added.
(-[DOMTestJSBuiltinConstructor dealloc]):
(-[DOMTestJSBuiltinConstructor finalize]):
(core):
(kit):
* bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructorInternal.h: Added.
* bindings/scripts/test/TestJSBuiltinConstructor.idl: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingh">trunk/Source/WebCore/bindings/js/JSDOMBinding.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.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="#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="#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>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestJSBuiltinConstructorh">trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestJSBuiltinConstructorPrivateh">trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructorPrivate.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestObjCDOMTestJSBuiltinConstructorh">trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestObjCDOMTestJSBuiltinConstructormm">trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestObjCDOMTestJSBuiltinConstructorInternalh">trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructorInternal.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestTestJSBuiltinConstructoridl">trunk/Source/WebCore/bindings/scripts/test/TestJSBuiltinConstructor.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/ChangeLog        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -1,3 +1,96 @@
</span><ins>+2015-09-29  Youenn Fablet  &lt;youenn.fablet@crf.canon.fr&gt;
+
+        Improve binding of JSBuiltinConstructor classes
+        https://bugs.webkit.org/show_bug.cgi?id=149556
+
+        Reviewed by Darin Adler.
+
+        JSBuiltinConstructor classes no longer need definition of a DOM class.
+        These classes no longer go through the JS wrapper cache.
+        Removed code related to DOM class handling (m_impl, releaseImpl, WrapperOwner, toJS, ...)
+        Updated creation code.
+
+        Refactoring of the binding generator code to simplify whether generating or not some methods.
+
+        Removed unneeded include of DOM class in JSXX.cpp (already done in JSXX.h)
+
+        Added new binding test to cover JSBuiltinConstructor keyword.
+
+        Covered by binding tests.
+
+        * bindings/js/JSDOMBinding.h:
+        (WebCore::createJSBuiltin):
+        (WebCore::DOMConstructorObject::createStructure):.
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (NeedsImplementationClass):
+        (ShouldGenerateToWrapped):
+        (ShouldGenerateWrapperOwnerCode):
+        (ShouldGenerateToJSDeclaration):
+        (ShouldGenerateToJSImplementation):
+        (GenerateHeader):
+        (GenerateImplementation):
+        (GenerateConstructorDefinition):
+        (ComputeFunctionSpecial):.
+        (UseJSBuiltins):.
+        * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp: Added.
+        (WebKit::kit):
+        (WebKit::core):
+        (WebKit::wrapTestJSBuiltinConstructor):
+        (webkit_dom_test_js_builtin_constructor_finalize):
+        (webkit_dom_test_js_builtin_constructor_constructor):
+        (webkit_dom_test_js_builtin_constructor_class_init):
+        (webkit_dom_test_js_builtin_constructor_init):
+        * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h: Added.
+        * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructorPrivate.h: Added.
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+        * bindings/scripts/test/JS/JSTestException.cpp:
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: Added.
+        (WebCore::JSTestJSBuiltinConstructorPrototype::create):
+        (WebCore::JSTestJSBuiltinConstructorPrototype::createStructure):
+        (WebCore::JSTestJSBuiltinConstructorPrototype::JSTestJSBuiltinConstructorPrototype):
+        (WebCore::JSTestJSBuiltinConstructorConstructor::create):
+        (WebCore::JSTestJSBuiltinConstructorConstructor::createStructure):
+        (WebCore::JSTestJSBuiltinConstructorConstructor::constructJSTestJSBuiltinConstructor):
+        (WebCore::JSTestJSBuiltinConstructorConstructor::JSTestJSBuiltinConstructorConstructor):
+        (WebCore::JSTestJSBuiltinConstructorConstructor::finishCreation):
+        (WebCore::JSTestJSBuiltinConstructorConstructor::getConstructData):
+        (WebCore::JSTestJSBuiltinConstructorPrototype::finishCreation):
+        (WebCore::JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor):
+        (WebCore::JSTestJSBuiltinConstructor::createPrototype):
+        (WebCore::JSTestJSBuiltinConstructor::getPrototype):
+        (WebCore::JSTestJSBuiltinConstructor::destroy):
+        (WebCore::JSTestJSBuiltinConstructor::~JSTestJSBuiltinConstructor):
+        (WebCore::jsTestJSBuiltinConstructorConstructor):
+        (WebCore::JSTestJSBuiltinConstructor::getConstructor):
+        (WebCore::JSTestJSBuiltinConstructor::visitChildren):
+        * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h: Added.
+        (WebCore::JSTestJSBuiltinConstructor::create):
+        (WebCore::JSTestJSBuiltinConstructor::createStructure):
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestNode.cpp:
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        * bindings/scripts/test/JS/JSattribute.cpp:
+        * bindings/scripts/test/JS/JSreadonly.cpp:
+        * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h: Added.
+        * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm: Added.
+        (-[DOMTestJSBuiltinConstructor dealloc]):
+        (-[DOMTestJSBuiltinConstructor finalize]):
+        (core):
+        (kit):
+        * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructorInternal.h: Added.
+        * bindings/scripts/test/TestJSBuiltinConstructor.idl: Added.
+
</ins><span class="cx"> 2015-09-29  Xabier Rodriguez Calvar  &lt;calvaris@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Streams API] [Win] Remove reference to dead CountQueuingStrategy.h
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -85,15 +85,6 @@
</span><span class="cx"> WEBCORE_EXPORT JSC::EncodedJSValue throwGetterTypeError(JSC::ExecState&amp;, const char* interfaceName, const char* attributeName);
</span><span class="cx"> WEBCORE_EXPORT JSC::EncodedJSValue throwThisTypeError(JSC::ExecState&amp;, const char* interfaceName, const char* functionName);
</span><span class="cx"> 
</span><del>-void callFunctionWithCurrentArguments(JSC::ExecState&amp;, JSC::JSObject&amp; thisObject, JSC::JSFunction&amp;);
-
-template&lt;typename WrapperClass, typename DOMClass&gt; inline JSC::EncodedJSValue createFromJSBuiltin(JSC::ExecState&amp; state, JSC::JSFunction&amp; initializeFunction, JSDOMGlobalObject&amp; globalObject)
-{
-    JSC::JSObject* object = asObject(toJS(&amp;state, &amp;globalObject, DOMClass::create()));
-    callFunctionWithCurrentArguments(state, *object, initializeFunction);
-    return JSC::JSValue::encode(object);
-}
-
</del><span class="cx"> // Base class for all constructor objects in the JSC bindings.
</span><span class="cx"> class DOMConstructorObject : public JSDOMWrapper {
</span><span class="cx"> public:
</span><span class="lines">@@ -158,6 +149,15 @@
</span><span class="cx">     return JSC::jsCast&lt;JSC::JSObject*&gt;(asObject(getDOMStructure&lt;WrapperClass&gt;(vm, JSC::jsCast&lt;JSDOMGlobalObject*&gt;(globalObject))-&gt;storedPrototype()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void callFunctionWithCurrentArguments(JSC::ExecState&amp;, JSC::JSObject&amp; thisObject, JSC::JSFunction&amp;);
+
+template&lt;typename JSClass&gt; inline JSC::EncodedJSValue createJSBuiltin(JSC::ExecState&amp; state, JSC::JSFunction&amp; initializeFunction, JSDOMGlobalObject&amp; globalObject)
+{
+    JSC::JSObject* object = JSClass::create(getDOMStructure&lt;JSClass&gt;(globalObject.vm(), &amp;globalObject), &amp;globalObject);
+    callFunctionWithCurrentArguments(state, *object, initializeFunction);
+    return JSC::JSValue::encode(object);
+}
+
</ins><span class="cx"> inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&amp; world, JSC::ArrayBuffer*)
</span><span class="cx"> {
</span><span class="cx">     return static_cast&lt;WebCoreTypedArrayController*&gt;(world.vm().m_typedArrayController.get())-&gt;wrapperOwner();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -509,10 +509,46 @@
</span><span class="cx">     return @implContentHeader;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub NeedsImplementationClass
+{
+    my ($interface) = @_;
+
+    return 0 if ($interface-&gt;extendedAttributes-&gt;{&quot;JSBuiltinConstructor&quot;});
+    return 1;
+}
+
+sub ShouldGenerateToWrapped
+{
+    my ($hasParent, $interface) = @_;
+
+    return 0 if not NeedsImplementationClass($interface);
+    if (!$hasParent or $interface-&gt;extendedAttributes-&gt;{&quot;JSGenerateToNativeObject&quot;}) {
+        return 1;
+    }
+    return 0;
+}
+
+sub ShouldGenerateWrapperOwnerCode
+{
+    my ($hasParent, $interface) = @_;
+
+    return 0 if not NeedsImplementationClass($interface);
+    if (!$hasParent ||
+        GetGenerateIsReachable($interface) ||
+        GetCustomIsReachable($interface) ||
+        $interface-&gt;extendedAttributes-&gt;{&quot;JSCustomFinalize&quot;} ||
+        $codeGenerator-&gt;InheritsExtendedAttribute($interface, &quot;ActiveDOMObject&quot;)) {
+        return 1;
+    }
+    return 0;
+}
+
</ins><span class="cx"> sub ShouldGenerateToJSDeclaration
</span><span class="cx"> {
</span><span class="cx">     my ($hasParent, $interface) = @_;
</span><ins>+
</ins><span class="cx">     return 0 if ($interface-&gt;extendedAttributes-&gt;{&quot;SuppressToJSObject&quot;});
</span><ins>+    return 0 if not NeedsImplementationClass($interface);
</ins><span class="cx">     return 0 if $interface-&gt;name eq &quot;AbstractView&quot;;
</span><span class="cx">     return 1 if (!$hasParent or $interface-&gt;extendedAttributes-&gt;{&quot;JSGenerateToJSObject&quot;} or $interface-&gt;extendedAttributes-&gt;{&quot;CustomToJSObject&quot;});
</span><span class="cx">     return 0;
</span><span class="lines">@@ -521,9 +557,9 @@
</span><span class="cx"> sub ShouldGenerateToJSImplementation
</span><span class="cx"> {
</span><span class="cx">     my ($hasParent, $interface) = @_;
</span><del>-    return 0 if ($interface-&gt;extendedAttributes-&gt;{&quot;SuppressToJSObject&quot;});
-    return 0 if $interface-&gt;name eq &quot;AbstractView&quot;;
-    return 1 if ((!$hasParent or $interface-&gt;extendedAttributes-&gt;{&quot;JSGenerateToJSObject&quot;}) and !$interface-&gt;extendedAttributes-&gt;{&quot;CustomToJSObject&quot;});
</del><ins>+
+    return 0 if not ShouldGenerateToJSDeclaration($hasParent, $interface);
+    return 1 if not $interface-&gt;extendedAttributes-&gt;{&quot;CustomToJSObject&quot;};
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -872,8 +908,6 @@
</span><span class="cx"> 
</span><span class="cx">     my $exportLabel = ExportLabelForClass($className);
</span><span class="cx"> 
</span><del>-    GenerateDummyDOMClassForJSBuiltin($implType) if UseDummyDOMClass($interface);
-
</del><span class="cx">     # Class declaration
</span><span class="cx">     push(@headerContent, &quot;class $exportLabel$className : public $parentClassName {\n&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -905,8 +939,15 @@
</span><span class="cx">         push(@headerContent, &quot;        ptr-&gt;finishCreation(globalObject-&gt;vm());\n&quot;);
</span><span class="cx">         push(@headerContent, &quot;        return ptr;\n&quot;);
</span><span class="cx">         push(@headerContent, &quot;    }\n\n&quot;);
</span><ins>+    } elsif (!NeedsImplementationClass($interface)) {
+        push(@headerContent, &quot;    static $className* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject)\n&quot;);
+        push(@headerContent, &quot;    {\n&quot;);
+        push(@headerContent, &quot;        $className* ptr = new (NotNull, JSC::allocateCell&lt;$className&gt;(globalObject-&gt;vm().heap)) $className(structure, globalObject);\n&quot;);
+        push(@headerContent, &quot;        ptr-&gt;finishCreation(globalObject-&gt;vm());\n&quot;);
+        push(@headerContent, &quot;        return ptr;\n&quot;);
+        push(@headerContent, &quot;    }\n\n&quot;);  
</ins><span class="cx">     } else {
</span><del>-        AddIncludesForTypeInHeader($implType) unless $svgPropertyOrListPropertyType || UseDummyDOMClass($interface);
</del><ins>+        AddIncludesForTypeInHeader($implType) unless $svgPropertyOrListPropertyType;
</ins><span class="cx">         push(@headerContent, &quot;    static $className* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, Ref&lt;$implType&gt;&amp;&amp; impl)\n&quot;);
</span><span class="cx">         push(@headerContent, &quot;    {\n&quot;);
</span><span class="cx">         push(@headerContent, &quot;        $className* ptr = new (NotNull, JSC::allocateCell&lt;$className&gt;(globalObject-&gt;vm().heap)) $className(structure, globalObject, WTF::move(impl));\n&quot;);
</span><span class="lines">@@ -926,7 +967,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     # JSValue to implementation type
</span><del>-    if (!$hasParent || $interface-&gt;extendedAttributes-&gt;{&quot;JSGenerateToNativeObject&quot;}) {
</del><ins>+    if (ShouldGenerateToWrapped($hasParent, $interface)) {
</ins><span class="cx">         if ($interfaceName eq &quot;NodeFilter&quot;) {
</span><span class="cx">             push(@headerContent, &quot;    static RefPtr&lt;NodeFilter&gt; toWrapped(JSC::VM&amp;, JSC::JSValue);\n&quot;);
</span><span class="cx">         } elsif ($interfaceName eq &quot;DOMStringList&quot;) {
</span><span class="lines">@@ -1146,16 +1187,18 @@
</span><span class="cx">         push(@headerContent, $endAppleCopyright) if $inAppleCopyright;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!$hasParent) {
-        push(@headerContent, &quot;    $implType&amp; impl() const { return *m_impl; }\n&quot;);
-        push(@headerContent, &quot;    void releaseImpl() { std::exchange(m_impl, nullptr)-&gt;deref(); }\n\n&quot;);
-        push(@headerContent, &quot;private:\n&quot;);
-        push(@headerContent, &quot;    $implType* m_impl;\n&quot;);
-    } else {
-        push(@headerContent, &quot;    $interfaceName&amp; impl() const\n&quot;);
-        push(@headerContent, &quot;    {\n&quot;);
-        push(@headerContent, &quot;        return static_cast&lt;$interfaceName&amp;&gt;(Base::impl());\n&quot;);
-        push(@headerContent, &quot;    }\n&quot;);
</del><ins>+    if (NeedsImplementationClass($interface)) {
+        if (!$hasParent) {
+            push(@headerContent, &quot;    $implType&amp; impl() const { return *m_impl; }\n&quot;);
+            push(@headerContent, &quot;    void releaseImpl() { std::exchange(m_impl, nullptr)-&gt;deref(); }\n\n&quot;);
+            push(@headerContent, &quot;private:\n&quot;);
+            push(@headerContent, &quot;    $implType* m_impl;\n&quot;);
+        } else {
+            push(@headerContent, &quot;    $interfaceName&amp; impl() const\n&quot;);
+            push(@headerContent, &quot;    {\n&quot;);
+            push(@headerContent, &quot;        return static_cast&lt;$interfaceName&amp;&gt;(Base::impl());\n&quot;);
+            push(@headerContent, &quot;    }\n&quot;);
+        }
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     # structure flags
</span><span class="lines">@@ -1175,7 +1218,9 @@
</span><span class="cx">         push(@headerContent, &quot;    $className(JSC::VM&amp;, JSC::Structure*, Ref&lt;$implType&gt;&amp;&amp;, JSDOMWindowShell*);\n&quot;);
</span><span class="cx">     } elsif ($codeGenerator-&gt;InheritsInterface($interface, &quot;WorkerGlobalScope&quot;)) {
</span><span class="cx">         push(@headerContent, &quot;    $className(JSC::VM&amp;, JSC::Structure*, Ref&lt;$implType&gt;&amp;&amp;);\n&quot;);
</span><del>-    } else {
</del><ins>+    } elsif (!NeedsImplementationClass($interface)) {
+        push(@headerContent, &quot;    $className(JSC::Structure*, JSDOMGlobalObject*);\n\n&quot;);
+     } else {
</ins><span class="cx">         push(@headerContent, &quot;    $className(JSC::Structure*, JSDOMGlobalObject*, Ref&lt;$implType&gt;&amp;&amp;);\n\n&quot;);
</span><span class="cx">         push(@headerContent, &quot;    void finishCreation(JSC::VM&amp; vm)\n&quot;);
</span><span class="cx">         push(@headerContent, &quot;    {\n&quot;);
</span><span class="lines">@@ -1196,11 +1241,7 @@
</span><span class="cx"> 
</span><span class="cx">     push(@headerContent, &quot;};\n\n&quot;);
</span><span class="cx"> 
</span><del>-    if (!$hasParent ||
-        GetGenerateIsReachable($interface) ||
-        GetCustomIsReachable($interface) ||
-        $interface-&gt;extendedAttributes-&gt;{&quot;JSCustomFinalize&quot;} ||
-        $codeGenerator-&gt;InheritsExtendedAttribute($interface, &quot;ActiveDOMObject&quot;)) {
</del><ins>+    if (ShouldGenerateWrapperOwnerCode($hasParent, $interface)) {
</ins><span class="cx">         if ($interfaceName ne &quot;Node&quot; &amp;&amp; $codeGenerator-&gt;InheritsInterface($interface, &quot;Node&quot;)) {
</span><span class="cx">             $headerIncludes{&quot;JSNode.h&quot;} = 1;
</span><span class="cx">             push(@headerContent, &quot;class JS${interfaceName}Owner : public JSNodeOwner {\n&quot;);
</span><span class="lines">@@ -1755,7 +1796,6 @@
</span><span class="cx">     $implIncludes{&quot;&lt;runtime/PropertyNameArray.h&gt;&quot;} = 1 if $indexedGetterFunction;
</span><span class="cx"> 
</span><span class="cx">     my $implType = GetImplClassName($interfaceName);
</span><del>-    AddIncludesForTypeInImpl($implType) if not UseDummyDOMClass($interface);
</del><span class="cx"> 
</span><span class="cx">     AddIncludesForJSBuiltinMethods($interface);
</span><span class="cx"> 
</span><span class="lines">@@ -2118,7 +2158,10 @@
</span><span class="cx">         push(@implContent, &quot;    : $parentClassName(vm, structure, WTF::move(impl))\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><span class="cx">         push(@implContent, &quot;}\n\n&quot;);
</span><del>-    } else {
</del><ins>+    } elsif (!NeedsImplementationClass($interface)) {
+        push(@implContent, &quot;${className}::$className(Structure* structure, JSDOMGlobalObject* globalObject)\n&quot;);
+        push(@implContent, &quot;    : $parentClassName(structure, globalObject) { }\n\n&quot;);
+     }else {
</ins><span class="cx">         push(@implContent, &quot;${className}::$className(Structure* structure, JSDOMGlobalObject* globalObject, Ref&lt;$implType&gt;&amp;&amp; impl)\n&quot;);
</span><span class="cx">         if ($hasParent) {
</span><span class="cx">             push(@implContent, &quot;    : $parentClassName(structure, globalObject, WTF::move(impl))\n&quot;);
</span><span class="lines">@@ -2156,7 +2199,9 @@
</span><span class="cx"> 
</span><span class="cx">         push(@implContent, &quot;${className}::~${className}()\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><del>-        push(@implContent, &quot;    releaseImpl();\n&quot;);
</del><ins>+        if (NeedsImplementationClass($interface)) {
+            push(@implContent, &quot;    releaseImpl();\n&quot;);
+        }
</ins><span class="cx">         push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -2989,8 +3034,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if ((!$hasParent &amp;&amp; !GetCustomIsReachable($interface)) || GetGenerateIsReachable($interface) || $codeGenerator-&gt;InheritsExtendedAttribute($interface, &quot;ActiveDOMObject&quot;)) {
-
</del><ins>+    if (ShouldGenerateWrapperOwnerCode($hasParent, $interface) &amp;&amp; !GetCustomIsReachable($interface)) {
</ins><span class="cx">         push(@implContent, &quot;bool JS${interfaceName}Owner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt; handle, void*, SlotVisitor&amp; visitor)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><span class="cx">         # All ActiveDOMObjects implement hasPendingActivity(), but not all of them
</span><span class="lines">@@ -3073,11 +3117,7 @@
</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;JSCustomFinalize&quot;} &amp;&amp;
-        (!$hasParent ||
-         GetGenerateIsReachable($interface) ||
-         GetCustomIsReachable($interface) ||
-         $codeGenerator-&gt;InheritsExtendedAttribute($interface, &quot;ActiveDOMObject&quot;))) {
</del><ins>+    if (ShouldGenerateWrapperOwnerCode($hasParent, $interface) &amp;&amp; !$interface-&gt;extendedAttributes-&gt;{&quot;JSCustomFinalize&quot;}) {
</ins><span class="cx">         push(@implContent, &quot;void JS${interfaceName}Owner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    auto* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</span><span class="lines">@@ -3173,7 +3213,7 @@
</span><span class="cx">         push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if ((!$hasParent or $interface-&gt;extendedAttributes-&gt;{&quot;JSGenerateToNativeObject&quot;}) and !$interface-&gt;extendedAttributes-&gt;{&quot;JSCustomToNativeObject&quot;}) {
</del><ins>+    if (ShouldGenerateToWrapped($hasParent, $interface) and !$interface-&gt;extendedAttributes-&gt;{&quot;JSCustomToNativeObject&quot;}) {
</ins><span class="cx">         push(@implContent, &quot;$implType* ${className}::toWrapped(JSC::JSValue value)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    if (auto* wrapper = &quot; . GetCastingHelperForThisObject($interface) . &quot;(value))\n&quot;);
</span><span class="lines">@@ -4814,7 +4854,7 @@
</span><span class="cx">             push(@$outputArray, &quot;{\n&quot;);
</span><span class="cx"> 
</span><span class="cx">             push(@$outputArray, &quot;    auto* castedThis = jsCast&lt;${constructorClassName}*&gt;(state-&gt;callee());\n&quot;);
</span><del>-            push(@$outputArray, &quot;    return createFromJSBuiltin&lt;${className}, ${interfaceName}&gt;(*state, *castedThis-&gt;initializeFunction(), *castedThis-&gt;globalObject());\n&quot;);
</del><ins>+            push(@$outputArray, &quot;    return createJSBuiltin&lt;${className}&gt;(*state, *castedThis-&gt;initializeFunction(), *castedThis-&gt;globalObject());\n&quot;);
</ins><span class="cx"> 
</span><span class="cx">             push(@$outputArray, &quot;}\n\n&quot;);
</span><span class="cx">         } elsif (!HasCustomConstructor($interface) &amp;&amp; (!$interface-&gt;extendedAttributes-&gt;{&quot;NamedConstructor&quot;} || $generatingNamedConstructor)) {
</span><span class="lines">@@ -5105,22 +5145,4 @@
</span><span class="cx"> 
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-sub UseDummyDOMClass()
-{
-    my $interface = shift;
-
-    return $interface-&gt;extendedAttributes-&gt;{&quot;JSBuiltinConstructor&quot;};
-}
-
-sub GenerateDummyDOMClassForJSBuiltin()
-{
-    my $className = shift;
-
-    push(@headerContent, &quot;class $className : public RefCounted&lt;$className&gt; {\n&quot;);
-    push(@headerContent, &quot;public:\n&quot;);
-    push(@headerContent, &quot;    static Ref&lt;$className&gt; create() { return adoptRef(* new $className); }\n&quot;);
-    push(@headerContent, &quot;    virtual ~$className() { }\n&quot;);
-    push(@headerContent, &quot;};\n\n&quot;);
-}
-
</del><span class="cx"> 1;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestJSBuiltinConstructorcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,104 @@
</span><ins>+/*
+ *  This file is part of the WebKit open source project.
+ *  This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebKitDOMTestJSBuiltinConstructor.h&quot;
+
+#include &quot;CSSImportRule.h&quot;
+#include &quot;DOMObjectCache.h&quot;
+#include &quot;Document.h&quot;
+#include &quot;ExceptionCode.h&quot;
+#include &quot;ExceptionCodeDescription.h&quot;
+#include &quot;JSMainThreadExecState.h&quot;
+#include &quot;WebKitDOMPrivate.h&quot;
+#include &quot;WebKitDOMTestJSBuiltinConstructorPrivate.h&quot;
+#include &quot;gobject/ConvertToUTF8String.h&quot;
+#include &lt;wtf/GetPtr.h&gt;
+#include &lt;wtf/RefPtr.h&gt;
+
+#define WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_TEST_JS_BUILTIN_CONSTRUCTOR, WebKitDOMTestJSBuiltinConstructorPrivate)
+
+typedef struct _WebKitDOMTestJSBuiltinConstructorPrivate {
+    RefPtr&lt;WebCore::TestJSBuiltinConstructor&gt; coreObject;
+} WebKitDOMTestJSBuiltinConstructorPrivate;
+
+namespace WebKit {
+
+WebKitDOMTestJSBuiltinConstructor* kit(WebCore::TestJSBuiltinConstructor* obj)
+{
+    if (!obj)
+        return 0;
+
+    if (gpointer ret = DOMObjectCache::get(obj))
+        return WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR(ret);
+
+    return wrapTestJSBuiltinConstructor(obj);
+}
+
+WebCore::TestJSBuiltinConstructor* core(WebKitDOMTestJSBuiltinConstructor* request)
+{
+    return request ? static_cast&lt;WebCore::TestJSBuiltinConstructor*&gt;(WEBKIT_DOM_OBJECT(request)-&gt;coreObject) : 0;
+}
+
+WebKitDOMTestJSBuiltinConstructor* wrapTestJSBuiltinConstructor(WebCore::TestJSBuiltinConstructor* coreObject)
+{
+    ASSERT(coreObject);
+    return WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR(g_object_new(WEBKIT_DOM_TYPE_TEST_JS_BUILTIN_CONSTRUCTOR, &quot;core-object&quot;, coreObject, nullptr));
+}
+
+} // namespace WebKit
+
+G_DEFINE_TYPE(WebKitDOMTestJSBuiltinConstructor, webkit_dom_test_js_builtin_constructor, WEBKIT_DOM_TYPE_OBJECT)
+
+static void webkit_dom_test_js_builtin_constructor_finalize(GObject* object)
+{
+    WebKitDOMTestJSBuiltinConstructorPrivate* priv = WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR_GET_PRIVATE(object);
+
+    WebKit::DOMObjectCache::forget(priv-&gt;coreObject.get());
+
+    priv-&gt;~WebKitDOMTestJSBuiltinConstructorPrivate();
+    G_OBJECT_CLASS(webkit_dom_test_js_builtin_constructor_parent_class)-&gt;finalize(object);
+}
+
+static GObject* webkit_dom_test_js_builtin_constructor_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
+{
+    GObject* object = G_OBJECT_CLASS(webkit_dom_test_js_builtin_constructor_parent_class)-&gt;constructor(type, constructPropertiesCount, constructProperties);
+
+    WebKitDOMTestJSBuiltinConstructorPrivate* priv = WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR_GET_PRIVATE(object);
+    priv-&gt;coreObject = static_cast&lt;WebCore::TestJSBuiltinConstructor*&gt;(WEBKIT_DOM_OBJECT(object)-&gt;coreObject);
+    WebKit::DOMObjectCache::put(priv-&gt;coreObject.get(), object);
+
+    return object;
+}
+
+static void webkit_dom_test_js_builtin_constructor_class_init(WebKitDOMTestJSBuiltinConstructorClass* requestClass)
+{
+    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
+    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestJSBuiltinConstructorPrivate));
+    gobjectClass-&gt;constructor = webkit_dom_test_js_builtin_constructor_constructor;
+    gobjectClass-&gt;finalize = webkit_dom_test_js_builtin_constructor_finalize;
+}
+
+static void webkit_dom_test_js_builtin_constructor_init(WebKitDOMTestJSBuiltinConstructor* request)
+{
+    WebKitDOMTestJSBuiltinConstructorPrivate* priv = WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR_GET_PRIVATE(request);
+    new (priv) WebKitDOMTestJSBuiltinConstructorPrivate();
+}
+
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestJSBuiltinConstructorh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,53 @@
</span><ins>+/*
+ *  This file is part of the WebKit open source project.
+ *  This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ */
+
+#ifndef WebKitDOMTestJSBuiltinConstructor_h
+#define WebKitDOMTestJSBuiltinConstructor_h
+
+#ifdef WEBKIT_DOM_USE_UNSTABLE_API
+
+#include &lt;glib-object.h&gt;
+#include &lt;webkitdom/WebKitDOMObject.h&gt;
+#include &lt;webkitdom/webkitdomdefines-unstable.h&gt;
+
+G_BEGIN_DECLS
+
+#define WEBKIT_DOM_TYPE_TEST_JS_BUILTIN_CONSTRUCTOR            (webkit_dom_test_js_builtin_constructor_get_type())
+#define WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_TEST_JS_BUILTIN_CONSTRUCTOR, WebKitDOMTestJSBuiltinConstructor))
+#define WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),  WEBKIT_DOM_TYPE_TEST_JS_BUILTIN_CONSTRUCTOR, WebKitDOMTestJSBuiltinConstructorClass)
+#define WEBKIT_DOM_IS_TEST_JS_BUILTIN_CONSTRUCTOR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_TEST_JS_BUILTIN_CONSTRUCTOR))
+#define WEBKIT_DOM_IS_TEST_JS_BUILTIN_CONSTRUCTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),  WEBKIT_DOM_TYPE_TEST_JS_BUILTIN_CONSTRUCTOR))
+#define WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_DOM_TYPE_TEST_JS_BUILTIN_CONSTRUCTOR, WebKitDOMTestJSBuiltinConstructorClass))
+
+struct _WebKitDOMTestJSBuiltinConstructor {
+    WebKitDOMObject parent_instance;
+};
+
+struct _WebKitDOMTestJSBuiltinConstructorClass {
+    WebKitDOMObjectClass parent_class;
+};
+
+WEBKIT_API GType
+webkit_dom_test_js_builtin_constructor_get_type(void);
+
+G_END_DECLS
+
+#endif /* WEBKIT_DOM_USE_UNSTABLE_API */
+#endif /* WebKitDOMTestJSBuiltinConstructor_h */
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestJSBuiltinConstructorPrivateh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructorPrivate.h (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructorPrivate.h                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructorPrivate.h        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+/*
+ *  This file is part of the WebKit open source project.
+ *  This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ */
+
+#ifndef WebKitDOMTestJSBuiltinConstructorPrivate_h
+#define WebKitDOMTestJSBuiltinConstructorPrivate_h
+
+#include &quot;TestJSBuiltinConstructor.h&quot;
+#include &lt;webkitdom/WebKitDOMTestJSBuiltinConstructor.h&gt;
+
+namespace WebKit {
+WebKitDOMTestJSBuiltinConstructor* wrapTestJSBuiltinConstructor(WebCore::TestJSBuiltinConstructor*);
+WebKitDOMTestJSBuiltinConstructor* kit(WebCore::TestJSBuiltinConstructor*);
+WebCore::TestJSBuiltinConstructor* core(WebKitDOMTestJSBuiltinConstructor*);
+} // namespace WebKit
+
+#endif /* WebKitDOMTestJSBuiltinConstructorPrivate_h */
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><span class="cx"> #include &quot;JSNode.h&quot;
</span><del>-#include &quot;TestActiveDOMObject.h&quot;
</del><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -22,7 +22,6 @@
</span><span class="cx"> #include &quot;JSTestCustomConstructorWithNoInterfaceObject.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestCustomConstructorWithNoInterfaceObject.h&quot;
</del><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestCustomNamedGetter.h&quot;
</del><span class="cx"> #include &quot;wtf/text/AtomicString.h&quot;
</span><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><span class="cx"> #include &quot;JSDictionary.h&quot;
</span><del>-#include &quot;TestEventConstructor.h&quot;
</del><span class="cx"> #include &quot;URL.h&quot;
</span><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;runtime/JSString.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> #include &quot;JSEventListener.h&quot;
</span><span class="cx"> #include &quot;JSNode.h&quot;
</span><span class="cx"> #include &quot;Node.h&quot;
</span><del>-#include &quot;TestEventTarget.h&quot;
</del><span class="cx"> #include &quot;wtf/text/AtomicString.h&quot;
</span><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;runtime/PropertyNameArray.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -22,7 +22,6 @@
</span><span class="cx"> #include &quot;JSTestException.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestException.h&quot;
</del><span class="cx"> #include &quot;URL.h&quot;
</span><span class="cx"> #include &lt;runtime/JSString.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -22,7 +22,6 @@
</span><span class="cx"> #include &quot;JSTestGenerateIsReachable.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestGenerateIsReachable.h&quot;
</del><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestInterface.h&quot;
</del><span class="cx"> #include &quot;TestObj.h&quot;
</span><span class="cx"> #include &quot;TestSupplemental.h&quot;
</span><span class="cx"> #include &lt;runtime/Error.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,174 @@
</span><ins>+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#include &quot;config.h&quot;
+#include &quot;JSTestJSBuiltinConstructor.h&quot;
+
+#include &quot;JSDOMBinding.h&quot;
+#include &lt;wtf/GetPtr.h&gt;
+
+using namespace JSC;
+
+namespace WebCore {
+
+// Attributes
+
+JSC::EncodedJSValue jsTestJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
+
+class JSTestJSBuiltinConstructorPrototype : public JSC::JSNonFinalObject {
+public:
+    typedef JSC::JSNonFinalObject Base;
+    static JSTestJSBuiltinConstructorPrototype* create(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
+    {
+        JSTestJSBuiltinConstructorPrototype* ptr = new (NotNull, JSC::allocateCell&lt;JSTestJSBuiltinConstructorPrototype&gt;(vm.heap)) JSTestJSBuiltinConstructorPrototype(vm, globalObject, structure);
+        ptr-&gt;finishCreation(vm);
+        return ptr;
+    }
+
+    DECLARE_INFO;
+    static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
+    }
+
+private:
+    JSTestJSBuiltinConstructorPrototype(JSC::VM&amp; vm, JSC::JSGlobalObject*, JSC::Structure* structure)
+        : JSC::JSNonFinalObject(vm, structure)
+    {
+    }
+
+    void finishCreation(JSC::VM&amp;);
+};
+
+class JSTestJSBuiltinConstructorConstructor : public DOMConstructorJSBuiltinObject {
+private:
+    JSTestJSBuiltinConstructorConstructor(JSC::Structure*, JSDOMGlobalObject*);
+    void finishCreation(JSC::VM&amp;, JSDOMGlobalObject*);
+
+public:
+    typedef DOMConstructorJSBuiltinObject Base;
+    static JSTestJSBuiltinConstructorConstructor* create(JSC::VM&amp; vm, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
+    {
+        JSTestJSBuiltinConstructorConstructor* ptr = new (NotNull, JSC::allocateCell&lt;JSTestJSBuiltinConstructorConstructor&gt;(vm.heap)) JSTestJSBuiltinConstructorConstructor(structure, globalObject);
+        ptr-&gt;finishCreation(vm, globalObject);
+        return ptr;
+    }
+
+    DECLARE_INFO;
+    static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
+    }
+protected:
+    static JSC::EncodedJSValue JSC_HOST_CALL constructJSTestJSBuiltinConstructor(JSC::ExecState*);
+    static JSC::ConstructType getConstructData(JSC::JSCell*, JSC::ConstructData&amp;);
+};
+
+JSC::EncodedJSValue JSC_HOST_CALL JSTestJSBuiltinConstructorConstructor::constructJSTestJSBuiltinConstructor(JSC::ExecState* state)
+{
+    auto* castedThis = jsCast&lt;JSTestJSBuiltinConstructorConstructor*&gt;(state-&gt;callee());
+    return createJSBuiltin&lt;JSTestJSBuiltinConstructor&gt;(*state, *castedThis-&gt;initializeFunction(), *castedThis-&gt;globalObject());
+}
+
+const ClassInfo JSTestJSBuiltinConstructorConstructor::s_info = { &quot;TestJSBuiltinConstructorConstructor&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestJSBuiltinConstructorConstructor) };
+
+JSTestJSBuiltinConstructorConstructor::JSTestJSBuiltinConstructorConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
+    : Base(structure, globalObject)
+{
+}
+
+void JSTestJSBuiltinConstructorConstructor::finishCreation(VM&amp; vm, JSDOMGlobalObject* globalObject)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+    putDirect(vm, vm.propertyNames-&gt;prototype, JSTestJSBuiltinConstructor::getPrototype(vm, globalObject), DontDelete | ReadOnly | DontEnum);
+    putDirect(vm, vm.propertyNames-&gt;name, jsNontrivialString(&amp;vm, String(ASCIILiteral(&quot;TestJSBuiltinConstructor&quot;))), ReadOnly | DontEnum);
+    putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontEnum);
+    setInitializeFunction(vm, *JSC::JSFunction::createBuiltinFunction(vm, testJSBuiltinConstructorInitializeTestJSBuiltinConstructorCodeGenerator(vm), globalObject));
+}
+
+ConstructType JSTestJSBuiltinConstructorConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
+{
+    constructData.native.function = constructJSTestJSBuiltinConstructor;
+    return ConstructTypeHost;
+}
+
+/* Hash table for prototype */
+
+static const HashTableValue JSTestJSBuiltinConstructorPrototypeTableValues[] =
+{
+    { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestJSBuiltinConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) } },
+};
+
+const ClassInfo JSTestJSBuiltinConstructorPrototype::s_info = { &quot;TestJSBuiltinConstructorPrototype&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestJSBuiltinConstructorPrototype) };
+
+void JSTestJSBuiltinConstructorPrototype::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+    reifyStaticProperties(vm, JSTestJSBuiltinConstructorPrototypeTableValues, *this);
+}
+
+const ClassInfo JSTestJSBuiltinConstructor::s_info = { &quot;TestJSBuiltinConstructor&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSTestJSBuiltinConstructor) };
+
+JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
+    : JSDOMWrapper(structure, globalObject) { }
+
+JSObject* JSTestJSBuiltinConstructor::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
+{
+    return JSTestJSBuiltinConstructorPrototype::create(vm, globalObject, JSTestJSBuiltinConstructorPrototype::createStructure(vm, globalObject, globalObject-&gt;objectPrototype()));
+}
+
+JSObject* JSTestJSBuiltinConstructor::getPrototype(VM&amp; vm, JSGlobalObject* globalObject)
+{
+    return getDOMPrototype&lt;JSTestJSBuiltinConstructor&gt;(vm, globalObject);
+}
+
+void JSTestJSBuiltinConstructor::destroy(JSC::JSCell* cell)
+{
+    JSTestJSBuiltinConstructor* thisObject = static_cast&lt;JSTestJSBuiltinConstructor*&gt;(cell);
+    thisObject-&gt;JSTestJSBuiltinConstructor::~JSTestJSBuiltinConstructor();
+}
+
+JSTestJSBuiltinConstructor::~JSTestJSBuiltinConstructor()
+{
+}
+
+EncodedJSValue jsTestJSBuiltinConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
+{
+    JSTestJSBuiltinConstructorPrototype* domObject = jsDynamicCast&lt;JSTestJSBuiltinConstructorPrototype*&gt;(baseValue);
+    if (!domObject)
+        return throwVMTypeError(state);
+    return JSValue::encode(JSTestJSBuiltinConstructor::getConstructor(state-&gt;vm(), domObject-&gt;globalObject()));
+}
+
+JSValue JSTestJSBuiltinConstructor::getConstructor(VM&amp; vm, JSGlobalObject* globalObject)
+{
+    return getDOMConstructor&lt;JSTestJSBuiltinConstructorConstructor&gt;(vm, jsCast&lt;JSDOMGlobalObject*&gt;(globalObject));
+}
+
+void JSTestJSBuiltinConstructor::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
+{
+    auto* thisObject = jsCast&lt;JSTestJSBuiltinConstructor*&gt;(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+    Base::visitChildren(thisObject, visitor);
+}
+
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#ifndef JSTestJSBuiltinConstructor_h
+#define JSTestJSBuiltinConstructor_h
+
+#include &quot;JSDOMWrapper.h&quot;
+
+namespace WebCore {
+
+class JSTestJSBuiltinConstructor : public JSDOMWrapper {
+public:
+    typedef JSDOMWrapper Base;
+    static JSTestJSBuiltinConstructor* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject)
+    {
+        JSTestJSBuiltinConstructor* ptr = new (NotNull, JSC::allocateCell&lt;JSTestJSBuiltinConstructor&gt;(globalObject-&gt;vm().heap)) JSTestJSBuiltinConstructor(structure, globalObject);
+        ptr-&gt;finishCreation(globalObject-&gt;vm());
+        return ptr;
+    }
+
+    static JSC::JSObject* createPrototype(JSC::VM&amp;, JSC::JSGlobalObject*);
+    static JSC::JSObject* getPrototype(JSC::VM&amp;, JSC::JSGlobalObject*);
+    static void destroy(JSC::JSCell*);
+    ~JSTestJSBuiltinConstructor();
+
+    DECLARE_INFO;
+
+    static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
+    }
+
+    static JSC::JSValue getConstructor(JSC::VM&amp;, JSC::JSGlobalObject*);
+    static void visitChildren(JSCell*, JSC::SlotVisitor&amp;);
+
+protected:
+    JSTestJSBuiltinConstructor(JSC::Structure*, JSDOMGlobalObject*);
+
+};
+
+
+
+} // namespace WebCore
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><span class="cx"> #include &quot;JSMediaQueryListListener.h&quot;
</span><del>-#include &quot;TestMediaQueryListListener.h&quot;
</del><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx"> #include &quot;DOMConstructorWithDocument.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestNamedConstructor.h&quot;
</del><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestNode.h&quot;
</del><span class="cx"> #include &quot;URL.h&quot;
</span><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;runtime/JSString.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestNondeterministic.h&quot;
</del><span class="cx"> #include &quot;URL.h&quot;
</span><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;runtime/JSString.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSBlob.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;TestOverloadedConstructors.h&quot;
</del><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -25,7 +25,6 @@
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><span class="cx"> #include &quot;JSNode.h&quot;
</span><span class="cx"> #include &quot;Node.h&quot;
</span><del>-#include &quot;TestOverrideBuiltins.h&quot;
</del><span class="cx"> #include &quot;wtf/text/AtomicString.h&quot;
</span><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> #include &quot;JSMessagePort.h&quot;
</span><span class="cx"> #include &quot;MessagePort.h&quot;
</span><span class="cx"> #include &quot;SerializedScriptValue.h&quot;
</span><del>-#include &quot;TestSerializedScriptValueInterface.h&quot;
</del><span class="cx"> #include &lt;runtime/JSArray.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;JSTestSubObj.h&quot;
</span><span class="cx"> #include &quot;SVGPoint.h&quot;
</span><span class="cx"> #include &quot;SerializedScriptValue.h&quot;
</span><del>-#include &quot;TestTypedefs.h&quot;
</del><span class="cx"> #include &quot;URL.h&quot;
</span><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> #include &lt;runtime/JSArray.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><span class="cx"> #include &quot;URL.h&quot;
</span><del>-#include &quot;attribute.h&quot;
</del><span class="cx"> #include &lt;runtime/JSString.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp (190313 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2015-09-29 17:41:33 UTC (rev 190313)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -22,7 +22,6 @@
</span><span class="cx"> #include &quot;JSreadonly.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;readonly.h&quot;
</del><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestObjCDOMTestJSBuiltinConstructorh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,31 @@
</span><ins>+/*
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig &lt;sam.weinig@gmail.com&gt;
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#import &lt;WebCore/DOMObject.h&gt;
+
+WEBKIT_CLASS_AVAILABLE_MAC(9876_5)
+WEBCORE_EXPORT @interface DOMTestJSBuiltinConstructor : DOMObject
+@end
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestObjCDOMTestJSBuiltinConstructormm"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+/*
+ * This file is part of the WebKit open source project.
+ * This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#import &quot;config.h&quot;
+#import &quot;DOMInternal.h&quot;
+
+#import &quot;DOMTestJSBuiltinConstructor.h&quot;
+
+#import &quot;DOMNodeInternal.h&quot;
+#import &quot;DOMTestJSBuiltinConstructorInternal.h&quot;
+#import &quot;ExceptionHandlers.h&quot;
+#import &quot;JSMainThreadExecState.h&quot;
+#import &quot;TestJSBuiltinConstructor.h&quot;
+#import &quot;ThreadCheck.h&quot;
+#import &quot;WebCoreObjCExtras.h&quot;
+#import &quot;WebScriptObjectPrivate.h&quot;
+#import &lt;wtf/GetPtr.h&gt;
+
+#define IMPL reinterpret_cast&lt;WebCore::TestJSBuiltinConstructor*&gt;(_internal)
+
+@implementation DOMTestJSBuiltinConstructor
+
+- (void)dealloc
+{
+    if (WebCoreObjCScheduleDeallocateOnMainThread([DOMTestJSBuiltinConstructor class], self))
+        return;
+
+    if (_internal)
+        IMPL-&gt;deref();
+    [super dealloc];
+}
+
+- (void)finalize
+{
+    if (_internal)
+        IMPL-&gt;deref();
+    [super finalize];
+}
+
+@end
+
+WebCore::TestJSBuiltinConstructor* core(DOMTestJSBuiltinConstructor *wrapper)
+{
+    return wrapper ? reinterpret_cast&lt;WebCore::TestJSBuiltinConstructor*&gt;(wrapper-&gt;_internal) : 0;
+}
+
+DOMTestJSBuiltinConstructor *kit(WebCore::TestJSBuiltinConstructor* value)
+{
+    WebCoreThreadViolationCheckRoundOne();
+    if (!value)
+        return nil;
+    if (DOMTestJSBuiltinConstructor *wrapper = getDOMWrapper(value))
+        return [[wrapper retain] autorelease];
+    DOMTestJSBuiltinConstructor *wrapper = [[DOMTestJSBuiltinConstructor alloc] _init];
+    wrapper-&gt;_internal = reinterpret_cast&lt;DOMObjectInternal*&gt;(value);
+    value-&gt;ref();
+    addDOMWrapper(wrapper, value);
+    return [wrapper autorelease];
+}
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestObjCDOMTestJSBuiltinConstructorInternalh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructorInternal.h (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructorInternal.h                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructorInternal.h        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+/*
+ * This file is part of the WebKit open source project.
+ * This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#import &lt;WebCore/DOMTestJSBuiltinConstructor.h&gt;
+
+namespace WebCore {
+class TestJSBuiltinConstructor;
+}
+
+WEBCORE_EXPORT WebCore::TestJSBuiltinConstructor* core(DOMTestJSBuiltinConstructor *);
+WEBCORE_EXPORT DOMTestJSBuiltinConstructor *kit(WebCore::TestJSBuiltinConstructor*);
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestTestJSBuiltinConstructoridl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/scripts/test/TestJSBuiltinConstructor.idl (0 => 190314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/TestJSBuiltinConstructor.idl                                (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/test/TestJSBuiltinConstructor.idl        2015-09-29 17:49:28 UTC (rev 190314)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+/*
+ * Copyright (C) 2015 Canon Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted, provided that the following conditions
+ * are required to be met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Canon Inc. nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CANON INC. AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL CANON INC. AND ITS CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    JSBuiltinConstructor
+] interface TestJSBuiltinConstructor {
+};
+
</ins></span></pre>
</div>
</div>

</body>
</html>