Index: Source/core/animation/TimingInput.cpp |
diff --git a/Source/core/animation/TimingInput.cpp b/Source/core/animation/TimingInput.cpp |
index 3c04e6ee44b3d054114e23fda4d8cbc3736847b9..64f510ec37448a4196874fdd40e88e100795259e 100644 |
--- a/Source/core/animation/TimingInput.cpp |
+++ b/Source/core/animation/TimingInput.cpp |
@@ -5,8 +5,8 @@ |
#include "config.h" |
#include "core/animation/TimingInput.h" |
-#include "bindings/core/v8/Dictionary.h" |
#include "core/animation/AnimationInputHelpers.h" |
+#include "core/animation/AnimationTimingProperties.h" |
namespace blink { |
@@ -94,49 +94,22 @@ void TimingInput::setTimingFunction(Timing& timing, const String& timingFunction |
timing.timingFunction = Timing::defaults().timingFunction; |
} |
-Timing TimingInput::convert(const Dictionary& timingInputDictionary) |
+Timing TimingInput::convert(const AnimationTimingProperties& timingInput) |
{ |
Timing result; |
- // FIXME: This method needs to be refactored to handle invalid |
- // null, NaN, Infinity values better. |
- // See: http://www.w3.org/TR/WebIDL/#es-double |
- double startDelay = Timing::defaults().startDelay; |
- DictionaryHelper::get(timingInputDictionary, "delay", startDelay); |
- setStartDelay(result, startDelay); |
- |
- double endDelay = Timing::defaults().endDelay; |
- DictionaryHelper::get(timingInputDictionary, "endDelay", endDelay); |
- setEndDelay(result, endDelay); |
- |
- String fillMode; |
- DictionaryHelper::get(timingInputDictionary, "fill", fillMode); |
- setFillMode(result, fillMode); |
- |
- double iterationStart = Timing::defaults().iterationStart; |
- DictionaryHelper::get(timingInputDictionary, "iterationStart", iterationStart); |
- setIterationStart(result, iterationStart); |
- |
- double iterationCount = Timing::defaults().iterationCount; |
- DictionaryHelper::get(timingInputDictionary, "iterations", iterationCount); |
- setIterationCount(result, iterationCount); |
- |
- double iterationDuration = 0; |
- if (DictionaryHelper::get(timingInputDictionary, "duration", iterationDuration)) { |
- setIterationDuration(result, iterationDuration); |
- } |
- |
- double playbackRate = Timing::defaults().playbackRate; |
- DictionaryHelper::get(timingInputDictionary, "playbackRate", playbackRate); |
- setPlaybackRate(result, playbackRate); |
- |
- String direction; |
- DictionaryHelper::get(timingInputDictionary, "direction", direction); |
- setPlaybackDirection(result, direction); |
- |
- String timingFunctionString; |
- DictionaryHelper::get(timingInputDictionary, "easing", timingFunctionString); |
- setTimingFunction(result, timingFunctionString); |
+ setStartDelay(result, timingInput.delay()); |
+ setEndDelay(result, timingInput.endDelay()); |
+ setFillMode(result, timingInput.fill()); |
+ setIterationStart(result, timingInput.iterationStart()); |
+ setIterationCount(result, timingInput.iterations()); |
+ if (timingInput.duration().isUnrestrictedDouble()) |
+ setIterationDuration(result, timingInput.duration().getAsUnrestrictedDouble()); |
+ else |
+ setIterationDuration(result, -1); |
+ setPlaybackRate(result, timingInput.playbackRate()); |
+ setPlaybackDirection(result, timingInput.direction()); |
+ setTimingFunction(result, timingInput.easing()); |
result.assertValid(); |