| Index: Source/core/css/CSSValue.cpp | 
| diff --git a/Source/core/css/CSSValue.cpp b/Source/core/css/CSSValue.cpp | 
| index c1bdea3b4f0cca69c139b4e54e54ed009c105017..c0a05115a229baaa0dd67d9d82981a977519703c 100644 | 
| --- a/Source/core/css/CSSValue.cpp | 
| +++ b/Source/core/css/CSSValue.cpp | 
| @@ -85,6 +85,8 @@ private: | 
| String m_cssText; | 
| }; | 
|  | 
| +DEFINE_CSS_VALUE_TYPE_CASTS(TextCloneCSSValue, isTextCloneCSSValue()); | 
| + | 
| bool CSSValue::isImplicitInitialValue() const | 
| { | 
| return m_classType == InitialClass && toCSSInitialValue(this)->isImplicit(); | 
| @@ -147,7 +149,7 @@ bool CSSValue::equals(const CSSValue& other) const | 
| { | 
| if (m_isTextClone) { | 
| ASSERT(isCSSOMSafe()); | 
| -        return static_cast<const TextCloneCSSValue*>(this)->cssText() == other.cssText(); | 
| +        return toTextCloneCSSValue(this)->cssText() == other.cssText(); | 
| } | 
|  | 
| if (m_classType == other.m_classType) { | 
| @@ -235,7 +237,7 @@ String CSSValue::cssText() const | 
| { | 
| if (m_isTextClone) { | 
| ASSERT(isCSSOMSafe()); | 
| -        return static_cast<const TextCloneCSSValue*>(this)->cssText(); | 
| +        return toTextCloneCSSValue(this)->cssText(); | 
| } | 
| ASSERT(!isCSSOMSafe() || isSubtypeExposedToCSSOM()); | 
|  | 
| @@ -333,7 +335,7 @@ void CSSValue::destroy() | 
| { | 
| if (m_isTextClone) { | 
| ASSERT(isCSSOMSafe()); | 
| -        delete static_cast<TextCloneCSSValue*>(this); | 
| +        delete toTextCloneCSSValue(this); | 
| return; | 
| } | 
| ASSERT(!isCSSOMSafe() || isSubtypeExposedToCSSOM()); | 
|  |