| Index: third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp b/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp
|
| index 980c001aa355b35782d8dde72bd17f7dbd9de122..e6f2e37f9072936952c76d111cfd49cc0e6f0854 100644
|
| --- a/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp
|
| +++ b/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp
|
| @@ -12,6 +12,40 @@
|
|
|
| namespace blink {
|
|
|
| +namespace {
|
| +
|
| +class StylePropertyMapIterationSource final : public PairIterable<String, StyleValueOrStyleValueSequence>::IterationSource {
|
| +public:
|
| + explicit StylePropertyMapIterationSource(HeapVector<StylePropertyMap::StylePropertyMapEntry> values)
|
| + : m_index(0)
|
| + , m_values(values)
|
| + {
|
| + }
|
| +
|
| + bool next(ScriptState*, String& key, StyleValueOrStyleValueSequence& value, ExceptionState&) override
|
| + {
|
| + if (m_index >= m_values.size())
|
| + return false;
|
| +
|
| + const StylePropertyMap::StylePropertyMapEntry& pair = m_values.at(m_index++);
|
| + key = pair.first;
|
| + value = pair.second;
|
| + return true;
|
| + }
|
| +
|
| + DEFINE_INLINE_VIRTUAL_TRACE()
|
| + {
|
| + visitor->trace(m_values);
|
| + PairIterable<String, StyleValueOrStyleValueSequence>::IterationSource::trace(visitor);
|
| + }
|
| +
|
| +private:
|
| + size_t m_index;
|
| + const HeapVector<StylePropertyMap::StylePropertyMapEntry> m_values;
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| StyleValue* StylePropertyMap::get(const String& propertyName, ExceptionState& exceptionState)
|
| {
|
| CSSPropertyID propertyID = cssPropertyID(propertyName);
|
| @@ -103,4 +137,9 @@ StylePropertyMap::StyleValueVector StylePropertyMap::cssValueToStyleValueVector(
|
| return styleValueVector;
|
| }
|
|
|
| +StylePropertyMap::IterationSource* StylePropertyMap::startIteration(ScriptState*, ExceptionState&)
|
| +{
|
| + return new StylePropertyMapIterationSource(getIterationEntries());
|
| +}
|
| +
|
| } // namespace blink
|
|
|