summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/v8/ScriptArray.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/v8/ScriptArray.cpp')
-rw-r--r--WebCore/bindings/v8/ScriptArray.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/WebCore/bindings/v8/ScriptArray.cpp b/WebCore/bindings/v8/ScriptArray.cpp
index a199a6c..7119b27 100644
--- a/WebCore/bindings/v8/ScriptArray.cpp
+++ b/WebCore/bindings/v8/ScriptArray.cpp
@@ -31,11 +31,11 @@
#include "config.h"
#include "ScriptArray.h"
-#include "ScriptScope.h"
-#include "ScriptState.h"
-
#include "Document.h"
#include "Frame.h"
+#include "ScriptScope.h"
+#include "ScriptState.h"
+#include "SerializedScriptValue.h"
#include "V8Binding.h"
#include "V8Proxy.h"
@@ -57,6 +57,19 @@ bool ScriptArray::set(unsigned index, const ScriptObject& value)
return scope.success();
}
+bool ScriptArray::set(unsigned index, SerializedScriptValue* value)
+{
+ ScriptValue scriptValue = ScriptValue::deserialize(m_scriptState, value);
+ if (scriptValue.hasNoValue()) {
+ ASSERT_NOT_REACHED();
+ return false;
+ }
+
+ ScriptScope scope(m_scriptState);
+ v8Object()->Set(v8::Integer::New(index), scriptValue.v8Value());
+ return scope.success();
+}
+
bool ScriptArray::set(unsigned index, const String& value)
{
ScriptScope scope(m_scriptState);