Chromium Code Reviews| Index: Source/bindings/core/v8/ScriptValueSerializer.cpp |
| diff --git a/Source/bindings/core/v8/ScriptValueSerializer.cpp b/Source/bindings/core/v8/ScriptValueSerializer.cpp |
| index 8436a7a0a49b27dda2210c442d715a933de39a92..46fc8fcae94b09e6905530719a01812b0bbbb013 100644 |
| --- a/Source/bindings/core/v8/ScriptValueSerializer.cpp |
| +++ b/Source/bindings/core/v8/ScriptValueSerializer.cpp |
| @@ -496,11 +496,9 @@ ScriptValueSerializer::StateBase* ScriptValueSerializer::AbstractObjectState::se |
| { |
| while (m_index < m_propertyNames->Length()) { |
| if (!m_nameDone) { |
| - v8::Local<v8::Value> propertyName = m_propertyNames->Get(m_index); |
| - if (StateBase* newState = serializer.checkException(this)) |
| - return newState; |
| - if (propertyName.IsEmpty()) |
| - return serializer.handleError(InputError, "Empty property names cannot be cloned.", this); |
| + v8::Local<v8::Value> propertyName; |
| + if (!m_propertyNames->Get(serializer.context(), m_index).ToLocal(&propertyName)) |
| + return serializer.handleError(JSException, "", this); |
|
Yuki
2015/04/07 07:37:57
Can we add any descriptions for the error?
bashi
2015/04/07 08:47:01
Done.
|
| bool hasStringProperty = propertyName->IsString() && v8CallBoolean(composite()->HasRealNamedProperty(serializer.context(), propertyName.As<v8::String>())); |
| if (StateBase* newState = serializer.checkException(this)) |
| return newState; |
| @@ -520,9 +518,9 @@ ScriptValueSerializer::StateBase* ScriptValueSerializer::AbstractObjectState::se |
| if (StateBase* newState = serializer.doSerialize(m_propertyName, this)) |
| return newState; |
| } |
| - v8::Local<v8::Value> value = composite()->Get(m_propertyName); |
| - if (StateBase* newState = serializer.checkException(this)) |
| - return newState; |
| + v8::Local<v8::Value> value; |
| + if (!composite()->Get(serializer.context(), m_propertyName).ToLocal(&value)) |
| + return serializer.handleError(JSException, "", this); |
|
Yuki
2015/04/07 07:37:57
Can we add any descriptions for the error?
bashi
2015/04/07 08:47:01
Done.
|
| m_nameDone = false; |
| m_propertyName.Clear(); |
| ++m_index; |
| @@ -553,7 +551,9 @@ ScriptValueSerializer::StateBase* ScriptValueSerializer::ObjectState::objectDone |
| ScriptValueSerializer::StateBase* ScriptValueSerializer::DenseArrayState::advance(ScriptValueSerializer& serializer) |
| { |
| while (m_arrayIndex < m_arrayLength) { |
| - v8::Local<v8::Value> value = composite().As<v8::Array>()->Get(m_arrayIndex); |
| + v8::Local<v8::Value> value; |
| + if (!composite().As<v8::Array>()->Get(serializer.context(), m_arrayIndex).ToLocal(&value)) |
| + return serializer.handleError(JSException, "", this); |
|
Yuki
2015/04/07 07:37:57
Can we add any descriptions for the error?
bashi
2015/04/07 08:47:01
Done.
|
| m_arrayIndex++; |
| if (StateBase* newState = serializer.checkException(this)) |
| return newState; |