Remove JSDOMWrapperWithGlobalPointer now that all JSDOMWrappers have global objects
authorweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Apr 2011 20:22:49 +0000 (20:22 +0000)
committerweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Apr 2011 20:22:49 +0000 (20:22 +0000)
https://bugs.webkit.org/show_bug.cgi?id=59310

Reviewed by Maciej Stachowiak.

* bindings/js/JSDOMBinding.h:
(WebCore::DOMConstructorObject::DOMConstructorObject):
* bindings/js/JSDOMWrapper.h:
(WebCore::JSDOMWrapper::globalObject):
(WebCore::JSDOMWrapper::scriptExecutionContext):
(WebCore::JSDOMWrapper::createStructure):
(WebCore::JSDOMWrapper::JSDOMWrapper):
Merge JSDOMWrapperWithGlobalPointer with JSDOMWrapper.

* bindings/scripts/CodeGeneratorJS.pm:
Make JSDOMWrapper the base class.

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

Source/WebCore/ChangeLog
Source/WebCore/bindings/js/JSDOMBinding.h
Source/WebCore/bindings/js/JSDOMWrapper.h
Source/WebCore/bindings/scripts/CodeGeneratorJS.pm

index 0d26e9f..ef112eb 100644 (file)
@@ -1,3 +1,22 @@
+2011-04-26  Sam Weinig  <sam@webkit.org>
+
+        Reviewed by Maciej Stachowiak.
+
+        Remove JSDOMWrapperWithGlobalPointer now that all JSDOMWrappers have global objects
+        https://bugs.webkit.org/show_bug.cgi?id=59310
+
+        * bindings/js/JSDOMBinding.h:
+        (WebCore::DOMConstructorObject::DOMConstructorObject):
+        * bindings/js/JSDOMWrapper.h:
+        (WebCore::JSDOMWrapper::globalObject):
+        (WebCore::JSDOMWrapper::scriptExecutionContext):
+        (WebCore::JSDOMWrapper::createStructure):
+        (WebCore::JSDOMWrapper::JSDOMWrapper):
+        Merge JSDOMWrapperWithGlobalPointer with JSDOMWrapper.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        Make JSDOMWrapper the base class.
+
 2011-04-26  Dan Bernstein  <mitz@apple.com>
 
         Reviewed by Mark Rowe.
index fc633b8..8b23f02 100644 (file)
@@ -52,39 +52,8 @@ namespace WebCore {
 
     typedef int ExceptionCode;
 
-    // FIXME: This class should collapse into JSDOMWrapper once all JSDOMWrappers are
-    // updated to store a globalObject pointer.
-    class JSDOMWrapperWithGlobalPointer : public JSDOMWrapper {
-    public:
-        JSDOMGlobalObject* globalObject() const
-        {
-            return static_cast<JSDOMGlobalObject*>(JSDOMWrapper::globalObject());
-        }
-
-        ScriptExecutionContext* scriptExecutionContext() const
-        {
-            // FIXME: Should never be 0, but can be due to bug 27640.
-            return globalObject()->scriptExecutionContext();
-        }
-
-        static JSC::Structure* createStructure(JSC::JSGlobalData& globalData, JSC::JSValue prototype)
-        {
-            return JSC::Structure::create(globalData, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
-        }
-
-    protected:
-        JSDOMWrapperWithGlobalPointer(JSC::Structure* structure, JSDOMGlobalObject* globalObject)
-            : JSDOMWrapper(globalObject, structure)
-        {
-            // FIXME: This ASSERT is valid, but fires in fast/dom/gc-6.html when trying to create
-            // new JavaScript objects on detached windows due to DOMWindow::document()
-            // needing to reach through the frame to get to the Document*.  See bug 27640.
-            // ASSERT(globalObject->scriptExecutionContext());
-        }
-    };
-
     // Base class for all constructor objects in the JSC bindings.
-    class DOMConstructorObject : public JSDOMWrapperWithGlobalPointer {
+    class DOMConstructorObject : public JSDOMWrapper {
     public:
         static JSC::Structure* createStructure(JSC::JSGlobalData& globalData, JSC::JSValue prototype)
         {
@@ -92,9 +61,9 @@ namespace WebCore {
         }
 
     protected:
-        static const unsigned StructureFlags = JSC::ImplementsHasInstance | JSC::OverridesVisitChildren | JSDOMWrapperWithGlobalPointer::StructureFlags;
+        static const unsigned StructureFlags = JSC::ImplementsHasInstance | JSC::OverridesVisitChildren | JSDOMWrapper::StructureFlags;
         DOMConstructorObject(JSC::Structure* structure, JSDOMGlobalObject* globalObject)
-            : JSDOMWrapperWithGlobalPointer(structure, globalObject)
+            : JSDOMWrapper(structure, globalObject)
         {
         }
     };
index 1484dc6..0a14698 100644 (file)
 #ifndef JSDOMWrapper_h
 #define JSDOMWrapper_h
 
+#include "JSDOMGlobalObject.h"
 #include <runtime/JSObjectWithGlobalObject.h>
 
 namespace WebCore {
 
+class ScriptExecutionContext;
+
 class JSDOMWrapper : public JSC::JSObjectWithGlobalObject {
+public:
+    JSDOMGlobalObject* globalObject() const
+    {
+        return static_cast<JSDOMGlobalObject*>(JSDOMWrapper::globalObject());
+    }
+
+    ScriptExecutionContext* scriptExecutionContext() const
+    {
+        // FIXME: Should never be 0, but can be due to bug 27640.
+        return globalObject()->scriptExecutionContext();
+    }
+
+    static JSC::Structure* createStructure(JSC::JSGlobalData& globalData, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(globalData, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
+    }
+
 protected:
-    explicit JSDOMWrapper(JSC::JSGlobalObject* globalObject, JSC::Structure* structure
+    explicit JSDOMWrapper(JSC::Structure* structure, JSC::JSGlobalObject* globalObject
         : JSObjectWithGlobalObject(globalObject, structure)
     {
+        // FIXME: This ASSERT is valid, but fires in fast/dom/gc-6.html when trying to create
+        // new JavaScript objects on detached windows due to DOMWindow::document()
+        // needing to reach through the frame to get to the Document*.  See bug 27640.
+        // ASSERT(globalObject->scriptExecutionContext());
     }
 
 #ifndef NDEBUG
index af75ae9..cfb1b5c 100644 (file)
@@ -200,7 +200,7 @@ sub GetParentClassName
     my $dataNode = shift;
 
     return $dataNode->extendedAttributes->{"LegacyParent"} if $dataNode->extendedAttributes->{"LegacyParent"};
-    return "JSDOMWrapperWithGlobalPointer" if (@{$dataNode->parents} eq 0);
+    return "JSDOMWrapper" if (@{$dataNode->parents} eq 0);
     return "JS" . $codeGenerator->StripModule($dataNode->parents(0));
 }