| Index: Source/core/animation/StringKeyframe.cpp
|
| diff --git a/Source/core/animation/StringKeyframe.cpp b/Source/core/animation/StringKeyframe.cpp
|
| index 1c1e99e84a5edbfb878f7c9c9532141e6d821e38..8d5aa3d75aef29d88c0ef98474f6b4c6a793338b 100644
|
| --- a/Source/core/animation/StringKeyframe.cpp
|
| +++ b/Source/core/animation/StringKeyframe.cpp
|
| @@ -21,6 +21,7 @@
|
| #include "core/animation/LengthStyleInterpolation.h"
|
| #include "core/animation/ListSVGInterpolation.h"
|
| #include "core/animation/ListStyleInterpolation.h"
|
| +#include "core/animation/NumberSVGInterpolation.h"
|
| #include "core/animation/PointSVGInterpolation.h"
|
| #include "core/animation/RectSVGInterpolation.h"
|
| #include "core/animation/SVGStrokeDasharrayStyleInterpolation.h"
|
| @@ -480,8 +481,17 @@ PassRefPtrWillBeRawPtr<Interpolation> createSVGInterpolation(SVGPropertyBase* fr
|
| if (AngleSVGInterpolation::canCreateFrom(fromValue) && AngleSVGInterpolation::canCreateFrom(toValue))
|
| return AngleSVGInterpolation::create(fromValue, toValue, attribute);
|
| break;
|
| - case AnimatedIntegerOptionalInteger:
|
| - return IntegerOptionalIntegerSVGInterpolation::create(fromValue, toValue, attribute);
|
| + case AnimatedIntegerOptionalInteger: {
|
| + int min = &attribute->attributeName() == &SVGNames::orderAttr ? 1 : 0;
|
| + return IntegerOptionalIntegerSVGInterpolation::create(fromValue, toValue, attribute, min);
|
| + }
|
| + case AnimatedNumber: {
|
| + SVGNumberNegativeValuesMode negativeValuesMode = &attribute->attributeName() == &SVGNames::pathLengthAttr ? ForbidNegativeNumbers : AllowNegativeNumbers;
|
| + return NumberSVGInterpolation::create(fromValue, toValue, attribute, negativeValuesMode);
|
| + }
|
| + case AnimatedNumberList:
|
| + interpolation = ListSVGInterpolation<NumberSVGInterpolation>::maybeCreate(fromValue, toValue, attribute);
|
| + break;
|
| case AnimatedPoints:
|
| interpolation = ListSVGInterpolation<PointSVGInterpolation>::maybeCreate(fromValue, toValue, attribute);
|
| break;
|
|
|