| Index: Source/core/dom/ElementRareData.h | 
| diff --git a/Source/core/dom/ElementRareData.h b/Source/core/dom/ElementRareData.h | 
| index f1d57ba51a1c909c77d51c452cced0e530c1c792..7bba0b61b6ea7e6fbaf9426d22206243c1eae5e5 100644 | 
| --- a/Source/core/dom/ElementRareData.h | 
| +++ b/Source/core/dom/ElementRareData.h | 
| @@ -148,6 +148,7 @@ private: | 
|  | 
| RefPtrWillBeMember<PseudoElement> m_generatedBefore; | 
| RefPtrWillBeMember<PseudoElement> m_generatedAfter; | 
| +    RefPtrWillBeMember<PseudoElement> m_generatedFirstLetter; | 
| RefPtrWillBeMember<PseudoElement> m_backdrop; | 
|  | 
| explicit ElementRareData(RenderObject*); | 
| @@ -173,12 +174,13 @@ inline ElementRareData::~ElementRareData() | 
| #endif | 
| ASSERT(!m_generatedBefore); | 
| ASSERT(!m_generatedAfter); | 
| +    ASSERT(!m_generatedFirstLetter); | 
| ASSERT(!m_backdrop); | 
| } | 
|  | 
| inline bool ElementRareData::hasPseudoElements() const | 
| { | 
| -    return m_generatedBefore || m_generatedAfter || m_backdrop; | 
| +    return m_generatedBefore || m_generatedAfter || m_backdrop || m_generatedFirstLetter; | 
| } | 
|  | 
| inline void ElementRareData::clearPseudoElements() | 
| @@ -186,6 +188,7 @@ inline void ElementRareData::clearPseudoElements() | 
| setPseudoElement(BEFORE, nullptr); | 
| setPseudoElement(AFTER, nullptr); | 
| setPseudoElement(BACKDROP, nullptr); | 
| +    setPseudoElement(FIRST_LETTER, nullptr); | 
| } | 
|  | 
| inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillBeRawPtr<PseudoElement> element) | 
| @@ -206,6 +209,11 @@ inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillB | 
| m_backdrop->dispose(); | 
| m_backdrop = element; | 
| break; | 
| +    case FIRST_LETTER: | 
| +        if (m_generatedFirstLetter) | 
| +            m_generatedFirstLetter->dispose(); | 
| +        m_generatedFirstLetter = element; | 
| +        break; | 
| default: | 
| ASSERT_NOT_REACHED(); | 
| } | 
| @@ -220,6 +228,8 @@ inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const | 
| return m_generatedAfter.get(); | 
| case BACKDROP: | 
| return m_backdrop.get(); | 
| +    case FIRST_LETTER: | 
| +        return m_generatedFirstLetter.get(); | 
| default: | 
| return 0; | 
| } | 
|  |