| Index: third_party/WebKit/Source/core/animation/EffectInput.cpp
|
| diff --git a/third_party/WebKit/Source/core/animation/EffectInput.cpp b/third_party/WebKit/Source/core/animation/EffectInput.cpp
|
| index 49038de6848d2b713f742645c3fc755e63816cea..4d60a9b25c48be9ce4897cba04147fad94b607d6 100644
|
| --- a/third_party/WebKit/Source/core/animation/EffectInput.cpp
|
| +++ b/third_party/WebKit/Source/core/animation/EffectInput.cpp
|
| @@ -125,6 +125,7 @@ EffectModel* createEffectModelFromKeyframes(Element& element, const StringKeyfra
|
| }
|
| keyframeEffectModel->forceConversionsToAnimatableValues(element, element.computedStyle());
|
|
|
| + ASSERT(!exceptionState.hadException());
|
| return keyframeEffectModel;
|
| }
|
|
|
| @@ -196,8 +197,10 @@ EffectModel* EffectInput::convertArrayForm(Element& element, const Vector<Dictio
|
|
|
| String timingFunctionString;
|
| if (DictionaryHelper::get(keyframeDictionary, "easing", timingFunctionString)) {
|
| - if (RefPtr<TimingFunction> timingFunction = AnimationInputHelpers::parseTimingFunction(timingFunctionString, &element.document()))
|
| - keyframe->setEasing(timingFunction);
|
| + RefPtr<TimingFunction> timingFunction = AnimationInputHelpers::parseTimingFunction(timingFunctionString, &element.document(), exceptionState);
|
| + if (!timingFunction)
|
| + return nullptr;
|
| + keyframe->setEasing(timingFunction);
|
| }
|
|
|
| Vector<String> keyframeProperties;
|
| @@ -223,8 +226,7 @@ EffectModel* EffectInput::convertArrayForm(Element& element, const Vector<Dictio
|
| keyframes.append(keyframe);
|
| }
|
|
|
| - if (exceptionState.hadException())
|
| - return nullptr;
|
| + ASSERT(!exceptionState.hadException());
|
|
|
| return createEffectModelFromKeyframes(element, keyframes, encounteredCompositableProperty, exceptionState);
|
| }
|
| @@ -236,8 +238,11 @@ EffectModel* EffectInput::convertObjectForm(Element& element, const Dictionary&
|
|
|
| String timingFunctionString;
|
| RefPtr<TimingFunction> timingFunction = nullptr;
|
| - if (DictionaryHelper::get(keyframeDictionary, "easing", timingFunctionString))
|
| - timingFunction = AnimationInputHelpers::parseTimingFunction(timingFunctionString, &element.document());
|
| + if (DictionaryHelper::get(keyframeDictionary, "easing", timingFunctionString)) {
|
| + timingFunction = AnimationInputHelpers::parseTimingFunction(timingFunctionString, &element.document(), exceptionState);
|
| + if (!timingFunction)
|
| + return nullptr;
|
| + }
|
|
|
| ScriptValue scriptValue;
|
| bool frameHasOffset = DictionaryHelper::get(keyframeDictionary, "offset", scriptValue) && !scriptValue.isNull();
|
| @@ -290,6 +295,8 @@ EffectModel* EffectInput::convertObjectForm(Element& element, const Dictionary&
|
|
|
| std::sort(keyframes.begin(), keyframes.end(), compareKeyframes);
|
|
|
| + ASSERT(!exceptionState.hadException());
|
| +
|
| return createEffectModelFromKeyframes(element, keyframes, encounteredCompositableProperty, exceptionState);
|
| }
|
|
|
|
|