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;
}