Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1129)

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp

Issue 1773813007: blink: Rename modules/ method to prefix with get when they collide. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clash-modules: rebase-fixes Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "bindings/core/v8/ScriptValueSerializer.h" 5 #include "bindings/core/v8/ScriptValueSerializer.h"
6 6
7 #include "bindings/core/v8/V8ArrayBuffer.h" 7 #include "bindings/core/v8/V8ArrayBuffer.h"
8 #include "bindings/core/v8/V8ArrayBufferView.h" 8 #include "bindings/core/v8/V8ArrayBufferView.h"
9 #include "bindings/core/v8/V8Blob.h" 9 #include "bindings/core/v8/V8Blob.h"
10 #include "bindings/core/v8/V8CompositorProxy.h" 10 #include "bindings/core/v8/V8CompositorProxy.h"
(...skipping 1774 matching lines...) Expand 10 before | Expand all | Expand 10 after
1785 } 1785 }
1786 1786
1787 bool SerializedScriptValueReader::readRegExp(v8::Local<v8::Value>* value) 1787 bool SerializedScriptValueReader::readRegExp(v8::Local<v8::Value>* value)
1788 { 1788 {
1789 v8::Local<v8::Value> pattern; 1789 v8::Local<v8::Value> pattern;
1790 if (!readString(&pattern)) 1790 if (!readString(&pattern))
1791 return false; 1791 return false;
1792 uint32_t flags; 1792 uint32_t flags;
1793 if (!doReadUint32(&flags)) 1793 if (!doReadUint32(&flags))
1794 return false; 1794 return false;
1795 if (!v8::RegExp::New(scriptState()->context(), pattern.As<v8::String>(), sta tic_cast<v8::RegExp::Flags>(flags)).ToLocal(value)) 1795 if (!v8::RegExp::New(getScriptState()->context(), pattern.As<v8::String>(), static_cast<v8::RegExp::Flags>(flags)).ToLocal(value))
1796 return false; 1796 return false;
1797 return true; 1797 return true;
1798 } 1798 }
1799 1799
1800 bool SerializedScriptValueReader::readBlob(v8::Local<v8::Value>* value, bool isI ndexed) 1800 bool SerializedScriptValueReader::readBlob(v8::Local<v8::Value>* value, bool isI ndexed)
1801 { 1801 {
1802 if (m_version < 3) 1802 if (m_version < 3)
1803 return false; 1803 return false;
1804 Blob* blob = nullptr; 1804 Blob* blob = nullptr;
1805 if (isIndexed) { 1805 if (isIndexed) {
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1959 BlobDataHandleMap::const_iterator it = m_blobDataHandles.find(uuid); 1959 BlobDataHandleMap::const_iterator it = m_blobDataHandles.find(uuid);
1960 if (it != m_blobDataHandles.end()) { 1960 if (it != m_blobDataHandles.end()) {
1961 // make assertions about type and size? 1961 // make assertions about type and size?
1962 return it->value; 1962 return it->value;
1963 } 1963 }
1964 return BlobDataHandle::create(uuid, type, size); 1964 return BlobDataHandle::create(uuid, type, size);
1965 } 1965 }
1966 1966
1967 v8::Local<v8::Value> ScriptValueDeserializer::deserialize() 1967 v8::Local<v8::Value> ScriptValueDeserializer::deserialize()
1968 { 1968 {
1969 v8::Isolate* isolate = m_reader.scriptState()->isolate(); 1969 v8::Isolate* isolate = m_reader.getScriptState()->isolate();
1970 if (!m_reader.readVersion(m_version) || m_version > SerializedScriptValue::w ireFormatVersion) 1970 if (!m_reader.readVersion(m_version) || m_version > SerializedScriptValue::w ireFormatVersion)
1971 return v8::Null(isolate); 1971 return v8::Null(isolate);
1972 m_reader.setVersion(m_version); 1972 m_reader.setVersion(m_version);
1973 v8::EscapableHandleScope scope(isolate); 1973 v8::EscapableHandleScope scope(isolate);
1974 while (!m_reader.isEof()) { 1974 while (!m_reader.isEof()) {
1975 if (!doDeserialize()) 1975 if (!doDeserialize())
1976 return v8::Null(isolate); 1976 return v8::Null(isolate);
1977 } 1977 }
1978 if (stackDepth() != 1 || m_openCompositeReferenceStack.size()) 1978 if (stackDepth() != 1 || m_openCompositeReferenceStack.size())
1979 return v8::Null(isolate); 1979 return v8::Null(isolate);
1980 v8::Local<v8::Value> result = scope.Escape(element(0)); 1980 v8::Local<v8::Value> result = scope.Escape(element(0));
1981 return result; 1981 return result;
1982 } 1982 }
1983 1983
1984 bool ScriptValueDeserializer::newSparseArray(uint32_t) 1984 bool ScriptValueDeserializer::newSparseArray(uint32_t)
1985 { 1985 {
1986 v8::Local<v8::Array> array = v8::Array::New(m_reader.scriptState()->isolate( ), 0); 1986 v8::Local<v8::Array> array = v8::Array::New(m_reader.getScriptState()->isola te(), 0);
1987 openComposite(array); 1987 openComposite(array);
1988 return true; 1988 return true;
1989 } 1989 }
1990 1990
1991 bool ScriptValueDeserializer::newDenseArray(uint32_t length) 1991 bool ScriptValueDeserializer::newDenseArray(uint32_t length)
1992 { 1992 {
1993 v8::Local<v8::Array> array = v8::Array::New(m_reader.scriptState()->isolate( ), length); 1993 v8::Local<v8::Array> array = v8::Array::New(m_reader.getScriptState()->isola te(), length);
1994 openComposite(array); 1994 openComposite(array);
1995 return true; 1995 return true;
1996 } 1996 }
1997 1997
1998 bool ScriptValueDeserializer::newMap() 1998 bool ScriptValueDeserializer::newMap()
1999 { 1999 {
2000 v8::Local<v8::Map> map = v8::Map::New(m_reader.scriptState()->isolate()); 2000 v8::Local<v8::Map> map = v8::Map::New(m_reader.getScriptState()->isolate());
2001 openComposite(map); 2001 openComposite(map);
2002 return true; 2002 return true;
2003 } 2003 }
2004 2004
2005 bool ScriptValueDeserializer::newSet() 2005 bool ScriptValueDeserializer::newSet()
2006 { 2006 {
2007 v8::Local<v8::Set> set = v8::Set::New(m_reader.scriptState()->isolate()); 2007 v8::Local<v8::Set> set = v8::Set::New(m_reader.getScriptState()->isolate());
2008 openComposite(set); 2008 openComposite(set);
2009 return true; 2009 return true;
2010 } 2010 }
2011 2011
2012 bool ScriptValueDeserializer::consumeTopOfStack(v8::Local<v8::Value>* object) 2012 bool ScriptValueDeserializer::consumeTopOfStack(v8::Local<v8::Value>* object)
2013 { 2013 {
2014 if (stackDepth() < 1) 2014 if (stackDepth() < 1)
2015 return false; 2015 return false;
2016 *object = element(stackDepth() - 1); 2016 *object = element(stackDepth() - 1);
2017 pop(1); 2017 pop(1);
2018 return true; 2018 return true;
2019 } 2019 }
2020 2020
2021 bool ScriptValueDeserializer::newObject() 2021 bool ScriptValueDeserializer::newObject()
2022 { 2022 {
2023 v8::Local<v8::Object> object = v8::Object::New(m_reader.scriptState()->isola te()); 2023 v8::Local<v8::Object> object = v8::Object::New(m_reader.getScriptState()->is olate());
2024 if (object.IsEmpty()) 2024 if (object.IsEmpty())
2025 return false; 2025 return false;
2026 openComposite(object); 2026 openComposite(object);
2027 return true; 2027 return true;
2028 } 2028 }
2029 2029
2030 bool ScriptValueDeserializer::completeObject(uint32_t numProperties, v8::Local<v 8::Value>* value) 2030 bool ScriptValueDeserializer::completeObject(uint32_t numProperties, v8::Local<v 8::Value>* value)
2031 { 2031 {
2032 v8::Local<v8::Object> object; 2032 v8::Local<v8::Object> object;
2033 if (m_version > 0) { 2033 if (m_version > 0) {
2034 v8::Local<v8::Value> composite; 2034 v8::Local<v8::Value> composite;
2035 if (!closeComposite(&composite)) 2035 if (!closeComposite(&composite))
2036 return false; 2036 return false;
2037 object = composite.As<v8::Object>(); 2037 object = composite.As<v8::Object>();
2038 } else { 2038 } else {
2039 object = v8::Object::New(m_reader.scriptState()->isolate()); 2039 object = v8::Object::New(m_reader.getScriptState()->isolate());
2040 } 2040 }
2041 if (object.IsEmpty()) 2041 if (object.IsEmpty())
2042 return false; 2042 return false;
2043 return initializeObject(object, numProperties, value); 2043 return initializeObject(object, numProperties, value);
2044 } 2044 }
2045 2045
2046 bool ScriptValueDeserializer::completeSparseArray(uint32_t numProperties, uint32 _t length, v8::Local<v8::Value>* value) 2046 bool ScriptValueDeserializer::completeSparseArray(uint32_t numProperties, uint32 _t length, v8::Local<v8::Value>* value)
2047 { 2047 {
2048 v8::Local<v8::Array> array; 2048 v8::Local<v8::Array> array;
2049 if (m_version > 0) { 2049 if (m_version > 0) {
2050 v8::Local<v8::Value> composite; 2050 v8::Local<v8::Value> composite;
2051 if (!closeComposite(&composite)) 2051 if (!closeComposite(&composite))
2052 return false; 2052 return false;
2053 array = composite.As<v8::Array>(); 2053 array = composite.As<v8::Array>();
2054 } else { 2054 } else {
2055 array = v8::Array::New(m_reader.scriptState()->isolate()); 2055 array = v8::Array::New(m_reader.getScriptState()->isolate());
2056 } 2056 }
2057 if (array.IsEmpty()) 2057 if (array.IsEmpty())
2058 return false; 2058 return false;
2059 return initializeObject(array, numProperties, value); 2059 return initializeObject(array, numProperties, value);
2060 } 2060 }
2061 2061
2062 bool ScriptValueDeserializer::completeDenseArray(uint32_t numProperties, uint32_ t length, v8::Local<v8::Value>* value) 2062 bool ScriptValueDeserializer::completeDenseArray(uint32_t numProperties, uint32_ t length, v8::Local<v8::Value>* value)
2063 { 2063 {
2064 v8::Local<v8::Array> array; 2064 v8::Local<v8::Array> array;
2065 if (m_version > 0) { 2065 if (m_version > 0) {
2066 v8::Local<v8::Value> composite; 2066 v8::Local<v8::Value> composite;
2067 if (!closeComposite(&composite)) 2067 if (!closeComposite(&composite))
2068 return false; 2068 return false;
2069 array = composite.As<v8::Array>(); 2069 array = composite.As<v8::Array>();
2070 } 2070 }
2071 if (array.IsEmpty()) 2071 if (array.IsEmpty())
2072 return false; 2072 return false;
2073 if (!initializeObject(array, numProperties, value)) 2073 if (!initializeObject(array, numProperties, value))
2074 return false; 2074 return false;
2075 if (length > stackDepth()) 2075 if (length > stackDepth())
2076 return false; 2076 return false;
2077 v8::Local<v8::Context> context = m_reader.scriptState()->context(); 2077 v8::Local<v8::Context> context = m_reader.getScriptState()->context();
2078 for (unsigned i = 0, stackPos = stackDepth() - length; i < length; i++, stac kPos++) { 2078 for (unsigned i = 0, stackPos = stackDepth() - length; i < length; i++, stac kPos++) {
2079 v8::Local<v8::Value> elem = element(stackPos); 2079 v8::Local<v8::Value> elem = element(stackPos);
2080 if (!elem->IsUndefined()) { 2080 if (!elem->IsUndefined()) {
2081 if (!v8CallBoolean(array->CreateDataProperty(context, i, elem))) 2081 if (!v8CallBoolean(array->CreateDataProperty(context, i, elem)))
2082 return false; 2082 return false;
2083 } 2083 }
2084 } 2084 }
2085 pop(length); 2085 pop(length);
2086 return true; 2086 return true;
2087 } 2087 }
2088 2088
2089 bool ScriptValueDeserializer::completeMap(uint32_t length, v8::Local<v8::Value>* value) 2089 bool ScriptValueDeserializer::completeMap(uint32_t length, v8::Local<v8::Value>* value)
2090 { 2090 {
2091 ASSERT(m_version > 0); 2091 ASSERT(m_version > 0);
2092 v8::Local<v8::Value> composite; 2092 v8::Local<v8::Value> composite;
2093 if (!closeComposite(&composite)) 2093 if (!closeComposite(&composite))
2094 return false; 2094 return false;
2095 v8::Local<v8::Map> map = composite.As<v8::Map>(); 2095 v8::Local<v8::Map> map = composite.As<v8::Map>();
2096 if (map.IsEmpty()) 2096 if (map.IsEmpty())
2097 return false; 2097 return false;
2098 v8::Local<v8::Context> context = m_reader.scriptState()->context(); 2098 v8::Local<v8::Context> context = m_reader.getScriptState()->context();
2099 ASSERT(length % 2 == 0); 2099 ASSERT(length % 2 == 0);
2100 for (unsigned i = stackDepth() - length; i + 1 < stackDepth(); i += 2) { 2100 for (unsigned i = stackDepth() - length; i + 1 < stackDepth(); i += 2) {
2101 v8::Local<v8::Value> key = element(i); 2101 v8::Local<v8::Value> key = element(i);
2102 v8::Local<v8::Value> val = element(i + 1); 2102 v8::Local<v8::Value> val = element(i + 1);
2103 if (map->Set(context, key, val).IsEmpty()) 2103 if (map->Set(context, key, val).IsEmpty())
2104 return false; 2104 return false;
2105 } 2105 }
2106 pop(length); 2106 pop(length);
2107 *value = map; 2107 *value = map;
2108 return true; 2108 return true;
2109 } 2109 }
2110 2110
2111 bool ScriptValueDeserializer::completeSet(uint32_t length, v8::Local<v8::Value>* value) 2111 bool ScriptValueDeserializer::completeSet(uint32_t length, v8::Local<v8::Value>* value)
2112 { 2112 {
2113 ASSERT(m_version > 0); 2113 ASSERT(m_version > 0);
2114 v8::Local<v8::Value> composite; 2114 v8::Local<v8::Value> composite;
2115 if (!closeComposite(&composite)) 2115 if (!closeComposite(&composite))
2116 return false; 2116 return false;
2117 v8::Local<v8::Set> set = composite.As<v8::Set>(); 2117 v8::Local<v8::Set> set = composite.As<v8::Set>();
2118 if (set.IsEmpty()) 2118 if (set.IsEmpty())
2119 return false; 2119 return false;
2120 v8::Local<v8::Context> context = m_reader.scriptState()->context(); 2120 v8::Local<v8::Context> context = m_reader.getScriptState()->context();
2121 for (unsigned i = stackDepth() - length; i < stackDepth(); i++) { 2121 for (unsigned i = stackDepth() - length; i < stackDepth(); i++) {
2122 v8::Local<v8::Value> key = element(i); 2122 v8::Local<v8::Value> key = element(i);
2123 if (set->Add(context, key).IsEmpty()) 2123 if (set->Add(context, key).IsEmpty())
2124 return false; 2124 return false;
2125 } 2125 }
2126 pop(length); 2126 pop(length);
2127 *value = set; 2127 *value = set;
2128 return true; 2128 return true;
2129 } 2129 }
2130 2130
2131 void ScriptValueDeserializer::pushObjectReference(const v8::Local<v8::Value>& ob ject) 2131 void ScriptValueDeserializer::pushObjectReference(const v8::Local<v8::Value>& ob ject)
2132 { 2132 {
2133 m_objectPool.append(object); 2133 m_objectPool.append(object);
2134 } 2134 }
2135 2135
2136 bool ScriptValueDeserializer::tryGetTransferredMessagePort(uint32_t index, v8::L ocal<v8::Value>* object) 2136 bool ScriptValueDeserializer::tryGetTransferredMessagePort(uint32_t index, v8::L ocal<v8::Value>* object)
2137 { 2137 {
2138 if (!m_transferredMessagePorts) 2138 if (!m_transferredMessagePorts)
2139 return false; 2139 return false;
2140 if (index >= m_transferredMessagePorts->size()) 2140 if (index >= m_transferredMessagePorts->size())
2141 return false; 2141 return false;
2142 v8::Local<v8::Object> creationContext = m_reader.scriptState()->context()->G lobal(); 2142 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->context() ->Global();
2143 *object = toV8(m_transferredMessagePorts->at(index).get(), creationContext, m_reader.scriptState()->isolate()); 2143 *object = toV8(m_transferredMessagePorts->at(index).get(), creationContext, m_reader.getScriptState()->isolate());
2144 return !object->IsEmpty(); 2144 return !object->IsEmpty();
2145 } 2145 }
2146 2146
2147 bool ScriptValueDeserializer::tryGetTransferredArrayBuffer(uint32_t index, v8::L ocal<v8::Value>* object) 2147 bool ScriptValueDeserializer::tryGetTransferredArrayBuffer(uint32_t index, v8::L ocal<v8::Value>* object)
2148 { 2148 {
2149 if (!m_arrayBufferContents) 2149 if (!m_arrayBufferContents)
2150 return false; 2150 return false;
2151 if (index >= m_arrayBuffers.size()) 2151 if (index >= m_arrayBuffers.size())
2152 return false; 2152 return false;
2153 v8::Local<v8::Value> result = m_arrayBuffers.at(index); 2153 v8::Local<v8::Value> result = m_arrayBuffers.at(index);
2154 if (result.IsEmpty()) { 2154 if (result.IsEmpty()) {
2155 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(m_arrayBufferCont ents->at(index)); 2155 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(m_arrayBufferCont ents->at(index));
2156 v8::Isolate* isolate = m_reader.scriptState()->isolate(); 2156 v8::Isolate* isolate = m_reader.getScriptState()->isolate();
2157 v8::Local<v8::Object> creationContext = m_reader.scriptState()->context( )->Global(); 2157 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global();
2158 result = toV8(buffer.get(), creationContext, isolate); 2158 result = toV8(buffer.get(), creationContext, isolate);
2159 if (result.IsEmpty()) 2159 if (result.IsEmpty())
2160 return false; 2160 return false;
2161 m_arrayBuffers[index] = result; 2161 m_arrayBuffers[index] = result;
2162 } 2162 }
2163 *object = result; 2163 *object = result;
2164 return true; 2164 return true;
2165 } 2165 }
2166 2166
2167 bool ScriptValueDeserializer::tryGetTransferredImageBitmap(uint32_t index, v8::L ocal<v8::Value>* object) 2167 bool ScriptValueDeserializer::tryGetTransferredImageBitmap(uint32_t index, v8::L ocal<v8::Value>* object)
2168 { 2168 {
2169 if (!m_imageBitmapContents) 2169 if (!m_imageBitmapContents)
2170 return false; 2170 return false;
2171 if (index >= m_imageBitmaps.size()) 2171 if (index >= m_imageBitmaps.size())
2172 return false; 2172 return false;
2173 v8::Local<v8::Value> result = m_imageBitmaps.at(index); 2173 v8::Local<v8::Value> result = m_imageBitmaps.at(index);
2174 if (result.IsEmpty()) { 2174 if (result.IsEmpty()) {
2175 RefPtrWillBeRawPtr<ImageBitmap> bitmap = ImageBitmap::create(m_imageBitm apContents->at(index)); 2175 RefPtrWillBeRawPtr<ImageBitmap> bitmap = ImageBitmap::create(m_imageBitm apContents->at(index));
2176 v8::Isolate* isolate = m_reader.scriptState()->isolate(); 2176 v8::Isolate* isolate = m_reader.getScriptState()->isolate();
2177 v8::Local<v8::Object> creationContext = m_reader.scriptState()->context( )->Global(); 2177 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global();
2178 result = toV8(bitmap.get(), creationContext, isolate); 2178 result = toV8(bitmap.get(), creationContext, isolate);
2179 if (result.IsEmpty()) 2179 if (result.IsEmpty())
2180 return false; 2180 return false;
2181 m_imageBitmaps[index] = result; 2181 m_imageBitmaps[index] = result;
2182 } 2182 }
2183 *object = result; 2183 *object = result;
2184 return true; 2184 return true;
2185 } 2185 }
2186 2186
2187 bool ScriptValueDeserializer::tryGetTransferredSharedArrayBuffer(uint32_t index, v8::Local<v8::Value>* object) 2187 bool ScriptValueDeserializer::tryGetTransferredSharedArrayBuffer(uint32_t index, v8::Local<v8::Value>* object)
2188 { 2188 {
2189 ASSERT(RuntimeEnabledFeatures::sharedArrayBufferEnabled()); 2189 ASSERT(RuntimeEnabledFeatures::sharedArrayBufferEnabled());
2190 if (!m_arrayBufferContents) 2190 if (!m_arrayBufferContents)
2191 return false; 2191 return false;
2192 if (index >= m_arrayBuffers.size()) 2192 if (index >= m_arrayBuffers.size())
2193 return false; 2193 return false;
2194 v8::Local<v8::Value> result = m_arrayBuffers.at(index); 2194 v8::Local<v8::Value> result = m_arrayBuffers.at(index);
2195 if (result.IsEmpty()) { 2195 if (result.IsEmpty()) {
2196 RefPtr<DOMSharedArrayBuffer> buffer = DOMSharedArrayBuffer::create(m_arr ayBufferContents->at(index)); 2196 RefPtr<DOMSharedArrayBuffer> buffer = DOMSharedArrayBuffer::create(m_arr ayBufferContents->at(index));
2197 v8::Isolate* isolate = m_reader.scriptState()->isolate(); 2197 v8::Isolate* isolate = m_reader.getScriptState()->isolate();
2198 v8::Local<v8::Object> creationContext = m_reader.scriptState()->context( )->Global(); 2198 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global();
2199 result = toV8(buffer.get(), creationContext, isolate); 2199 result = toV8(buffer.get(), creationContext, isolate);
2200 if (result.IsEmpty()) 2200 if (result.IsEmpty())
2201 return false; 2201 return false;
2202 m_arrayBuffers[index] = result; 2202 m_arrayBuffers[index] = result;
2203 } 2203 }
2204 *object = result; 2204 *object = result;
2205 return true; 2205 return true;
2206 } 2206 }
2207 2207
2208 bool ScriptValueDeserializer::tryGetObjectFromObjectReference(uint32_t reference , v8::Local<v8::Value>* object) 2208 bool ScriptValueDeserializer::tryGetObjectFromObjectReference(uint32_t reference , v8::Local<v8::Value>* object)
2209 { 2209 {
2210 if (reference >= m_objectPool.size()) 2210 if (reference >= m_objectPool.size())
2211 return false; 2211 return false;
2212 *object = m_objectPool[reference]; 2212 *object = m_objectPool[reference];
2213 return object; 2213 return object;
2214 } 2214 }
2215 2215
2216 uint32_t ScriptValueDeserializer::objectReferenceCount() 2216 uint32_t ScriptValueDeserializer::objectReferenceCount()
2217 { 2217 {
2218 return m_objectPool.size(); 2218 return m_objectPool.size();
2219 } 2219 }
2220 2220
2221 bool ScriptValueDeserializer::initializeObject(v8::Local<v8::Object> object, uin t32_t numProperties, v8::Local<v8::Value>* value) 2221 bool ScriptValueDeserializer::initializeObject(v8::Local<v8::Object> object, uin t32_t numProperties, v8::Local<v8::Value>* value)
2222 { 2222 {
2223 unsigned length = 2 * numProperties; 2223 unsigned length = 2 * numProperties;
2224 if (length > stackDepth()) 2224 if (length > stackDepth())
2225 return false; 2225 return false;
2226 v8::Local<v8::Context> context = m_reader.scriptState()->context(); 2226 v8::Local<v8::Context> context = m_reader.getScriptState()->context();
2227 for (unsigned i = stackDepth() - length; i < stackDepth(); i += 2) { 2227 for (unsigned i = stackDepth() - length; i < stackDepth(); i += 2) {
2228 v8::Local<v8::Value> propertyName = element(i); 2228 v8::Local<v8::Value> propertyName = element(i);
2229 v8::Local<v8::Value> propertyValue = element(i + 1); 2229 v8::Local<v8::Value> propertyValue = element(i + 1);
2230 bool result = false; 2230 bool result = false;
2231 if (propertyName->IsString()) 2231 if (propertyName->IsString())
2232 result = v8CallBoolean(object->CreateDataProperty(context, propertyN ame.As<v8::String>(), propertyValue)); 2232 result = v8CallBoolean(object->CreateDataProperty(context, propertyN ame.As<v8::String>(), propertyValue));
2233 else if (propertyName->IsUint32()) 2233 else if (propertyName->IsUint32())
2234 result = v8CallBoolean(object->CreateDataProperty(context, propertyN ame.As<v8::Uint32>()->Value(), propertyValue)); 2234 result = v8CallBoolean(object->CreateDataProperty(context, propertyN ame.As<v8::Uint32>()->Value(), propertyValue));
2235 else 2235 else
2236 ASSERT_NOT_REACHED(); 2236 ASSERT_NOT_REACHED();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2276 return false; 2276 return false;
2277 uint32_t objectReference = m_openCompositeReferenceStack[m_openCompositeRefe renceStack.size() - 1]; 2277 uint32_t objectReference = m_openCompositeReferenceStack[m_openCompositeRefe renceStack.size() - 1];
2278 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 1); 2278 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 1);
2279 if (objectReference >= m_objectPool.size()) 2279 if (objectReference >= m_objectPool.size())
2280 return false; 2280 return false;
2281 *object = m_objectPool[objectReference]; 2281 *object = m_objectPool[objectReference];
2282 return true; 2282 return true;
2283 } 2283 }
2284 2284
2285 } // namespace blink 2285 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698