Title: [136603] trunk/Source
Revision
136603
Author
[email protected]
Date
2012-12-04 17:35:55 -0800 (Tue, 04 Dec 2012)

Log Message

[V8] Cleanup style in V8DOMWrapper
https://bugs.webkit.org/show_bug.cgi?id=104062

Reviewed by Kentaro Hara.

Source/WebCore: 

This patch moves a number of functions from inside the class
declaration to below the class declaration. I've also inlined
domWrapperType into each of its callers and renamed a few functions.
A subsequent patch will improve the names of the remaining functions.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateToV8Converters):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitExternalArrays):
* bindings/v8/V8Collection.h:
(WebCore::getNamedPropertyOfCollection):
(WebCore::getIndexedPropertyOfCollection):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateDOMWrapper):
(WebCore::V8DOMWrapper::isWrapperOfType):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::setWrapperClass):
(WebCore::V8DOMWrapper::setDOMWrapper):
(WebCore):
(WebCore::V8DOMWrapper::clearDOMWrapper):
(WebCore::V8DOMWrapper::lookupDOMWrapper):
(WebCore::V8DOMWrapper::createDOMWrapper):
* bindings/v8/V8GCController.cpp:
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
(WebCore::V8InspectorFrontendHost::showContextMenuCallback):

Source/WebKit/chromium: 

* src/WebBindings.cpp:
(WebKit::getRangeImpl):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (136602 => 136603)


--- trunk/Source/WebCore/ChangeLog	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/ChangeLog	2012-12-05 01:35:55 UTC (rev 136603)
@@ -1,3 +1,37 @@
+2012-12-04  Adam Barth  <[email protected]>
+
+        [V8] Cleanup style in V8DOMWrapper
+        https://bugs.webkit.org/show_bug.cgi?id=104062
+
+        Reviewed by Kentaro Hara.
+
+        This patch moves a number of functions from inside the class
+        declaration to below the class declaration. I've also inlined
+        domWrapperType into each of its callers and renamed a few functions.
+        A subsequent patch will improve the names of the remaining functions.
+
+        * bindings/scripts/CodeGeneratorV8.pm:
+        (GenerateToV8Converters):
+        * bindings/v8/ScriptProfiler.cpp:
+        (WebCore::ScriptProfiler::visitExternalArrays):
+        * bindings/v8/V8Collection.h:
+        (WebCore::getNamedPropertyOfCollection):
+        (WebCore::getIndexedPropertyOfCollection):
+        * bindings/v8/V8DOMWrapper.cpp:
+        (WebCore::V8DOMWrapper::instantiateDOMWrapper):
+        (WebCore::V8DOMWrapper::isWrapperOfType):
+        * bindings/v8/V8DOMWrapper.h:
+        (V8DOMWrapper):
+        (WebCore::V8DOMWrapper::setWrapperClass):
+        (WebCore::V8DOMWrapper::setDOMWrapper):
+        (WebCore):
+        (WebCore::V8DOMWrapper::clearDOMWrapper):
+        (WebCore::V8DOMWrapper::lookupDOMWrapper):
+        (WebCore::V8DOMWrapper::createDOMWrapper):
+        * bindings/v8/V8GCController.cpp:
+        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
+        (WebCore::V8InspectorFrontendHost::showContextMenuCallback):
+
 2012-12-04  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r136597.

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (136602 => 136603)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-12-05 01:35:55 UTC (rev 136603)
@@ -3502,7 +3502,7 @@
 
     push(@implContent, <<END);
 
-    v8::Handle<v8::Object> wrapper = V8DOMWrapper::instantiateV8Object(creationContext, &info, impl.get());
+    v8::Handle<v8::Object> wrapper = V8DOMWrapper::instantiateDOMWrapper(creationContext, &info, impl.get());
     if (UNLIKELY(wrapper.IsEmpty()))
         return wrapper;
 

Modified: trunk/Source/WebCore/bindings/v8/ScriptProfiler.cpp (136602 => 136603)


--- trunk/Source/WebCore/bindings/v8/ScriptProfiler.cpp	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/ScriptProfiler.cpp	2012-12-05 01:35:55 UTC (rev 136603)
@@ -218,7 +218,7 @@
                 return;
             ASSERT(value->IsObject());
             v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::Cast(value);
-            if (!V8DOMWrapper::domWrapperType(wrapper)->isSubclass(&V8ArrayBufferView::info))
+            if (!toWrapperTypeInfo(wrapper)->isSubclass(&V8ArrayBufferView::info))
                 return;
             m_visitor->visitJSExternalArray(V8ArrayBufferView::toNative(wrapper));
         }

Modified: trunk/Source/WebCore/bindings/v8/V8Collection.h (136602 => 136603)


--- trunk/Source/WebCore/bindings/v8/V8Collection.h	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/V8Collection.h	2012-12-05 01:35:55 UTC (rev 136603)
@@ -63,7 +63,7 @@
 {
     // FIXME: assert object is a collection type
     ASSERT(V8DOMWrapper::maybeDOMWrapper(object));
-    ASSERT(V8DOMWrapper::domWrapperType(object) != &V8Node::info);
+    ASSERT(toWrapperTypeInfo(object) != &V8Node::info);
     Collection* collection = toNativeCollection<Collection>(object);
     AtomicString propertyName = toWebCoreAtomicStringWithNullCheck(name);
     return getV8Object<ItemType>(collection->namedItem(propertyName), creationContext, isolate);
@@ -85,7 +85,7 @@
 {
     // FIXME: Assert that object must be a collection type.
     ASSERT(V8DOMWrapper::maybeDOMWrapper(object));
-    ASSERT(V8DOMWrapper::domWrapperType(object) != &V8Node::info);
+    ASSERT(toWrapperTypeInfo(object) != &V8Node::info);
     Collection* collection = toNativeCollection<Collection>(object);
     return getV8Object<ItemType>(collection->item(index), creationContext, isolate);
 }

Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp (136602 => 136603)


--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp	2012-12-05 01:35:55 UTC (rev 136603)
@@ -104,26 +104,17 @@
     parent->SetHiddenValue(V8HiddenPropertyName::hiddenReferenceName(name, strlen(name)), child);
 }
 
-WrapperTypeInfo* V8DOMWrapper::domWrapperType(v8::Handle<v8::Object> object)
+v8::Local<v8::Object> V8DOMWrapper::instantiateDOMWrapper(v8::Handle<v8::Object> creationContext, WrapperTypeInfo* type, void* impl)
 {
-    ASSERT(V8DOMWrapper::maybeDOMWrapper(object));
-    return toWrapperTypeInfo(object);
-}
-
-v8::Local<v8::Object> V8DOMWrapper::instantiateV8Object(v8::Handle<v8::Object> creationContext, WrapperTypeInfo* type, void* impl)
-{
     V8WrapperInstantiationScope scope(creationContext);
 
     V8PerContextData* perContextData = V8PerContextData::from(scope.context());
-    v8::Local<v8::Object> instance = perContextData ? perContextData->createWrapperFromCache(type) : V8ObjectConstructor::newInstance(type->getTemplate()->GetFunction());
+    v8::Local<v8::Object> wrapper = perContextData ? perContextData->createWrapperFromCache(type) : V8ObjectConstructor::newInstance(type->getTemplate()->GetFunction());
 
-    // Avoid setting the DOM wrapper for failed allocations.
-    if (instance.IsEmpty())
-        return instance;
+    if (type == &V8HTMLDocument::info && !wrapper.IsEmpty())
+        wrapper = V8HTMLDocument::wrapInShadowObject(wrapper, static_cast<Node*>(impl));
 
-    if (type == &V8HTMLDocument::info)
-        instance = V8HTMLDocument::wrapInShadowObject(instance, static_cast<Node*>(impl));
-    return instance;
+    return wrapper;
 }
 
 static bool hasInternalField(v8::Handle<v8::Value> value)
@@ -154,11 +145,11 @@
     if (!hasInternalField(value))
         return false;
 
-    v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(value);
-    ASSERT(object->InternalFieldCount() >= v8DefaultWrapperInternalFieldCount);
-    ASSERT(object->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex));
+    v8::Handle<v8::Object> wrapper = v8::Handle<v8::Object>::Cast(value);
+    ASSERT(wrapper->InternalFieldCount() >= v8DefaultWrapperInternalFieldCount);
+    ASSERT(wrapper->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex));
 
-    WrapperTypeInfo* typeInfo = static_cast<WrapperTypeInfo*>(object->GetAlignedPointerFromInternalField(v8DOMWrapperTypeIndex));
+    WrapperTypeInfo* typeInfo = static_cast<WrapperTypeInfo*>(wrapper->GetAlignedPointerFromInternalField(v8DOMWrapperTypeIndex));
     return typeInfo == type;
 }
 

Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h (136602 => 136603)


--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h	2012-12-05 01:35:55 UTC (rev 136603)
@@ -46,12 +46,6 @@
 
 namespace WebCore {
 
-    class DOMWindow;
-    class EventTarget;
-    class Frame;
-    class V8PerContextData;
-    class WorkerContext;
-
     enum ListenerLookupType {
         ListenerFindOnly,
         ListenerFindOrCreate,
@@ -64,56 +58,54 @@
         static bool maybeDOMWrapper(v8::Handle<v8::Value>);
 #endif
 
-        static void setDOMWrapper(v8::Handle<v8::Object> object, WrapperTypeInfo* type, void* impl)
-        {
-            ASSERT(object->InternalFieldCount() >= 2);
-            ASSERT(impl);
-            ASSERT(type);
-            object->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, impl);
-            object->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, type);
-        }
+        static v8::Local<v8::Object> instantiateDOMWrapper(v8::Handle<v8::Object> creationContext, WrapperTypeInfo*, void*);
 
-        static void clearDOMWrapper(v8::Handle<v8::Object> object, WrapperTypeInfo* type)
-        {
-            ASSERT(object->InternalFieldCount() >= 2);
-            ASSERT(type);
-            object->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, type);
-            object->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, 0);
-        }
+        template<typename T>
+        static inline v8::Persistent<v8::Object> createDOMWrapper(PassRefPtr<T>, WrapperTypeInfo*, v8::Handle<v8::Object>, v8::Isolate* = 0);
+        static inline void setDOMWrapper(v8::Handle<v8::Object>, WrapperTypeInfo*, void*);
+        static inline void clearDOMWrapper(v8::Handle<v8::Object>, WrapperTypeInfo*);
 
-        static v8::Handle<v8::Object> lookupDOMWrapper(v8::Handle<v8::FunctionTemplate> functionTemplate, v8::Handle<v8::Object> object)
-        {
-            return object.IsEmpty() ? object : object->FindInstanceInPrototypeChain(functionTemplate);
-        }
+        static inline v8::Handle<v8::Object> lookupDOMWrapper(v8::Handle<v8::FunctionTemplate>, v8::Handle<v8::Object>);
 
-        static WrapperTypeInfo* domWrapperType(v8::Handle<v8::Object>);
+        // FIXME: This function should probably move to V8EventListenerList.h
+        static PassRefPtr<EventListener> getEventListener(v8::Local<v8::Value>, bool isAttribute, ListenerLookupType);
 
-        static PassRefPtr<EventListener> getEventListener(v8::Local<v8::Value> value, bool isAttribute, ListenerLookupType lookup);
-
-        template<typename T>
-        static v8::Persistent<v8::Object> createDOMWrapper(PassRefPtr<T>, WrapperTypeInfo*, v8::Handle<v8::Object>, v8::Isolate* = 0);
-
-        // Check whether a V8 value is a wrapper of type |classType|.
         static bool isWrapperOfType(v8::Handle<v8::Value>, WrapperTypeInfo*);
 
+        // FIXME: Why is this function in V8DOMWrapper?
         static void setNamedHiddenReference(v8::Handle<v8::Object> parent, const char* name, v8::Handle<v8::Value> child);
 
-        static v8::Local<v8::Object> instantiateV8Object(v8::Handle<v8::Object> creationContext, WrapperTypeInfo*, void*);
-
     private:
-        static void setWrapperClass(void*, v8::Persistent<v8::Object> wrapper)
-        {
-            wrapper.SetWrapperClassId(v8DOMObjectClassId);
-        }
-
-        static void setWrapperClass(Node*, v8::Persistent<v8::Object> wrapper)
-        {
-            wrapper.SetWrapperClassId(v8DOMNodeClassId);
-        }
+        static void setWrapperClass(void*, v8::Persistent<v8::Object> wrapper) { wrapper.SetWrapperClassId(v8DOMObjectClassId); }
+        static void setWrapperClass(Node*, v8::Persistent<v8::Object> wrapper) { wrapper.SetWrapperClassId(v8DOMNodeClassId); }
     };
 
+    inline void V8DOMWrapper::setDOMWrapper(v8::Handle<v8::Object> wrapper, WrapperTypeInfo* type, void* object)
+    {
+        ASSERT(wrapper->InternalFieldCount() >= 2);
+        ASSERT(object);
+        ASSERT(type);
+        wrapper->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, object);
+        wrapper->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, type);
+    }
+
+    inline void V8DOMWrapper::clearDOMWrapper(v8::Handle<v8::Object> wrapper, WrapperTypeInfo* type)
+    {
+        ASSERT(wrapper->InternalFieldCount() >= 2);
+        ASSERT(type);
+        wrapper->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, type);
+        wrapper->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, 0);
+    }
+
+    inline v8::Handle<v8::Object> V8DOMWrapper::lookupDOMWrapper(v8::Handle<v8::FunctionTemplate> functionTemplate, v8::Handle<v8::Object> wrapper)
+    {
+        if (wrapper.IsEmpty())
+            return wrapper;
+        return wrapper->FindInstanceInPrototypeChain(functionTemplate);
+    }
+
     template<typename T>
-    v8::Persistent<v8::Object> V8DOMWrapper::createDOMWrapper(PassRefPtr<T> object, WrapperTypeInfo* type, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate)
+    inline v8::Persistent<v8::Object> V8DOMWrapper::createDOMWrapper(PassRefPtr<T> object, WrapperTypeInfo* type, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate)
     {
         setDOMWrapper(wrapper, type, object.get());
         v8::Persistent<v8::Object> wrapperHandle = v8::Persistent<v8::Object>::New(wrapper);

Modified: trunk/Source/WebCore/bindings/v8/V8GCController.cpp (136602 => 136603)


--- trunk/Source/WebCore/bindings/v8/V8GCController.cpp	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/V8GCController.cpp	2012-12-05 01:35:55 UTC (rev 136603)
@@ -169,7 +169,7 @@
         if (value.IsIndependent())
             return;
 
-        WrapperTypeInfo* type = V8DOMWrapper::domWrapperType(wrapper);
+        WrapperTypeInfo* type = toWrapperTypeInfo(wrapper);
         void* object = toNative(wrapper);
 
         // FIXME: Abstract this if cascade into a WrapperTypeInfo function.

Modified: trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp (136602 => 136603)


--- trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp	2012-12-05 01:35:55 UTC (rev 136603)
@@ -112,7 +112,7 @@
         return v8::Undefined();
 
     v8::Local<v8::Object> eventWrapper = v8::Local<v8::Object>::Cast(args[0]);
-    if (!V8MouseEvent::info.equals(V8DOMWrapper::domWrapperType(eventWrapper)))
+    if (!V8MouseEvent::info.equals(toWrapperTypeInfo(eventWrapper)))
         return v8::Undefined();
 
     Event* event = V8Event::toNative(eventWrapper);

Modified: trunk/Source/WebKit/chromium/ChangeLog (136602 => 136603)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-12-05 01:35:55 UTC (rev 136603)
@@ -1,3 +1,13 @@
+2012-12-04  Adam Barth  <[email protected]>
+
+        [V8] Cleanup style in V8DOMWrapper
+        https://bugs.webkit.org/show_bug.cgi?id=104062
+
+        Reviewed by Kentaro Hara.
+
+        * src/WebBindings.cpp:
+        (WebKit::getRangeImpl):
+
 2012-12-04  Stephen White  <[email protected]>
 
         [chromium] Turn on the new Skia mask blur algorithm.

Modified: trunk/Source/WebKit/chromium/src/WebBindings.cpp (136602 => 136603)


--- trunk/Source/WebKit/chromium/src/WebBindings.cpp	2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebKit/chromium/src/WebBindings.cpp	2012-12-05 01:35:55 UTC (rev 136603)
@@ -211,7 +211,7 @@
 
     V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(object);
     v8::Handle<v8::Object> v8Object(v8NPObject->v8Object);
-    if (!V8Range::info.equals(V8DOMWrapper::domWrapperType(v8Object)))
+    if (!V8Range::info.equals(toWrapperTypeInfo(v8Object)))
         return false;
 
     Range* native = V8Range::HasInstance(v8Object) ? V8Range::toNative(v8Object) : 0;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to