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