diff options
Diffstat (limited to 'WebCore/bindings/v8/SerializedScriptValue.cpp')
-rw-r--r-- | WebCore/bindings/v8/SerializedScriptValue.cpp | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/WebCore/bindings/v8/SerializedScriptValue.cpp b/WebCore/bindings/v8/SerializedScriptValue.cpp index 50ac86b..8e91920 100644 --- a/WebCore/bindings/v8/SerializedScriptValue.cpp +++ b/WebCore/bindings/v8/SerializedScriptValue.cpp @@ -38,13 +38,13 @@ #include "FileList.h" #include "ImageData.h" #include "SharedBuffer.h" +#include "V8Binding.h" #include "V8Blob.h" #include "V8File.h" #include "V8FileList.h" #include "V8ImageData.h" #include "V8Proxy.h" -#include <v8.h> #include <wtf/Assertions.h> #include <wtf/RefCounted.h> #include <wtf/Vector.h> @@ -1012,6 +1012,52 @@ private: } // namespace +void SerializedScriptValue::deserializeAndSetProperty(v8::Handle<v8::Object> object, const char* propertyName, + v8::PropertyAttribute attribute, SerializedScriptValue* value) +{ + if (!value) + return; + v8::Handle<v8::Value> deserialized = value->deserialize(); + object->ForceSet(v8::String::NewSymbol(propertyName), deserialized, attribute); +} + +PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value, bool& didThrow) +{ + return adoptRef(new SerializedScriptValue(value, didThrow)); +} + +PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value) +{ + bool didThrow; + return adoptRef(new SerializedScriptValue(value, didThrow)); +} + +PassRefPtr<SerializedScriptValue> SerializedScriptValue::createFromWire(String data) +{ + return adoptRef(new SerializedScriptValue(data, WireData)); +} + +PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(String data) +{ + return adoptRef(new SerializedScriptValue(data, StringValue)); +} + +PassRefPtr<SerializedScriptValue> SerializedScriptValue::create() +{ + return adoptRef(new SerializedScriptValue()); +} + +PassRefPtr<SerializedScriptValue> SerializedScriptValue::release() +{ + RefPtr<SerializedScriptValue> result = adoptRef(new SerializedScriptValue(m_data, WireData)); + m_data = String(); + return result.release(); +} + +SerializedScriptValue::SerializedScriptValue() +{ +} + SerializedScriptValue::SerializedScriptValue(v8::Handle<v8::Value> value, bool& didThrow) { didThrow = false; |