| Index: Source/core/svg/SVGAngle.cpp | 
| diff --git a/Source/core/svg/SVGAngle.cpp b/Source/core/svg/SVGAngle.cpp | 
| index 7768b9385ceb1bfb713a3631cf552d7a9b04e172..eedb177409e2df0a989b6240c224c18e9295505c 100644 | 
| --- a/Source/core/svg/SVGAngle.cpp | 
| +++ b/Source/core/svg/SVGAngle.cpp | 
| @@ -117,6 +117,8 @@ float SVGAngle::value() const | 
| return grad2deg(m_valueInSpecifiedUnits); | 
| case SVG_ANGLETYPE_RAD: | 
| return rad2deg(m_valueInSpecifiedUnits); | 
| +    case SVG_ANGLETYPE_TURN: | 
| +        return turn2deg(m_valueInSpecifiedUnits); | 
| case SVG_ANGLETYPE_UNSPECIFIED: | 
| case SVG_ANGLETYPE_UNKNOWN: | 
| case SVG_ANGLETYPE_DEG: | 
| @@ -136,6 +138,9 @@ void SVGAngle::setValue(float value) | 
| case SVG_ANGLETYPE_RAD: | 
| m_valueInSpecifiedUnits = deg2rad(value); | 
| break; | 
| +    case SVG_ANGLETYPE_TURN: | 
| +        m_valueInSpecifiedUnits = deg2turn(value); | 
| +        break; | 
| case SVG_ANGLETYPE_UNSPECIFIED: | 
| case SVG_ANGLETYPE_UNKNOWN: | 
| case SVG_ANGLETYPE_DEG: | 
| @@ -168,6 +173,8 @@ static SVGAngle::SVGAngleType stringToAngleType(const CharType*& ptr, const Char | 
| const CharType fourthChar = *ptr++; | 
| if (firstChar == 'g' && secondChar == 'r' && thirdChar == 'a' && fourthChar == 'd') | 
| type = SVGAngle::SVG_ANGLETYPE_GRAD; | 
| +            else if (firstChar == 't' && secondChar == 'u' && thirdChar == 'r' && fourthChar == 'n') | 
| +                type = SVGAngle::SVG_ANGLETYPE_TURN; | 
| } | 
| } | 
|  | 
| @@ -192,6 +199,10 @@ String SVGAngle::valueAsString() const | 
| DEFINE_STATIC_LOCAL(String, gradString, ("grad")); | 
| return String::number(m_valueInSpecifiedUnits) + gradString; | 
| } | 
| +    case SVG_ANGLETYPE_TURN: { | 
| +        DEFINE_STATIC_LOCAL(String, turnString, ("turn")); | 
| +        return String::number(m_valueInSpecifiedUnits) + turnString; | 
| +    } | 
| case SVG_ANGLETYPE_UNSPECIFIED: | 
| case SVG_ANGLETYPE_UNKNOWN: | 
| return String::number(m_valueInSpecifiedUnits); | 
| @@ -263,6 +274,24 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex | 
| return; | 
|  | 
| switch (m_unitType) { | 
| +    case SVG_ANGLETYPE_TURN: | 
| +        switch (unitType) { | 
| +        case SVG_ANGLETYPE_GRAD: | 
| +            m_valueInSpecifiedUnits = turn2grad(m_valueInSpecifiedUnits); | 
| +            break; | 
| +        case SVG_ANGLETYPE_UNSPECIFIED: | 
| +        case SVG_ANGLETYPE_DEG: | 
| +            m_valueInSpecifiedUnits = turn2deg(m_valueInSpecifiedUnits); | 
| +            break; | 
| +        case SVG_ANGLETYPE_RAD: | 
| +            m_valueInSpecifiedUnits = deg2rad(turn2deg(m_valueInSpecifiedUnits)); | 
| +            break; | 
| +        case SVG_ANGLETYPE_TURN: | 
| +        case SVG_ANGLETYPE_UNKNOWN: | 
| +            ASSERT_NOT_REACHED(); | 
| +            break; | 
| +        } | 
| +        break; | 
| case SVG_ANGLETYPE_RAD: | 
| switch (unitType) { | 
| case SVG_ANGLETYPE_GRAD: | 
| @@ -272,6 +301,9 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex | 
| case SVG_ANGLETYPE_DEG: | 
| m_valueInSpecifiedUnits = rad2deg(m_valueInSpecifiedUnits); | 
| break; | 
| +        case SVG_ANGLETYPE_TURN: | 
| +            m_valueInSpecifiedUnits = deg2turn(rad2deg(m_valueInSpecifiedUnits)); | 
| +            break; | 
| case SVG_ANGLETYPE_RAD: | 
| case SVG_ANGLETYPE_UNKNOWN: | 
| ASSERT_NOT_REACHED(); | 
| @@ -287,6 +319,9 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex | 
| case SVG_ANGLETYPE_DEG: | 
| m_valueInSpecifiedUnits = grad2deg(m_valueInSpecifiedUnits); | 
| break; | 
| +        case SVG_ANGLETYPE_TURN: | 
| +            m_valueInSpecifiedUnits = grad2turn(m_valueInSpecifiedUnits); | 
| +            break; | 
| case SVG_ANGLETYPE_GRAD: | 
| case SVG_ANGLETYPE_UNKNOWN: | 
| ASSERT_NOT_REACHED(); | 
| @@ -303,9 +338,12 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex | 
| case SVG_ANGLETYPE_GRAD: | 
| m_valueInSpecifiedUnits = deg2grad(m_valueInSpecifiedUnits); | 
| break; | 
| -        case SVG_ANGLETYPE_UNSPECIFIED: | 
| +        case SVG_ANGLETYPE_TURN: | 
| +            m_valueInSpecifiedUnits = deg2turn(m_valueInSpecifiedUnits); | 
| break; | 
| +        case SVG_ANGLETYPE_UNSPECIFIED: | 
| case SVG_ANGLETYPE_DEG: | 
| +            break; | 
| case SVG_ANGLETYPE_UNKNOWN: | 
| ASSERT_NOT_REACHED(); | 
| break; | 
|  |