Title: [190314] trunk/Source/WebCore
Revision
190314
Author
youenn.fab...@crf.canon.fr
Date
2015-09-29 10:49:28 -0700 (Tue, 29 Sep 2015)

Log Message

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.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (190313 => 190314)


--- 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)
@@ -1,3 +1,96 @@
+2015-09-29  Youenn Fablet  <youenn.fab...@crf.canon.fr>
+
+        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.
+
 2015-09-29  Xabier Rodriguez Calvar  <calva...@igalia.com>
 
         [Streams API] [Win] Remove reference to dead CountQueuingStrategy.h

Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (190313 => 190314)


--- 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)
@@ -85,15 +85,6 @@
 WEBCORE_EXPORT JSC::EncodedJSValue throwGetterTypeError(JSC::ExecState&, const char* interfaceName, const char* attributeName);
 WEBCORE_EXPORT JSC::EncodedJSValue throwThisTypeError(JSC::ExecState&, const char* interfaceName, const char* functionName);
 
-void callFunctionWithCurrentArguments(JSC::ExecState&, JSC::JSObject& thisObject, JSC::JSFunction&);
-
-template<typename WrapperClass, typename DOMClass> inline JSC::EncodedJSValue createFromJSBuiltin(JSC::ExecState& state, JSC::JSFunction& initializeFunction, JSDOMGlobalObject& globalObject)
-{
-    JSC::JSObject* object = asObject(toJS(&state, &globalObject, DOMClass::create()));
-    callFunctionWithCurrentArguments(state, *object, initializeFunction);
-    return JSC::JSValue::encode(object);
-}
-
 // Base class for all constructor objects in the JSC bindings.
 class DOMConstructorObject : public JSDOMWrapper {
 public:
@@ -158,6 +149,15 @@
     return JSC::jsCast<JSC::JSObject*>(asObject(getDOMStructure<WrapperClass>(vm, JSC::jsCast<JSDOMGlobalObject*>(globalObject))->storedPrototype()));
 }
 
+void callFunctionWithCurrentArguments(JSC::ExecState&, JSC::JSObject& thisObject, JSC::JSFunction&);
+
+template<typename JSClass> inline JSC::EncodedJSValue createJSBuiltin(JSC::ExecState& state, JSC::JSFunction& initializeFunction, JSDOMGlobalObject& globalObject)
+{
+    JSC::JSObject* object = JSClass::create(getDOMStructure<JSClass>(globalObject.vm(), &globalObject), &globalObject);
+    callFunctionWithCurrentArguments(state, *object, initializeFunction);
+    return JSC::JSValue::encode(object);
+}
+
 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld& world, JSC::ArrayBuffer*)
 {
     return static_cast<WebCoreTypedArrayController*>(world.vm().m_typedArrayController.get())->wrapperOwner();

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (190313 => 190314)


--- 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)
@@ -509,10 +509,46 @@
     return @implContentHeader;
 }
 
+sub NeedsImplementationClass
+{
+    my ($interface) = @_;
+
+    return 0 if ($interface->extendedAttributes->{"JSBuiltinConstructor"});
+    return 1;
+}
+
+sub ShouldGenerateToWrapped
+{
+    my ($hasParent, $interface) = @_;
+
+    return 0 if not NeedsImplementationClass($interface);
+    if (!$hasParent or $interface->extendedAttributes->{"JSGenerateToNativeObject"}) {
+        return 1;
+    }
+    return 0;
+}
+
+sub ShouldGenerateWrapperOwnerCode
+{
+    my ($hasParent, $interface) = @_;
+
+    return 0 if not NeedsImplementationClass($interface);
+    if (!$hasParent ||
+        GetGenerateIsReachable($interface) ||
+        GetCustomIsReachable($interface) ||
+        $interface->extendedAttributes->{"JSCustomFinalize"} ||
+        $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
+        return 1;
+    }
+    return 0;
+}
+
 sub ShouldGenerateToJSDeclaration
 {
     my ($hasParent, $interface) = @_;
+
     return 0 if ($interface->extendedAttributes->{"SuppressToJSObject"});
+    return 0 if not NeedsImplementationClass($interface);
     return 0 if $interface->name eq "AbstractView";
     return 1 if (!$hasParent or $interface->extendedAttributes->{"JSGenerateToJSObject"} or $interface->extendedAttributes->{"CustomToJSObject"});
     return 0;
@@ -521,9 +557,9 @@
 sub ShouldGenerateToJSImplementation
 {
     my ($hasParent, $interface) = @_;
-    return 0 if ($interface->extendedAttributes->{"SuppressToJSObject"});
-    return 0 if $interface->name eq "AbstractView";
-    return 1 if ((!$hasParent or $interface->extendedAttributes->{"JSGenerateToJSObject"}) and !$interface->extendedAttributes->{"CustomToJSObject"});
+
+    return 0 if not ShouldGenerateToJSDeclaration($hasParent, $interface);
+    return 1 if not $interface->extendedAttributes->{"CustomToJSObject"};
     return 0;
 }
 
@@ -872,8 +908,6 @@
 
     my $exportLabel = ExportLabelForClass($className);
 
-    GenerateDummyDOMClassForJSBuiltin($implType) if UseDummyDOMClass($interface);
-
     # Class declaration
     push(@headerContent, "class $exportLabel$className : public $parentClassName {\n");
 
@@ -905,8 +939,15 @@
         push(@headerContent, "        ptr->finishCreation(globalObject->vm());\n");
         push(@headerContent, "        return ptr;\n");
         push(@headerContent, "    }\n\n");
+    } elsif (!NeedsImplementationClass($interface)) {
+        push(@headerContent, "    static $className* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject)\n");
+        push(@headerContent, "    {\n");
+        push(@headerContent, "        $className* ptr = new (NotNull, JSC::allocateCell<$className>(globalObject->vm().heap)) $className(structure, globalObject);\n");
+        push(@headerContent, "        ptr->finishCreation(globalObject->vm());\n");
+        push(@headerContent, "        return ptr;\n");
+        push(@headerContent, "    }\n\n");  
     } else {
-        AddIncludesForTypeInHeader($implType) unless $svgPropertyOrListPropertyType || UseDummyDOMClass($interface);
+        AddIncludesForTypeInHeader($implType) unless $svgPropertyOrListPropertyType;
         push(@headerContent, "    static $className* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, Ref<$implType>&& impl)\n");
         push(@headerContent, "    {\n");
         push(@headerContent, "        $className* ptr = new (NotNull, JSC::allocateCell<$className>(globalObject->vm().heap)) $className(structure, globalObject, WTF::move(impl));\n");
@@ -926,7 +967,7 @@
     }
 
     # JSValue to implementation type
-    if (!$hasParent || $interface->extendedAttributes->{"JSGenerateToNativeObject"}) {
+    if (ShouldGenerateToWrapped($hasParent, $interface)) {
         if ($interfaceName eq "NodeFilter") {
             push(@headerContent, "    static RefPtr<NodeFilter> toWrapped(JSC::VM&, JSC::JSValue);\n");
         } elsif ($interfaceName eq "DOMStringList") {
@@ -1146,16 +1187,18 @@
         push(@headerContent, $endAppleCopyright) if $inAppleCopyright;
     }
 
-    if (!$hasParent) {
-        push(@headerContent, "    $implType& impl() const { return *m_impl; }\n");
-        push(@headerContent, "    void releaseImpl() { std::exchange(m_impl, nullptr)->deref(); }\n\n");
-        push(@headerContent, "private:\n");
-        push(@headerContent, "    $implType* m_impl;\n");
-    } else {
-        push(@headerContent, "    $interfaceName& impl() const\n");
-        push(@headerContent, "    {\n");
-        push(@headerContent, "        return static_cast<$interfaceName&>(Base::impl());\n");
-        push(@headerContent, "    }\n");
+    if (NeedsImplementationClass($interface)) {
+        if (!$hasParent) {
+            push(@headerContent, "    $implType& impl() const { return *m_impl; }\n");
+            push(@headerContent, "    void releaseImpl() { std::exchange(m_impl, nullptr)->deref(); }\n\n");
+            push(@headerContent, "private:\n");
+            push(@headerContent, "    $implType* m_impl;\n");
+        } else {
+            push(@headerContent, "    $interfaceName& impl() const\n");
+            push(@headerContent, "    {\n");
+            push(@headerContent, "        return static_cast<$interfaceName&>(Base::impl());\n");
+            push(@headerContent, "    }\n");
+        }
     }
 
     # structure flags
@@ -1175,7 +1218,9 @@
         push(@headerContent, "    $className(JSC::VM&, JSC::Structure*, Ref<$implType>&&, JSDOMWindowShell*);\n");
     } elsif ($codeGenerator->InheritsInterface($interface, "WorkerGlobalScope")) {
         push(@headerContent, "    $className(JSC::VM&, JSC::Structure*, Ref<$implType>&&);\n");
-    } else {
+    } elsif (!NeedsImplementationClass($interface)) {
+        push(@headerContent, "    $className(JSC::Structure*, JSDOMGlobalObject*);\n\n");
+     } else {
         push(@headerContent, "    $className(JSC::Structure*, JSDOMGlobalObject*, Ref<$implType>&&);\n\n");
         push(@headerContent, "    void finishCreation(JSC::VM& vm)\n");
         push(@headerContent, "    {\n");
@@ -1196,11 +1241,7 @@
 
     push(@headerContent, "};\n\n");
 
-    if (!$hasParent ||
-        GetGenerateIsReachable($interface) ||
-        GetCustomIsReachable($interface) ||
-        $interface->extendedAttributes->{"JSCustomFinalize"} ||
-        $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
+    if (ShouldGenerateWrapperOwnerCode($hasParent, $interface)) {
         if ($interfaceName ne "Node" && $codeGenerator->InheritsInterface($interface, "Node")) {
             $headerIncludes{"JSNode.h"} = 1;
             push(@headerContent, "class JS${interfaceName}Owner : public JSNodeOwner {\n");
@@ -1755,7 +1796,6 @@
     $implIncludes{"<runtime/PropertyNameArray.h>"} = 1 if $indexedGetterFunction;
 
     my $implType = GetImplClassName($interfaceName);
-    AddIncludesForTypeInImpl($implType) if not UseDummyDOMClass($interface);
 
     AddIncludesForJSBuiltinMethods($interface);
 
@@ -2118,7 +2158,10 @@
         push(@implContent, "    : $parentClassName(vm, structure, WTF::move(impl))\n");
         push(@implContent, "{\n");
         push(@implContent, "}\n\n");
-    } else {
+    } elsif (!NeedsImplementationClass($interface)) {
+        push(@implContent, "${className}::$className(Structure* structure, JSDOMGlobalObject* globalObject)\n");
+        push(@implContent, "    : $parentClassName(structure, globalObject) { }\n\n");
+     }else {
         push(@implContent, "${className}::$className(Structure* structure, JSDOMGlobalObject* globalObject, Ref<$implType>&& impl)\n");
         if ($hasParent) {
             push(@implContent, "    : $parentClassName(structure, globalObject, WTF::move(impl))\n");
@@ -2156,7 +2199,9 @@
 
         push(@implContent, "${className}::~${className}()\n");
         push(@implContent, "{\n");
-        push(@implContent, "    releaseImpl();\n");
+        if (NeedsImplementationClass($interface)) {
+            push(@implContent, "    releaseImpl();\n");
+        }
         push(@implContent, "}\n\n");
     }
 
@@ -2989,8 +3034,7 @@
         }
     }
 
-    if ((!$hasParent && !GetCustomIsReachable($interface)) || GetGenerateIsReachable($interface) || $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
-
+    if (ShouldGenerateWrapperOwnerCode($hasParent, $interface) && !GetCustomIsReachable($interface)) {
         push(@implContent, "bool JS${interfaceName}Owner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor)\n");
         push(@implContent, "{\n");
         # All ActiveDOMObjects implement hasPendingActivity(), but not all of them
@@ -3073,11 +3117,7 @@
         push(@implContent, "}\n\n");
     }
 
-    if (!$interface->extendedAttributes->{"JSCustomFinalize"} &&
-        (!$hasParent ||
-         GetGenerateIsReachable($interface) ||
-         GetCustomIsReachable($interface) ||
-         $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject"))) {
+    if (ShouldGenerateWrapperOwnerCode($hasParent, $interface) && !$interface->extendedAttributes->{"JSCustomFinalize"}) {
         push(@implContent, "void JS${interfaceName}Owner::finalize(JSC::Handle<JSC::Unknown> handle, void* context)\n");
         push(@implContent, "{\n");
         push(@implContent, "    auto* js${interfaceName} = jsCast<JS${interfaceName}*>(handle.slot()->asCell());\n");
@@ -3173,7 +3213,7 @@
         push(@implContent, "}\n\n");
     }
 
-    if ((!$hasParent or $interface->extendedAttributes->{"JSGenerateToNativeObject"}) and !$interface->extendedAttributes->{"JSCustomToNativeObject"}) {
+    if (ShouldGenerateToWrapped($hasParent, $interface) and !$interface->extendedAttributes->{"JSCustomToNativeObject"}) {
         push(@implContent, "$implType* ${className}::toWrapped(JSC::JSValue value)\n");
         push(@implContent, "{\n");
         push(@implContent, "    if (auto* wrapper = " . GetCastingHelperForThisObject($interface) . "(value))\n");
@@ -4814,7 +4854,7 @@
             push(@$outputArray, "{\n");
 
             push(@$outputArray, "    auto* castedThis = jsCast<${constructorClassName}*>(state->callee());\n");
-            push(@$outputArray, "    return createFromJSBuiltin<${className}, ${interfaceName}>(*state, *castedThis->initializeFunction(), *castedThis->globalObject());\n");
+            push(@$outputArray, "    return createJSBuiltin<${className}>(*state, *castedThis->initializeFunction(), *castedThis->globalObject());\n");
 
             push(@$outputArray, "}\n\n");
         } elsif (!HasCustomConstructor($interface) && (!$interface->extendedAttributes->{"NamedConstructor"} || $generatingNamedConstructor)) {
@@ -5105,22 +5145,4 @@
 
 }
 
-sub UseDummyDOMClass()
-{
-    my $interface = shift;
-
-    return $interface->extendedAttributes->{"JSBuiltinConstructor"};
-}
-
-sub GenerateDummyDOMClassForJSBuiltin()
-{
-    my $className = shift;
-
-    push(@headerContent, "class $className : public RefCounted<$className> {\n");
-    push(@headerContent, "public:\n");
-    push(@headerContent, "    static Ref<$className> create() { return adoptRef(* new $className); }\n");
-    push(@headerContent, "    virtual ~$className() { }\n");
-    push(@headerContent, "};\n\n");
-}
-
 1;

Added: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp (0 => 190314)


--- 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)
@@ -0,0 +1,104 @@
+/*
+ *  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 "config.h"
+#include "WebKitDOMTestJSBuiltinConstructor.h"
+
+#include "CSSImportRule.h"
+#include "DOMObjectCache.h"
+#include "Document.h"
+#include "ExceptionCode.h"
+#include "ExceptionCodeDescription.h"
+#include "JSMainThreadExecState.h"
+#include "WebKitDOMPrivate.h"
+#include "WebKitDOMTestJSBuiltinConstructorPrivate.h"
+#include "gobject/ConvertToUTF8String.h"
+#include <wtf/GetPtr.h>
+#include <wtf/RefPtr.h>
+
+#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<WebCore::TestJSBuiltinConstructor> 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<WebCore::TestJSBuiltinConstructor*>(WEBKIT_DOM_OBJECT(request)->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, "core-object", 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->coreObject.get());
+
+    priv->~WebKitDOMTestJSBuiltinConstructorPrivate();
+    G_OBJECT_CLASS(webkit_dom_test_js_builtin_constructor_parent_class)->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)->constructor(type, constructPropertiesCount, constructProperties);
+
+    WebKitDOMTestJSBuiltinConstructorPrivate* priv = WEBKIT_DOM_TEST_JS_BUILTIN_CONSTRUCTOR_GET_PRIVATE(object);
+    priv->coreObject = static_cast<WebCore::TestJSBuiltinConstructor*>(WEBKIT_DOM_OBJECT(object)->coreObject);
+    WebKit::DOMObjectCache::put(priv->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->constructor = webkit_dom_test_js_builtin_constructor_constructor;
+    gobjectClass->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();
+}
+

Added: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h (0 => 190314)


--- 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)
@@ -0,0 +1,53 @@
+/*
+ *  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 <glib-object.h>
+#include <webkitdom/WebKitDOMObject.h>
+#include <webkitdom/webkitdomdefines-unstable.h>
+
+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 */

Added: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructorPrivate.h (0 => 190314)


--- 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)
@@ -0,0 +1,33 @@
+/*
+ *  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 "TestJSBuiltinConstructor.h"
+#include <webkitdom/WebKitDOMTestJSBuiltinConstructor.h>
+
+namespace WebKit {
+WebKitDOMTestJSBuiltinConstructor* wrapTestJSBuiltinConstructor(WebCore::TestJSBuiltinConstructor*);
+WebKitDOMTestJSBuiltinConstructor* kit(WebCore::TestJSBuiltinConstructor*);
+WebCore::TestJSBuiltinConstructor* core(WebKitDOMTestJSBuiltinConstructor*);
+} // namespace WebKit
+
+#endif /* WebKitDOMTestJSBuiltinConstructorPrivate_h */

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (190313 => 190314)


--- 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)
@@ -24,7 +24,6 @@
 #include "ExceptionCode.h"
 #include "JSDOMBinding.h"
 #include "JSNode.h"
-#include "TestActiveDOMObject.h"
 #include <runtime/Error.h>
 #include <wtf/GetPtr.h>
 

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp (190313 => 190314)


--- 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)
@@ -22,7 +22,6 @@
 #include "JSTestCustomConstructorWithNoInterfaceObject.h"
 
 #include "JSDOMBinding.h"
-#include "TestCustomConstructorWithNoInterfaceObject.h"
 #include <wtf/GetPtr.h>
 
 using namespace JSC;

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (190313 => 190314)


--- 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)
@@ -23,7 +23,6 @@
 
 #include "ExceptionCode.h"
 #include "JSDOMBinding.h"
-#include "TestCustomNamedGetter.h"
 #include "wtf/text/AtomicString.h"
 #include <runtime/Error.h>
 #include <wtf/GetPtr.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (190313 => 190314)


--- 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)
@@ -23,7 +23,6 @@
 
 #include "JSDOMBinding.h"
 #include "JSDictionary.h"
-#include "TestEventConstructor.h"
 #include "URL.h"
 #include <runtime/Error.h>
 #include <runtime/JSString.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (190313 => 190314)


--- 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)
@@ -28,7 +28,6 @@
 #include "JSEventListener.h"
 #include "JSNode.h"
 #include "Node.h"
-#include "TestEventTarget.h"
 #include "wtf/text/AtomicString.h"
 #include <runtime/Error.h>
 #include <runtime/PropertyNameArray.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (190313 => 190314)


--- 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)
@@ -22,7 +22,6 @@
 #include "JSTestException.h"
 
 #include "JSDOMBinding.h"
-#include "TestException.h"
 #include "URL.h"
 #include <runtime/JSString.h>
 #include <wtf/GetPtr.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (190313 => 190314)


--- 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)
@@ -22,7 +22,6 @@
 #include "JSTestGenerateIsReachable.h"
 
 #include "JSDOMBinding.h"
-#include "TestGenerateIsReachable.h"
 #include <wtf/GetPtr.h>
 
 using namespace JSC;

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (190313 => 190314)


--- 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)
@@ -26,7 +26,6 @@
 
 #include "ExceptionCode.h"
 #include "JSDOMBinding.h"
-#include "TestInterface.h"
 #include "TestObj.h"
 #include "TestSupplemental.h"
 #include <runtime/Error.h>

Added: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp (0 => 190314)


--- 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)
@@ -0,0 +1,174 @@
+/*
+    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 "config.h"
+#include "JSTestJSBuiltinConstructor.h"
+
+#include "JSDOMBinding.h"
+#include <wtf/GetPtr.h>
+
+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& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
+    {
+        JSTestJSBuiltinConstructorPrototype* ptr = new (NotNull, JSC::allocateCell<JSTestJSBuiltinConstructorPrototype>(vm.heap)) JSTestJSBuiltinConstructorPrototype(vm, globalObject, structure);
+        ptr->finishCreation(vm);
+        return ptr;
+    }
+
+    DECLARE_INFO;
+    static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
+    }
+
+private:
+    JSTestJSBuiltinConstructorPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure)
+        : JSC::JSNonFinalObject(vm, structure)
+    {
+    }
+
+    void finishCreation(JSC::VM&);
+};
+
+class JSTestJSBuiltinConstructorConstructor : public DOMConstructorJSBuiltinObject {
+private:
+    JSTestJSBuiltinConstructorConstructor(JSC::Structure*, JSDOMGlobalObject*);
+    void finishCreation(JSC::VM&, JSDOMGlobalObject*);
+
+public:
+    typedef DOMConstructorJSBuiltinObject Base;
+    static JSTestJSBuiltinConstructorConstructor* create(JSC::VM& vm, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
+    {
+        JSTestJSBuiltinConstructorConstructor* ptr = new (NotNull, JSC::allocateCell<JSTestJSBuiltinConstructorConstructor>(vm.heap)) JSTestJSBuiltinConstructorConstructor(structure, globalObject);
+        ptr->finishCreation(vm, globalObject);
+        return ptr;
+    }
+
+    DECLARE_INFO;
+    static JSC::Structure* createStructure(JSC::VM& 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&);
+};
+
+JSC::EncodedJSValue JSC_HOST_CALL JSTestJSBuiltinConstructorConstructor::constructJSTestJSBuiltinConstructor(JSC::ExecState* state)
+{
+    auto* castedThis = jsCast<JSTestJSBuiltinConstructorConstructor*>(state->callee());
+    return createJSBuiltin<JSTestJSBuiltinConstructor>(*state, *castedThis->initializeFunction(), *castedThis->globalObject());
+}
+
+const ClassInfo JSTestJSBuiltinConstructorConstructor::s_info = { "TestJSBuiltinConstructorConstructor", &Base::s_info, 0, CREATE_METHOD_TABLE(JSTestJSBuiltinConstructorConstructor) };
+
+JSTestJSBuiltinConstructorConstructor::JSTestJSBuiltinConstructorConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
+    : Base(structure, globalObject)
+{
+}
+
+void JSTestJSBuiltinConstructorConstructor::finishCreation(VM& vm, JSDOMGlobalObject* globalObject)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+    putDirect(vm, vm.propertyNames->prototype, JSTestJSBuiltinConstructor::getPrototype(vm, globalObject), DontDelete | ReadOnly | DontEnum);
+    putDirect(vm, vm.propertyNames->name, jsNontrivialString(&vm, String(ASCIILiteral("TestJSBuiltinConstructor"))), ReadOnly | DontEnum);
+    putDirect(vm, vm.propertyNames->length, jsNumber(0), ReadOnly | DontEnum);
+    setInitializeFunction(vm, *JSC::JSFunction::createBuiltinFunction(vm, testJSBuiltinConstructorInitializeTestJSBuiltinConstructorCodeGenerator(vm), globalObject));
+}
+
+ConstructType JSTestJSBuiltinConstructorConstructor::getConstructData(JSCell*, ConstructData& constructData)
+{
+    constructData.native.function = constructJSTestJSBuiltinConstructor;
+    return ConstructTypeHost;
+}
+
+/* Hash table for prototype */
+
+static const HashTableValue JSTestJSBuiltinConstructorPrototypeTableValues[] =
+{
+    { "constructor", DontEnum | ReadOnly, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestJSBuiltinConstructorConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
+};
+
+const ClassInfo JSTestJSBuiltinConstructorPrototype::s_info = { "TestJSBuiltinConstructorPrototype", &Base::s_info, 0, CREATE_METHOD_TABLE(JSTestJSBuiltinConstructorPrototype) };
+
+void JSTestJSBuiltinConstructorPrototype::finishCreation(VM& vm)
+{
+    Base::finishCreation(vm);
+    reifyStaticProperties(vm, JSTestJSBuiltinConstructorPrototypeTableValues, *this);
+}
+
+const ClassInfo JSTestJSBuiltinConstructor::s_info = { "TestJSBuiltinConstructor", &Base::s_info, 0, CREATE_METHOD_TABLE(JSTestJSBuiltinConstructor) };
+
+JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
+    : JSDOMWrapper(structure, globalObject) { }
+
+JSObject* JSTestJSBuiltinConstructor::createPrototype(VM& vm, JSGlobalObject* globalObject)
+{
+    return JSTestJSBuiltinConstructorPrototype::create(vm, globalObject, JSTestJSBuiltinConstructorPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
+}
+
+JSObject* JSTestJSBuiltinConstructor::getPrototype(VM& vm, JSGlobalObject* globalObject)
+{
+    return getDOMPrototype<JSTestJSBuiltinConstructor>(vm, globalObject);
+}
+
+void JSTestJSBuiltinConstructor::destroy(JSC::JSCell* cell)
+{
+    JSTestJSBuiltinConstructor* thisObject = static_cast<JSTestJSBuiltinConstructor*>(cell);
+    thisObject->JSTestJSBuiltinConstructor::~JSTestJSBuiltinConstructor();
+}
+
+JSTestJSBuiltinConstructor::~JSTestJSBuiltinConstructor()
+{
+}
+
+EncodedJSValue jsTestJSBuiltinConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
+{
+    JSTestJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestJSBuiltinConstructorPrototype*>(baseValue);
+    if (!domObject)
+        return throwVMTypeError(state);
+    return JSValue::encode(JSTestJSBuiltinConstructor::getConstructor(state->vm(), domObject->globalObject()));
+}
+
+JSValue JSTestJSBuiltinConstructor::getConstructor(VM& vm, JSGlobalObject* globalObject)
+{
+    return getDOMConstructor<JSTestJSBuiltinConstructorConstructor>(vm, jsCast<JSDOMGlobalObject*>(globalObject));
+}
+
+void JSTestJSBuiltinConstructor::visitChildren(JSCell* cell, SlotVisitor& visitor)
+{
+    auto* thisObject = jsCast<JSTestJSBuiltinConstructor*>(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+    Base::visitChildren(thisObject, visitor);
+}
+
+
+}

Added: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h (0 => 190314)


--- 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)
@@ -0,0 +1,62 @@
+/*
+    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 "JSDOMWrapper.h"
+
+namespace WebCore {
+
+class JSTestJSBuiltinConstructor : public JSDOMWrapper {
+public:
+    typedef JSDOMWrapper Base;
+    static JSTestJSBuiltinConstructor* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject)
+    {
+        JSTestJSBuiltinConstructor* ptr = new (NotNull, JSC::allocateCell<JSTestJSBuiltinConstructor>(globalObject->vm().heap)) JSTestJSBuiltinConstructor(structure, globalObject);
+        ptr->finishCreation(globalObject->vm());
+        return ptr;
+    }
+
+    static JSC::JSObject* createPrototype(JSC::VM&, JSC::JSGlobalObject*);
+    static JSC::JSObject* getPrototype(JSC::VM&, JSC::JSGlobalObject*);
+    static void destroy(JSC::JSCell*);
+    ~JSTestJSBuiltinConstructor();
+
+    DECLARE_INFO;
+
+    static JSC::Structure* createStructure(JSC::VM& 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&, JSC::JSGlobalObject*);
+    static void visitChildren(JSCell*, JSC::SlotVisitor&);
+
+protected:
+    JSTestJSBuiltinConstructor(JSC::Structure*, JSDOMGlobalObject*);
+
+};
+
+
+
+} // namespace WebCore
+
+#endif

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (190313 => 190314)


--- 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)
@@ -24,7 +24,6 @@
 #include "ExceptionCode.h"
 #include "JSDOMBinding.h"
 #include "JSMediaQueryListListener.h"
-#include "TestMediaQueryListListener.h"
 #include <runtime/Error.h>
 #include <wtf/GetPtr.h>
 

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (190313 => 190314)


--- 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)
@@ -24,7 +24,6 @@
 #include "DOMConstructorWithDocument.h"
 #include "ExceptionCode.h"
 #include "JSDOMBinding.h"
-#include "TestNamedConstructor.h"
 #include <runtime/Error.h>
 #include <wtf/GetPtr.h>
 

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (190313 => 190314)


--- 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)
@@ -23,7 +23,6 @@
 
 #include "ExceptionCode.h"
 #include "JSDOMBinding.h"
-#include "TestNode.h"
 #include "URL.h"
 #include <runtime/Error.h>
 #include <runtime/JSString.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp (190313 => 190314)


--- 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)
@@ -23,7 +23,6 @@
 
 #include "ExceptionCode.h"
 #include "JSDOMBinding.h"
-#include "TestNondeterministic.h"
 #include "URL.h"
 #include <runtime/Error.h>
 #include <runtime/JSString.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (190313 => 190314)


--- 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)
@@ -24,7 +24,6 @@
 #include "ExceptionCode.h"
 #include "JSBlob.h"
 #include "JSDOMBinding.h"
-#include "TestOverloadedConstructors.h"
 #include <runtime/Error.h>
 #include <wtf/GetPtr.h>
 

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp (190313 => 190314)


--- 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)
@@ -25,7 +25,6 @@
 #include "JSDOMBinding.h"
 #include "JSNode.h"
 #include "Node.h"
-#include "TestOverrideBuiltins.h"
 #include "wtf/text/AtomicString.h"
 #include <runtime/Error.h>
 #include <wtf/GetPtr.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (190313 => 190314)


--- 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)
@@ -28,7 +28,6 @@
 #include "JSMessagePort.h"
 #include "MessagePort.h"
 #include "SerializedScriptValue.h"
-#include "TestSerializedScriptValueInterface.h"
 #include <runtime/JSArray.h>
 #include <wtf/GetPtr.h>
 

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (190313 => 190314)


--- 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)
@@ -32,7 +32,6 @@
 #include "JSTestSubObj.h"
 #include "SVGPoint.h"
 #include "SerializedScriptValue.h"
-#include "TestTypedefs.h"
 #include "URL.h"
 #include <runtime/Error.h>
 #include <runtime/JSArray.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp (190313 => 190314)


--- 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)
@@ -23,7 +23,6 @@
 
 #include "JSDOMBinding.h"
 #include "URL.h"
-#include "attribute.h"
 #include <runtime/JSString.h>
 #include <wtf/GetPtr.h>
 

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp (190313 => 190314)


--- 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)
@@ -22,7 +22,6 @@
 #include "JSreadonly.h"
 
 #include "JSDOMBinding.h"
-#include "readonly.h"
 #include <wtf/GetPtr.h>
 
 using namespace JSC;

Added: trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h (0 => 190314)


--- 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)
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.wei...@gmail.com>
+ *
+ * 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 <WebCore/DOMObject.h>
+
+WEBKIT_CLASS_AVAILABLE_MAC(9876_5)
+WEBCORE_EXPORT @interface DOMTestJSBuiltinConstructor : DOMObject
+@end

Added: trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm (0 => 190314)


--- 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)
@@ -0,0 +1,82 @@
+/*
+ * 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 "config.h"
+#import "DOMInternal.h"
+
+#import "DOMTestJSBuiltinConstructor.h"
+
+#import "DOMNodeInternal.h"
+#import "DOMTestJSBuiltinConstructorInternal.h"
+#import "ExceptionHandlers.h"
+#import "JSMainThreadExecState.h"
+#import "TestJSBuiltinConstructor.h"
+#import "ThreadCheck.h"
+#import "WebCoreObjCExtras.h"
+#import "WebScriptObjectPrivate.h"
+#import <wtf/GetPtr.h>
+
+#define IMPL reinterpret_cast<WebCore::TestJSBuiltinConstructor*>(_internal)
+
+@implementation DOMTestJSBuiltinConstructor
+
+- (void)dealloc
+{
+    if (WebCoreObjCScheduleDeallocateOnMainThread([DOMTestJSBuiltinConstructor class], self))
+        return;
+
+    if (_internal)
+        IMPL->deref();
+    [super dealloc];
+}
+
+- (void)finalize
+{
+    if (_internal)
+        IMPL->deref();
+    [super finalize];
+}
+
+@end
+
+WebCore::TestJSBuiltinConstructor* core(DOMTestJSBuiltinConstructor *wrapper)
+{
+    return wrapper ? reinterpret_cast<WebCore::TestJSBuiltinConstructor*>(wrapper->_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->_internal = reinterpret_cast<DOMObjectInternal*>(value);
+    value->ref();
+    addDOMWrapper(wrapper, value);
+    return [wrapper autorelease];
+}

Added: trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructorInternal.h (0 => 190314)


--- 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)
@@ -0,0 +1,34 @@
+/*
+ * 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 <WebCore/DOMTestJSBuiltinConstructor.h>
+
+namespace WebCore {
+class TestJSBuiltinConstructor;
+}
+
+WEBCORE_EXPORT WebCore::TestJSBuiltinConstructor* core(DOMTestJSBuiltinConstructor *);
+WEBCORE_EXPORT DOMTestJSBuiltinConstructor *kit(WebCore::TestJSBuiltinConstructor*);

Added: trunk/Source/WebCore/bindings/scripts/test/TestJSBuiltinConstructor.idl (0 => 190314)


--- 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)
@@ -0,0 +1,33 @@
+/*
+ * 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 "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 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 {
+};
+
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to