CTTE: Node subclasses should take a Document by reference in their constructor (Part 10)
authorweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 15 Sep 2013 18:47:05 +0000 (18:47 +0000)
committerweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 15 Sep 2013 18:47:05 +0000 (18:47 +0000)
https://bugs.webkit.org/show_bug.cgi?id=121397

Reviewed by Andreas Kling.

Convert the bindings code to pass a Document reference for named constructors.

* bindings/js/JSImageConstructor.cpp:
(WebCore::constructImage):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDefinition):
* html/HTMLAudioElement.cpp:
(WebCore::HTMLAudioElement::createForJSConstructor):
* html/HTMLAudioElement.h:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::createForJSConstructor):
* html/HTMLImageElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor):
* html/HTMLOptionElement.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155819 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/bindings/js/JSImageConstructor.cpp
Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
Source/WebCore/html/HTMLAudioElement.cpp
Source/WebCore/html/HTMLAudioElement.h
Source/WebCore/html/HTMLImageElement.cpp
Source/WebCore/html/HTMLImageElement.h
Source/WebCore/html/HTMLOptionElement.cpp
Source/WebCore/html/HTMLOptionElement.h

index 7fb4dbd..3fc7698 100644 (file)
@@ -1,5 +1,28 @@
 2013-09-15  Sam Weinig  <sam@webkit.org>
 
+        CTTE: Node subclasses should take a Document by reference in their constructor (Part 10)
+        https://bugs.webkit.org/show_bug.cgi?id=121397
+
+        Reviewed by Andreas Kling.
+
+        Convert the bindings code to pass a Document reference for named constructors.
+
+        * bindings/js/JSImageConstructor.cpp:
+        (WebCore::constructImage):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateConstructorDefinition):
+        * html/HTMLAudioElement.cpp:
+        (WebCore::HTMLAudioElement::createForJSConstructor):
+        * html/HTMLAudioElement.h:
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::createForJSConstructor):
+        * html/HTMLImageElement.h:
+        * html/HTMLOptionElement.cpp:
+        (WebCore::HTMLOptionElement::createForJSConstructor):
+        * html/HTMLOptionElement.h:
+
+2013-09-15  Sam Weinig  <sam@webkit.org>
+
         CTTE: Node subclasses should take a Document by reference in their constructor (Part 9)
         https://bugs.webkit.org/show_bug.cgi?id=121394
 
index d7f80bb..a89dee7 100644 (file)
@@ -71,7 +71,7 @@ static EncodedJSValue JSC_HOST_CALL constructImage(ExecState* exec)
     }
 
     return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(),
-        HTMLImageElement::createForJSConstructor(document, optionalWidth, optionalHeight))));
+        HTMLImageElement::createForJSConstructor(*document, optionalWidth, optionalHeight))));
 }
 
 ConstructType JSImageConstructor::getConstructData(JSCell*, ConstructData& constructData)
index 52cc60c..8d717bd 100644 (file)
@@ -4008,7 +4008,7 @@ END
                 push(@$outputArray, "        return throwVMError(exec, createReferenceError(exec, \"${interfaceName} constructor associated document is unavailable\"));\n");
             }
             if ($generatingNamedConstructor) {
-                push(@constructorArgList, "castedThis->document()");
+                push(@constructorArgList, "*castedThis->document()");
             }
 
             my $index = 0;
index 09000fc..b487a3b 100644 (file)
@@ -46,9 +46,9 @@ PassRefPtr<HTMLAudioElement> HTMLAudioElement::create(const QualifiedName& tagNa
     return audioElement.release();
 }
 
-PassRefPtr<HTMLAudioElement> HTMLAudioElement::createForJSConstructor(Document* document, const String& src)
+PassRefPtr<HTMLAudioElement> HTMLAudioElement::createForJSConstructor(Document& document, const String& src)
 {
-    RefPtr<HTMLAudioElement> audio = adoptRef(new HTMLAudioElement(audioTag, *document, false));
+    RefPtr<HTMLAudioElement> audio = adoptRef(new HTMLAudioElement(audioTag, document, false));
     audio->setPreload("auto");
     if (!src.isNull()) {
         audio->setSrc(src);
index 54dd4a6..2ad7ce1 100644 (file)
@@ -37,9 +37,7 @@ class Document;
 class HTMLAudioElement FINAL : public HTMLMediaElement {
 public:
     static PassRefPtr<HTMLAudioElement> create(const QualifiedName&, Document&, bool);
-    
-    // FIXME: Fix the bindinds to pass a Document&.
-    static PassRefPtr<HTMLAudioElement> createForJSConstructor(Document*, const String& src);
+    static PassRefPtr<HTMLAudioElement> createForJSConstructor(Document&, const String& src);
 
 private:
     HTMLAudioElement(const QualifiedName&, Document&, bool);
index 0fa59c1..88a2dfd 100644 (file)
@@ -72,9 +72,9 @@ HTMLImageElement::~HTMLImageElement()
         m_form->removeImgElement(this);
 }
 
-PassRefPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document* document, const int* optionalWidth, const int* optionalHeight)
+PassRefPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document& document, const int* optionalWidth, const int* optionalHeight)
 {
-    RefPtr<HTMLImageElement> image = adoptRef(new HTMLImageElement(imgTag, *document));
+    RefPtr<HTMLImageElement> image = adoptRef(new HTMLImageElement(imgTag, document));
     if (optionalWidth)
         image->setWidth(*optionalWidth);
     if (optionalHeight)
index 3396fa0..82203e7 100644 (file)
@@ -38,9 +38,7 @@ class HTMLImageElement : public HTMLElement, public FormNamedItem {
 public:
     static PassRefPtr<HTMLImageElement> create(Document&);
     static PassRefPtr<HTMLImageElement> create(const QualifiedName&, Document&, HTMLFormElement*);
-
-    // FIXME: Fix the bindinds to pass a Document&.
-    static PassRefPtr<HTMLImageElement> createForJSConstructor(Document*, const int* optionalWidth, const int* optionalHeight);
+    static PassRefPtr<HTMLImageElement> createForJSConstructor(Document&, const int* optionalWidth, const int* optionalHeight);
 
     virtual ~HTMLImageElement();
 
index 9b33e00..384d866 100644 (file)
@@ -69,12 +69,12 @@ PassRefPtr<HTMLOptionElement> HTMLOptionElement::create(const QualifiedName& tag
     return adoptRef(new HTMLOptionElement(tagName, document));
 }
 
-PassRefPtr<HTMLOptionElement> HTMLOptionElement::createForJSConstructor(Document* document, const String& data, const String& value,
+PassRefPtr<HTMLOptionElement> HTMLOptionElement::createForJSConstructor(Document& document, const String& data, const String& value,
         bool defaultSelected, bool selected, ExceptionCode& ec)
 {
-    RefPtr<HTMLOptionElement> element = adoptRef(new HTMLOptionElement(optionTag, *document));
+    RefPtr<HTMLOptionElement> element = adoptRef(new HTMLOptionElement(optionTag, document));
 
-    RefPtr<Text> text = Text::create(*document, data.isNull() ? "" : data);
+    RefPtr<Text> text = Text::create(document, data.isNull() ? "" : data);
 
     ec = 0;
     element->appendChild(text.release(), ec);
index 36540f3..f24e56d 100644 (file)
@@ -36,9 +36,7 @@ class HTMLOptionElement FINAL : public HTMLElement {
 public:
     static PassRefPtr<HTMLOptionElement> create(Document&);
     static PassRefPtr<HTMLOptionElement> create(const QualifiedName&, Document&);
-
-    // FIXME: Fix the bindinds to pass a Document&.
-    static PassRefPtr<HTMLOptionElement> createForJSConstructor(Document*, const String& data, const String& value,
+    static PassRefPtr<HTMLOptionElement> createForJSConstructor(Document&, const String& data, const String& value,
        bool defaultSelected, bool selected, ExceptionCode&);
 
     virtual String text() const;