Title: [114922] trunk/Source/WebCore
Revision
114922
Author
hara...@chromium.org
Date
2012-04-23 11:33:01 -0700 (Mon, 23 Apr 2012)

Log Message

[V8][Refactoring] Remove V8Proxy::toV8()
https://bugs.webkit.org/show_bug.cgi?id=84257

Reviewed by Nate Chapin.

Some constructorCallback()s are using V8Proxy::toV8(),
other constructorCallback()s are directly using setJSWrapperForXXX()
(XXX can be DOMObject, ActiveDOMObject, Node or ActiveNode).
We should unify them.

Considering the fact that V8Proxy::toV8() just supports
XXX=DOMObject and thus is not flexible, replacing V8Proxy::toV8()
with setJSWrapperForDOMObject() would make sense.

No tests. No change in behavior.

* bindings/v8/V8Proxy.h: Removed toV8().

* bindings/scripts/CodeGeneratorV8.pm: Replaced toV8() with setJSWrapperForDOMObject().
(GenerateEventConstructorCallback):
* bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
(WebCore::V8ArrayBuffer::constructorCallback):
* bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
(WebCore::constructWebGLArrayWithArrayBufferArgument):
(WebCore::constructWebGLArray):
* bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
(WebCore::V8DOMFormData::constructorCallback):
* bindings/v8/custom/V8DataViewCustom.cpp: Ditto.
(WebCore::V8DataView::constructorCallback):
* bindings/v8/custom/V8MessageChannelConstructor.cpp: Ditto.
(WebCore::V8MessageChannel::constructorCallback):
* bindings/v8/custom/V8WebKitPointConstructor.cpp: Ditto.
(WebCore::V8WebKitPoint::constructorCallback):

* bindings/scripts/test/V8/V8TestEventConstructor.cpp: Updated run-bindings-tests results.
(WebCore::V8TestEventConstructor::constructorCallback):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (114921 => 114922)


--- trunk/Source/WebCore/ChangeLog	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/ChangeLog	2012-04-23 18:33:01 UTC (rev 114922)
@@ -1,5 +1,44 @@
 2012-04-23  Kentaro Hara  <hara...@chromium.org>
 
+        [V8][Refactoring] Remove V8Proxy::toV8()
+        https://bugs.webkit.org/show_bug.cgi?id=84257
+
+        Reviewed by Nate Chapin.
+
+        Some constructorCallback()s are using V8Proxy::toV8(),
+        other constructorCallback()s are directly using setJSWrapperForXXX()
+        (XXX can be DOMObject, ActiveDOMObject, Node or ActiveNode).
+        We should unify them.
+
+        Considering the fact that V8Proxy::toV8() just supports
+        XXX=DOMObject and thus is not flexible, replacing V8Proxy::toV8()
+        with setJSWrapperForDOMObject() would make sense.
+
+        No tests. No change in behavior.
+
+        * bindings/v8/V8Proxy.h: Removed toV8().
+
+        * bindings/scripts/CodeGeneratorV8.pm: Replaced toV8() with setJSWrapperForDOMObject().
+        (GenerateEventConstructorCallback):
+        * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
+        (WebCore::V8ArrayBuffer::constructorCallback):
+        * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
+        (WebCore::constructWebGLArrayWithArrayBufferArgument):
+        (WebCore::constructWebGLArray):
+        * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
+        (WebCore::V8DOMFormData::constructorCallback):
+        * bindings/v8/custom/V8DataViewCustom.cpp: Ditto.
+        (WebCore::V8DataView::constructorCallback):
+        * bindings/v8/custom/V8MessageChannelConstructor.cpp: Ditto.
+        (WebCore::V8MessageChannel::constructorCallback):
+        * bindings/v8/custom/V8WebKitPointConstructor.cpp: Ditto.
+        (WebCore::V8WebKitPoint::constructorCallback):
+
+        * bindings/scripts/test/V8/V8TestEventConstructor.cpp: Updated run-bindings-tests results.
+        (WebCore::V8TestEventConstructor::constructorCallback):
+
+2012-04-23  Kentaro Hara  <hara...@chromium.org>
+
         [V8] Pass Isolate to toV8() (Part1)
         https://bugs.webkit.org/show_bug.cgi?id=84250
 

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (114921 => 114922)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-04-23 18:33:01 UTC (rev 114922)
@@ -1817,7 +1817,8 @@
     RefPtr<${implClassName}> event = ${implClassName}::create(type, eventInit);
 
     V8DOMWrapper::setDOMWrapper(args.Holder(), &info, event.get());
-    return toV8(event.release(), args.Holder());
+    V8DOMWrapper::setJSWrapperForDOMObject(event.release(), v8::Persistent<v8::Object>::New(args.Holder()));
+    return args.Holder();
 }
 
 bool fill${implClassName}Init(${implClassName}Init& eventInit, const Dictionary& options)

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp (114921 => 114922)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp	2012-04-23 18:33:01 UTC (rev 114922)
@@ -86,7 +86,8 @@
     RefPtr<TestEventConstructor> event = TestEventConstructor::create(type, eventInit);
 
     V8DOMWrapper::setDOMWrapper(args.Holder(), &info, event.get());
-    return toV8(event.release(), args.Holder());
+    V8DOMWrapper::setJSWrapperForDOMObject(event.release(), v8::Persistent<v8::Object>::New(args.Holder()));
+    return args.Holder();
 }
 
 bool fillTestEventConstructorInit(TestEventConstructorInit& eventInit, const Dictionary& options)

Modified: trunk/Source/WebCore/bindings/v8/V8Proxy.h (114921 => 114922)


--- trunk/Source/WebCore/bindings/v8/V8Proxy.h	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/v8/V8Proxy.h	2012-04-23 18:33:01 UTC (rev 114922)
@@ -357,16 +357,6 @@
         MarkIndependent,
         DoNotMarkIndependent
     };
-
-    template <class T> inline v8::Handle<v8::Object> toV8(PassRefPtr<T> object, v8::Local<v8::Object> holder, IndependentMode independent = DoNotMarkIndependent)
-    {
-        v8::Persistent<v8::Object> handle = v8::Persistent<v8::Object>::New(holder);
-        if (independent == MarkIndependent)
-            handle.MarkIndependent();
-        V8DOMWrapper::setJSWrapperForDOMObject(object, handle);
-        return holder;
-    }
-
 }
 
 #endif // V8Proxy_h

Modified: trunk/Source/WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp (114921 => 114922)


--- trunk/Source/WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp	2012-04-23 18:33:01 UTC (rev 114922)
@@ -73,7 +73,8 @@
         return throwError("ArrayBuffer size is not a small enough positive integer.", V8Proxy::RangeError);
     // Transform the holder into a wrapper object for the array.
     V8DOMWrapper::setDOMWrapper(args.Holder(), &info, buffer.get());
-    return toV8(buffer.release(), args.Holder());
+    V8DOMWrapper::setJSWrapperForDOMObject(buffer.release(), v8::Persistent<v8::Object>::New(args.Holder()));
+    return args.Holder();
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h (114921 => 114922)


--- trunk/Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h	2012-04-23 18:33:01 UTC (rev 114922)
@@ -88,7 +88,10 @@
     V8DOMWrapper::setDOMWrapper(args.Holder(), type, array.get());
     if (hasIndexer)
         args.Holder()->SetIndexedPropertiesToExternalArrayData(array.get()->baseAddress(), arrayType, array.get()->length());
-    return toV8(array.release(), args.Holder(), MarkIndependent);
+    v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::New(args.Holder());
+    wrapper.MarkIndependent();
+    V8DOMWrapper::setJSWrapperForDOMObject(array.release(), wrapper);
+    return args.Holder();
 }
 
 // Template function used by the ArrayBufferView*Constructor callbacks.
@@ -117,7 +120,10 @@
         // Do not call SetIndexedPropertiesToExternalArrayData on this
         // object. Not only is there no point from a performance
         // perspective, but doing so causes errors in the subset() case.
-        return toV8(array.release(), args.Holder(), MarkIndependent);
+        v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::New(args.Holder());
+        wrapper.MarkIndependent();
+        V8DOMWrapper::setJSWrapperForDOMObject(array.release(), wrapper);
+        return args.Holder();
     }
 
     // Supported constructors:
@@ -173,7 +179,10 @@
     if (!srcArray.IsEmpty())
         copyElements(args.Holder(), srcArray, 0);
 
-    return toV8(array.release(), args.Holder(), MarkIndependent);
+    v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::New(args.Holder());
+    wrapper.MarkIndependent();
+    V8DOMWrapper::setJSWrapperForDOMObject(array.release(), wrapper);
+    return args.Holder();
 }
 
 template <class CPlusPlusArrayType, class _javascript_WrapperArrayType>

Modified: trunk/Source/WebCore/bindings/v8/custom/V8DOMFormDataCustom.cpp (114921 => 114922)


--- trunk/Source/WebCore/bindings/v8/custom/V8DOMFormDataCustom.cpp	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/v8/custom/V8DOMFormDataCustom.cpp	2012-04-23 18:33:01 UTC (rev 114922)
@@ -56,7 +56,8 @@
     RefPtr<DOMFormData> domFormData = DOMFormData::create(form);
 
     V8DOMWrapper::setDOMWrapper(args.Holder(), &info, domFormData.get());
-    return toV8(domFormData.release(), args.Holder());
+    V8DOMWrapper::setJSWrapperForDOMObject(domFormData.release(), v8::Persistent<v8::Object>::New(args.Holder()));
+    return args.Holder();
 }
 
 v8::Handle<v8::Value> V8DOMFormData::appendCallback(const v8::Arguments& args)

Modified: trunk/Source/WebCore/bindings/v8/custom/V8DataViewCustom.cpp (114921 => 114922)


--- trunk/Source/WebCore/bindings/v8/custom/V8DataViewCustom.cpp	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/v8/custom/V8DataViewCustom.cpp	2012-04-23 18:33:01 UTC (rev 114922)
@@ -49,7 +49,8 @@
         // 'new DataView()' and the call used to construct the cached DataView object.
         RefPtr<DataView> dataView = DataView::create(0);
         V8DOMWrapper::setDOMWrapper(args.Holder(), &info, dataView.get());
-        return toV8(dataView.release(), args.Holder());
+        V8DOMWrapper::setJSWrapperForDOMObject(dataView.release(), v8::Persistent<v8::Object>::New(args.Holder()));
+        return args.Holder();
     }
     if (args[0]->IsNull() || !V8ArrayBuffer::HasInstance(args[0]))
         return V8Proxy::throwTypeError();

Modified: trunk/Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp (114921 => 114922)


--- trunk/Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp	2012-04-23 18:33:01 UTC (rev 114922)
@@ -75,7 +75,8 @@
 
     // Setup the standard wrapper object internal fields.
     V8DOMWrapper::setDOMWrapper(messageChannel, &info, obj.get());
-    return toV8(obj.release(), messageChannel);
+    V8DOMWrapper::setJSWrapperForDOMObject(obj.release(), v8::Persistent<v8::Object>::New(messageChannel));
+    return messageChannel;
 }
 
 

Modified: trunk/Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp (114921 => 114922)


--- trunk/Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp	2012-04-23 18:21:48 UTC (rev 114921)
+++ trunk/Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp	2012-04-23 18:33:01 UTC (rev 114922)
@@ -66,7 +66,8 @@
     }
     RefPtr<WebKitPoint> point = WebKitPoint::create(x, y);
     V8DOMWrapper::setDOMWrapper(args.Holder(), &info, point.get());
-    return toV8(point.release(), args.Holder());
+    V8DOMWrapper::setJSWrapperForDOMObject(point.release(), v8::Persistent<v8::Object>::New(args.Holder()));
+    return args.Holder();
 }
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to