diff options
Diffstat (limited to 'WebCore/bindings/js/SerializedScriptValue.h')
-rw-r--r-- | WebCore/bindings/js/SerializedScriptValue.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/WebCore/bindings/js/SerializedScriptValue.h b/WebCore/bindings/js/SerializedScriptValue.h index 57a4a66..347d8f2 100644 --- a/WebCore/bindings/js/SerializedScriptValue.h +++ b/WebCore/bindings/js/SerializedScriptValue.h @@ -34,14 +34,17 @@ typedef const struct OpaqueJSValue* JSValueRef; namespace WebCore { class File; - class SerializedObject; + class FileList; class SerializedArray; + class SerializedFileList; + class SerializedObject; class SharedSerializedData : public RefCounted<SharedSerializedData> { public: virtual ~SharedSerializedData() { } SerializedArray* asArray(); SerializedObject* asObject(); + SerializedFileList* asFileList(); }; class SerializedScriptValue; @@ -56,12 +59,13 @@ namespace WebCore { ObjectType, ArrayType, StringType, - FileType + FileType, + FileListType }; SerializedType type() const { return m_type; } static SerializedScriptValueData serialize(JSC::ExecState*, JSC::JSValue); - JSC::JSValue deserialize(JSC::ExecState*, bool mustCopy) const; + JSC::JSValue deserialize(JSC::ExecState*, JSC::JSGlobalObject*, bool mustCopy) const; ~SerializedScriptValueData() { @@ -81,6 +85,7 @@ namespace WebCore { } explicit SerializedScriptValueData(const File*); + explicit SerializedScriptValueData(const FileList*); explicit SerializedScriptValueData(JSC::JSValue value) : m_type(ImmediateType) @@ -130,6 +135,13 @@ namespace WebCore { return m_sharedData->asArray(); } + SerializedFileList* asFileList() const + { + ASSERT(m_type == FileListType); + ASSERT(m_sharedData); + return m_sharedData->asFileList(); + } + operator bool() const { return m_type != EmptyType; } SerializedScriptValueData release() @@ -184,11 +196,11 @@ namespace WebCore { return m_value.asString(); } - JSC::JSValue deserialize(JSC::ExecState* exec) + JSC::JSValue deserialize(JSC::ExecState* exec, JSC::JSGlobalObject* globalObject) { if (!m_value) return JSC::jsNull(); - return m_value.deserialize(exec, m_mustCopy); + return m_value.deserialize(exec, globalObject, m_mustCopy); } JSValueRef deserialize(JSContextRef, JSValueRef* exception); |