| Index: Source/core/dom/DOMMatrix.cpp
 | 
| diff --git a/Source/core/dom/DOMMatrix.cpp b/Source/core/dom/DOMMatrix.cpp
 | 
| index 22a9df9770576e61f14d7bf6247da6f41821f074..93839ac1de68b58b57a091221852a8ec46461b7c 100644
 | 
| --- a/Source/core/dom/DOMMatrix.cpp
 | 
| +++ b/Source/core/dom/DOMMatrix.cpp
 | 
| @@ -100,4 +100,37 @@ DOMMatrix* DOMMatrix::scaleNonUniformSelf(double sx, double sy, double sz,
 | 
|      return this;
 | 
|  }
 | 
|  
 | 
| +DOMMatrix* DOMMatrix::rotateSelf(double angle, double ox, double oy)
 | 
| +{
 | 
| +    bool hasTranslation = (ox || oy);
 | 
| +
 | 
| +    if (hasTranslation)
 | 
| +        translateSelf(ox, oy);
 | 
| +
 | 
| +    m_matrix.rotate(angle);
 | 
| +
 | 
| +    if (hasTranslation)
 | 
| +        translateSelf(-ox, -oy);
 | 
| +
 | 
| +    return this;
 | 
| +}
 | 
| +
 | 
| +DOMMatrix* DOMMatrix::rotateFromVectorSelf(double x, double y)
 | 
| +{
 | 
| +    m_matrix.rotateFromVector(x, y);
 | 
| +
 | 
| +    return this;
 | 
| +}
 | 
| +
 | 
| +DOMMatrix* DOMMatrix::rotateAxisAngleSelf(
 | 
| +    double x, double y, double z, double angle)
 | 
| +{
 | 
| +    if (x != 0 || y != 0)
 | 
| +        m_is2D = false;
 | 
| +
 | 
| +    m_matrix.rotate3d(x, y, z, angle);
 | 
| +
 | 
| +    return this;
 | 
| +}
 | 
| +
 | 
|  } // namespace blink
 | 
| 
 |