Modified: trunk/Source/WebCore/ChangeLog (139734 => 139735)
--- trunk/Source/WebCore/ChangeLog 2013-01-15 13:31:49 UTC (rev 139734)
+++ trunk/Source/WebCore/ChangeLog 2013-01-15 13:49:57 UTC (rev 139735)
@@ -1,3 +1,40 @@
+2013-01-14 Kentaro Hara <hara...@chromium.org>
+
+ [V8] Make an Isolate parameter mandatory in SerializedScriptValue methods
+ https://bugs.webkit.org/show_bug.cgi?id=106800
+
+ Reviewed by Adam Barth.
+
+ SerializedScriptValue methods are used by both V8 bindings
+ and WebCore. So they should support both an Isolate-version
+ method and an non-Isolate version method.
+
+ There are two ways to accomplish that:
+
+ [1] Use an optional Isolate parameter.
+
+ [2] Implement two versions and delegate the non-Isolate
+ version method to the Isolate version method.
+
+ I would prefer the approach [2], because I'd like to statically
+ make sure that we never pass a 0 Isolate. If we take the approach
+ [1], we need to insert ASSERT(isolate) here and there.
+
+ This patch implements the approach [2].
+
+ No tests. No change in behavior.
+
+ * bindings/v8/SerializedScriptValue.cpp:
+ (WebCore::SerializedScriptValue::create):
+ (WebCore):
+ (WebCore::SerializedScriptValue::nullValue):
+ (WebCore::SerializedScriptValue::undefinedValue):
+ (WebCore::SerializedScriptValue::booleanValue):
+ (WebCore::SerializedScriptValue::numberValue):
+ (WebCore::SerializedScriptValue::SerializedScriptValue):
+ * bindings/v8/SerializedScriptValue.h:
+ (SerializedScriptValue):
+
2013-01-15 Dongwoo Joshua Im <dw...@samsung.com>
[CSS] Rename the enum, from "ETextAlignLast" to "TextAlignLast"
Modified: trunk/Source/WebCore/bindings/v8/SerializedScriptValue.cpp (139734 => 139735)
--- trunk/Source/WebCore/bindings/v8/SerializedScriptValue.cpp 2013-01-15 13:31:49 UTC (rev 139734)
+++ trunk/Source/WebCore/bindings/v8/SerializedScriptValue.cpp 2013-01-15 13:49:57 UTC (rev 139735)
@@ -2231,14 +2231,21 @@
} // namespace
-PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value,
- MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers,
- bool& didThrow,
- v8::Isolate* isolate)
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value, MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, bool& didThrow)
{
+ return create(value, messagePorts, arrayBuffers, didThrow, v8::Isolate::GetCurrent());
+}
+
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value, MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, bool& didThrow, v8::Isolate* isolate)
+{
return adoptRef(new SerializedScriptValue(value, messagePorts, arrayBuffers, didThrow, isolate));
}
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value)
+{
+ return create(value, v8::Isolate::GetCurrent());
+}
+
PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value, v8::Isolate* isolate)
{
bool didThrow;
@@ -2264,6 +2271,11 @@
return createFromWire(String::adopt(buffer));
}
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(const String& data)
+{
+ return create(data, v8::Isolate::GetCurrent());
+}
+
PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(const String& data, v8::Isolate* isolate)
{
Writer writer(isolate);
@@ -2277,6 +2289,11 @@
return adoptRef(new SerializedScriptValue());
}
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::nullValue()
+{
+ return nullValue(v8::Isolate::GetCurrent());
+}
+
PassRefPtr<SerializedScriptValue> SerializedScriptValue::nullValue(v8::Isolate* isolate)
{
Writer writer(isolate);
@@ -2285,6 +2302,11 @@
return adoptRef(new SerializedScriptValue(wireData));
}
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::undefinedValue()
+{
+ return undefinedValue(v8::Isolate::GetCurrent());
+}
+
PassRefPtr<SerializedScriptValue> SerializedScriptValue::undefinedValue(v8::Isolate* isolate)
{
Writer writer(isolate);
@@ -2293,6 +2315,11 @@
return adoptRef(new SerializedScriptValue(wireData));
}
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::booleanValue(bool value)
+{
+ return booleanValue(value, v8::Isolate::GetCurrent());
+}
+
PassRefPtr<SerializedScriptValue> SerializedScriptValue::booleanValue(bool value, v8::Isolate* isolate)
{
Writer writer(isolate);
@@ -2304,6 +2331,11 @@
return adoptRef(new SerializedScriptValue(wireData));
}
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::numberValue(double value)
+{
+ return numberValue(value, v8::Isolate::GetCurrent());
+}
+
PassRefPtr<SerializedScriptValue> SerializedScriptValue::numberValue(double value, v8::Isolate* isolate)
{
Writer writer(isolate);
@@ -2383,10 +2415,7 @@
return contents.release();
}
-SerializedScriptValue::SerializedScriptValue(v8::Handle<v8::Value> value,
- MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers,
- bool& didThrow,
- v8::Isolate* isolate)
+SerializedScriptValue::SerializedScriptValue(v8::Handle<v8::Value> value, MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, bool& didThrow, v8::Isolate* isolate)
: m_externallyAllocatedMemory(0)
{
didThrow = false;
Modified: trunk/Source/WebCore/bindings/v8/SerializedScriptValue.h (139734 => 139735)
--- trunk/Source/WebCore/bindings/v8/SerializedScriptValue.h 2013-01-15 13:31:49 UTC (rev 139734)
+++ trunk/Source/WebCore/bindings/v8/SerializedScriptValue.h 2013-01-15 13:49:57 UTC (rev 139735)
@@ -52,19 +52,24 @@
// be thrown using v8::ThrowException(), and sets |didThrow|. In this case
// the caller must not invoke any V8 operations until control returns to
// V8. When serialization is successful, |didThrow| is false.
- static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>,
- MessagePortArray*, ArrayBufferArray*,
- bool& didThrow, v8::Isolate* = 0);
- static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, v8::Isolate* = 0);
- static PassRefPtr<SerializedScriptValue> createFromWire(const String& data);
- static PassRefPtr<SerializedScriptValue> createFromWireBytes(const Vector<uint8_t>& data);
- static PassRefPtr<SerializedScriptValue> create(const String& data, v8::Isolate* = 0);
+ static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, MessagePortArray*, ArrayBufferArray*, bool&);
+ static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, MessagePortArray*, ArrayBufferArray*, bool&, v8::Isolate*);
+ static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>);
+ static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, v8::Isolate*);
+ static PassRefPtr<SerializedScriptValue> createFromWire(const String&);
+ static PassRefPtr<SerializedScriptValue> createFromWireBytes(const Vector<uint8_t>&);
+ static PassRefPtr<SerializedScriptValue> create(const String&);
+ static PassRefPtr<SerializedScriptValue> create(const String&, v8::Isolate*);
static PassRefPtr<SerializedScriptValue> create();
- static PassRefPtr<SerializedScriptValue> nullValue(v8::Isolate* = 0);
- static PassRefPtr<SerializedScriptValue> undefinedValue(v8::Isolate* = 0);
- static PassRefPtr<SerializedScriptValue> booleanValue(bool value, v8::Isolate* = 0);
- static PassRefPtr<SerializedScriptValue> numberValue(double value, v8::Isolate* = 0);
+ static PassRefPtr<SerializedScriptValue> nullValue();
+ static PassRefPtr<SerializedScriptValue> nullValue(v8::Isolate*);
+ static PassRefPtr<SerializedScriptValue> undefinedValue();
+ static PassRefPtr<SerializedScriptValue> undefinedValue(v8::Isolate*);
+ static PassRefPtr<SerializedScriptValue> booleanValue(bool);
+ static PassRefPtr<SerializedScriptValue> booleanValue(bool, v8::Isolate*);
+ static PassRefPtr<SerializedScriptValue> numberValue(double);
+ static PassRefPtr<SerializedScriptValue> numberValue(double, v8::Isolate*);
static uint32_t wireFormatVersion();