summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/js/SerializedScriptValue.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/js/SerializedScriptValue.h')
-rw-r--r--WebCore/bindings/js/SerializedScriptValue.h22
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);