Title: [133719] trunk/Source/WebCore
Revision
133719
Author
[email protected]
Date
2012-11-06 20:59:58 -0800 (Tue, 06 Nov 2012)

Log Message

[V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
https://bugs.webkit.org/show_bug.cgi?id=101422

Reviewed by Kentaro Hara.

This patch is another incremental step towards the patch in Bug 10110.
In this step, we unify setJSWrapperForDOMObject and
setJSWrapperForDOMNode.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateToV8Converters):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::wrap):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::wrap):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::wrap):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::wrap):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::wrap):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::wrap):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::wrap):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::wrap):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::wrap):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::constructorCallback):
(WebCore::V8TestNode::wrapSlow):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::wrap):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::wrap):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::get):
(DOMDataStore):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::setJSWrapperPrivate):
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (133718 => 133719)


--- trunk/Source/WebCore/ChangeLog	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/ChangeLog	2012-11-07 04:59:58 UTC (rev 133719)
@@ -1,3 +1,60 @@
+2012-11-06  Adam Barth  <[email protected]>
+
+        [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
+        https://bugs.webkit.org/show_bug.cgi?id=101422
+
+        Reviewed by Kentaro Hara.
+
+        This patch is another incremental step towards the patch in Bug 10110.
+        In this step, we unify setJSWrapperForDOMObject and
+        setJSWrapperForDOMNode.
+
+        * bindings/scripts/CodeGeneratorV8.pm:
+        (GenerateHeader):
+        (GenerateNormalAttrGetter):
+        (GenerateConstructorCallback):
+        (GenerateNamedConstructorCallback):
+        (GenerateToV8Converters):
+        * bindings/scripts/test/V8/V8Float64Array.h:
+        (WebCore::V8Float64Array::wrap):
+        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
+        (WebCore::V8TestActiveDOMObject::wrap):
+        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
+        (WebCore::V8TestCustomNamedGetter::wrap):
+        * bindings/scripts/test/V8/V8TestEventConstructor.h:
+        (WebCore::V8TestEventConstructor::wrap):
+        * bindings/scripts/test/V8/V8TestEventTarget.h:
+        (WebCore::V8TestEventTarget::wrap):
+        * bindings/scripts/test/V8/V8TestException.h:
+        (WebCore::V8TestException::wrap):
+        * bindings/scripts/test/V8/V8TestInterface.h:
+        (WebCore::V8TestInterface::wrap):
+        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
+        (WebCore::V8TestMediaQueryListListener::wrap):
+        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
+        (WebCore::V8TestNamedConstructor::wrap):
+        * bindings/scripts/test/V8/V8TestNode.cpp:
+        (WebCore::V8TestNode::constructorCallback):
+        (WebCore::V8TestNode::wrapSlow):
+        * bindings/scripts/test/V8/V8TestObj.cpp:
+        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
+        * bindings/scripts/test/V8/V8TestObj.h:
+        (WebCore::V8TestObj::wrap):
+        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
+        (WebCore::V8TestSerializedScriptValueInterface::wrap):
+        * bindings/v8/DOMDataStore.cpp:
+        (WebCore::DOMDataStore::current):
+        * bindings/v8/DOMDataStore.h:
+        (WebCore::DOMDataStore::get):
+        (DOMDataStore):
+        * bindings/v8/V8DOMWrapper.cpp:
+        * bindings/v8/V8DOMWrapper.h:
+        (V8DOMWrapper):
+        (WebCore::V8DOMWrapper::setJSWrapperPrivate):
+        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
+        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
+        (WebCore::v8HTMLImageElementConstructorCallback):
+
 2012-11-06  Ken Buchanan  <[email protected]>
 
         Crash due to column span under button element

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-11-07 04:59:58 UTC (rev 133719)
@@ -502,8 +502,7 @@
 v8::Handle<v8::Object> ${className}::wrap(${nativeType}* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
 END
-    my $domMapFunction = GetDomMapFunction($dataNode, $interfaceName, "isolate");
-    my $getCachedWrapper = IsNodeSubType($dataNode) ? "V8DOMWrapper::getCachedWrapper(impl)" : "${domMapFunction}.get(impl)";
+    my $getCachedWrapper = IsNodeSubType($dataNode) ? "V8DOMWrapper::getCachedWrapper(impl)" : "DOMDataStore::current(isolate)->get(impl)";
     push(@headerContent, <<END);
         v8::Handle<v8::Object> wrapper = $getCachedWrapper;
         if (!wrapper.IsEmpty())
@@ -1037,8 +1036,7 @@
         # Check for a wrapper in the wrapper cache. If there is one, we know that a hidden reference has already
         # been created. If we don't find a wrapper, we create both a wrapper and a hidden reference.
         push(@implContentDecls, "    RefPtr<$returnType> result = ${getterString};\n");
-        my $domMapFunction = GetDomMapFunction($dataNode, $interfaceName, "info.GetIsolate()");
-        push(@implContentDecls, "    v8::Handle<v8::Value> wrapper = result.get() ? ${domMapFunction}.get(result.get()) : v8Undefined();\n");
+        push(@implContentDecls, "    v8::Handle<v8::Value> wrapper = result.get() ? v8::Handle<v8::Value>(DOMDataStore::current(info.GetIsolate())->get(result.get())) : v8Undefined();\n");
         push(@implContentDecls, "    if (wrapper.IsEmpty()) {\n");
         push(@implContentDecls, "        wrapper = toV8(result.get(), info.Holder(), info.GetIsolate());\n");
         push(@implContentDecls, "        if (!wrapper.IsEmpty())\n");
@@ -1942,11 +1940,10 @@
         push(@implContent, "        goto fail;\n");
     }
 
-    my $DOMObject = GetDomMapName($dataNode, $implClassName);
     push(@implContent, <<END);
 
     V8DOMWrapper::setDOMWrapper(wrapper, &info, impl.get());
-    V8DOMWrapper::setJSWrapperFor${DOMObject}(impl.release(), wrapper, args.GetIsolate());
+    V8DOMWrapper::setJSWrapperForDOMObject(impl.release(), wrapper, args.GetIsolate());
     return wrapper;
 END
 
@@ -2134,11 +2131,10 @@
         push(@implContent, "        goto fail;\n");
     }
 
-    my $DOMObject = GetDomMapName($dataNode, $implClassName);
     push(@implContent, <<END);
 
     V8DOMWrapper::setDOMWrapper(wrapper, &V8${implClassName}Constructor::info, impl.get());
-    V8DOMWrapper::setJSWrapperFor${DOMObject}(impl.release(), wrapper, args.GetIsolate());
+    V8DOMWrapper::setJSWrapperForDOMObject(impl.release(), wrapper, args.GetIsolate());
     return wrapper;
 END
 
@@ -3402,7 +3398,6 @@
     my $className = shift;
     my $nativeType = shift;
 
-    my $domMapName = GetDomMapName($dataNode, $interfaceName);
     my $wrapSlowArgumentType = GetPassRefPtrType($nativeType);
     my $baseType = BaseInterfaceName($dataNode);
 
@@ -3463,7 +3458,7 @@
         return wrapper;
 
     installPerContextProperties(wrapper, impl.get());
-    v8::Persistent<v8::Object> wrapperHandle = V8DOMWrapper::setJSWrapperFor${domMapName}(impl, wrapper, isolate);
+    v8::Persistent<v8::Object> wrapperHandle = V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapper, isolate);
     if (!hasDependentLifetime)
         wrapperHandle.MarkIndependent();
     return wrapper;
@@ -3471,24 +3466,6 @@
 END
 }
 
-sub GetDomMapFunction
-{
-    my $dataNode = shift;
-    my $interfaceName = shift;
-    my $getIsolate = shift;
-
-    return "get" . GetDomMapName($dataNode, $interfaceName) . "Map(" . $getIsolate . ")";
-}
-
-sub GetDomMapName
-{
-    my $dataNode = shift;
-    my $type = shift;
-
-    return "DOMNode" if IsNodeSubType($dataNode);
-    return "DOMObject";
-}
-
 sub GetNativeTypeForConversions
 {
     my $dataNode = shift;

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -55,7 +55,7 @@
 
 v8::Handle<v8::Object> V8Float64Array::wrap(Float64Array* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8Float64Array::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -55,7 +55,7 @@
 
 v8::Handle<v8::Object> V8TestActiveDOMObject::wrap(TestActiveDOMObject* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestActiveDOMObject::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -54,7 +54,7 @@
 
 v8::Handle<v8::Object> V8TestCustomNamedGetter::wrap(TestCustomNamedGetter* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestCustomNamedGetter::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -55,7 +55,7 @@
 
 v8::Handle<v8::Object> V8TestEventConstructor::wrap(TestEventConstructor* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestEventConstructor::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -56,7 +56,7 @@
 
 v8::Handle<v8::Object> V8TestEventTarget::wrap(TestEventTarget* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestEventTarget::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestException.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestException.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestException.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -53,7 +53,7 @@
 
 v8::Handle<v8::Object> V8TestException::wrap(TestException* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestException::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -58,7 +58,7 @@
 
 v8::Handle<v8::Object> V8TestInterface::wrap(TestInterface* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestInterface::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -53,7 +53,7 @@
 
 v8::Handle<v8::Object> V8TestMediaQueryListListener::wrap(TestMediaQueryListListener* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestMediaQueryListListener::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -60,7 +60,7 @@
 
 v8::Handle<v8::Object> V8TestNamedConstructor::wrap(TestNamedConstructor* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestNamedConstructor::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp	2012-11-07 04:59:58 UTC (rev 133719)
@@ -54,7 +54,7 @@
     v8::Handle<v8::Object> wrapper = args.Holder();
 
     V8DOMWrapper::setDOMWrapper(wrapper, &info, impl.get());
-    V8DOMWrapper::setJSWrapperForDOMNode(impl.release(), wrapper, args.GetIsolate());
+    V8DOMWrapper::setJSWrapperForDOMObject(impl.release(), wrapper, args.GetIsolate());
     return wrapper;
 }
 
@@ -135,7 +135,7 @@
         return wrapper;
 
     installPerContextProperties(wrapper, impl.get());
-    v8::Persistent<v8::Object> wrapperHandle = V8DOMWrapper::setJSWrapperForDOMNode(impl, wrapper, isolate);
+    v8::Persistent<v8::Object> wrapperHandle = V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapper, isolate);
     if (!hasDependentLifetime)
         wrapperHandle.MarkIndependent();
     return wrapper;

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp	2012-11-07 04:59:58 UTC (rev 133719)
@@ -101,7 +101,7 @@
     INC_STATS("DOM.TestObj.readOnlyTestObjAttr._get");
     TestObj* imp = V8TestObj::toNative(info.Holder());
     RefPtr<TestObj> result = imp->readOnlyTestObjAttr();
-    v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap(info.GetIsolate()).get(result.get()) : v8Undefined();
+    v8::Handle<v8::Value> wrapper = result.get() ? v8::Handle<v8::Value>(DOMDataStore::current(info.GetIsolate())->get(result.get())) : v8Undefined();
     if (wrapper.IsEmpty()) {
         wrapper = toV8(result.get(), info.Holder(), info.GetIsolate());
         if (!wrapper.IsEmpty())

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -59,7 +59,7 @@
 
 v8::Handle<v8::Object> V8TestObj::wrap(TestObj* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestObj::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -56,7 +56,7 @@
 
 v8::Handle<v8::Object> V8TestSerializedScriptValueInterface::wrap(TestSerializedScriptValueInterface* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
 {
-        v8::Handle<v8::Object> wrapper = getDOMObjectMap(isolate).get(impl);
+        v8::Handle<v8::Object> wrapper = DOMDataStore::current(isolate)->get(impl);
         if (!wrapper.IsEmpty())
             return wrapper;
     return V8TestSerializedScriptValueInterface::wrapSlow(impl, creationContext, isolate);

Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp (133718 => 133719)


--- trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-11-07 04:59:58 UTC (rev 133719)
@@ -70,7 +70,7 @@
 DOMDataStore* DOMDataStore::current(v8::Isolate* isolate)
 {
     DEFINE_STATIC_LOCAL(DOMDataStore, defaultStore, (MainWorld));
-    V8PerIsolateData* data = ""
+    V8PerIsolateData* data = "" ? V8PerIsolateData::from(isolate) : V8PerIsolateData::current();
     if (UNLIKELY(!!data->domDataStore()))
         return data->domDataStore();
     V8DOMWindowShell* context = V8DOMWindowShell::getEntered();

Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/v8/DOMDataStore.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -59,6 +59,9 @@
 
     static DOMDataStore* current(v8::Isolate*);
 
+    inline v8::Handle<v8::Object> get(void* object) const { return m_domObjectMap->get(object); }
+    inline v8::Handle<v8::Object> get(Node* object) const { return m_domNodeMap->get(object); }
+
     DOMWrapperMap<Node>& domNodeMap() { return *m_domNodeMap; }
     DOMWrapperMap<void>& domObjectMap() { return *m_domObjectMap; }
 

Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp (133718 => 133719)


--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp	2012-11-07 04:59:58 UTC (rev 133719)
@@ -68,15 +68,6 @@
 
 namespace WebCore {
 
-v8::Persistent<v8::Object> V8DOMWrapper::setJSWrapperForDOMNode(PassRefPtr<Node> node, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate)
-{
-    v8::Persistent<v8::Object> wrapperHandle = v8::Persistent<v8::Object>::New(wrapper);
-    ASSERT(maybeDOMWrapper(wrapperHandle));
-    wrapperHandle.SetWrapperClassId(v8DOMNodeClassId);
-    getDOMNodeMap(isolate).set(node.leakRef(), wrapperHandle);
-    return wrapperHandle;
-}
-
 void V8DOMWrapper::setNamedHiddenReference(v8::Handle<v8::Object> parent, const char* name, v8::Handle<v8::Value> child)
 {
     ASSERT(name);

Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h (133718 => 133719)


--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h	2012-11-07 04:59:58 UTC (rev 133719)
@@ -103,7 +103,6 @@
 
         template<typename T>
         static v8::Persistent<v8::Object> setJSWrapperForDOMObject(PassRefPtr<T>, v8::Handle<v8::Object>, v8::Isolate* = 0);
-        static v8::Persistent<v8::Object> setJSWrapperForDOMNode(PassRefPtr<Node>, v8::Handle<v8::Object>, v8::Isolate* = 0);
 
         static bool isValidDOMObject(v8::Handle<v8::Value>);
 
@@ -131,6 +130,19 @@
             DOMWrapperMap<Node>& domNodeMap = store->domNodeMap();
             return domNodeMap.get(node);
         }
+
+    private:
+        static void setJSWrapperPrivate(void* object, v8::Persistent<v8::Object> wrapper, v8::Isolate* isolate)
+        {
+            wrapper.SetWrapperClassId(v8DOMObjectClassId);
+            getDOMObjectMap(isolate).set(object, wrapper);
+        }
+
+        static void setJSWrapperPrivate(Node* object, v8::Persistent<v8::Object> wrapper, v8::Isolate* isolate)
+        {
+            wrapper.SetWrapperClassId(v8DOMNodeClassId);
+            getDOMNodeMap(isolate).set(object, wrapper);
+        }
     };
 
     template<typename T>
@@ -138,8 +150,7 @@
     {
         v8::Persistent<v8::Object> wrapperHandle = v8::Persistent<v8::Object>::New(wrapper);
         ASSERT(maybeDOMWrapper(wrapperHandle));
-        wrapperHandle.SetWrapperClassId(v8DOMObjectClassId);
-        getDOMObjectMap(isolate).set(object.leakRef(), wrapperHandle);
+        setJSWrapperPrivate(object.leakRef(), wrapperHandle, isolate);
         return wrapperHandle;
     }
 

Modified: trunk/Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.cpp (133718 => 133719)


--- trunk/Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.cpp	2012-11-07 04:56:50 UTC (rev 133718)
+++ trunk/Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.cpp	2012-11-07 04:59:58 UTC (rev 133719)
@@ -80,7 +80,7 @@
     RefPtr<HTMLImageElement> image = HTMLImageElement::createForJSConstructor(document, optionalWidth, optionalHeight);
     v8::Handle<v8::Object> wrapper = args.Holder();
     V8DOMWrapper::setDOMWrapper(wrapper, &V8HTMLImageElementConstructor::info, image.get());
-    V8DOMWrapper::setJSWrapperForDOMNode(image.release(), wrapper);
+    V8DOMWrapper::setJSWrapperForDOMObject(image.release(), wrapper);
     return wrapper;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to