Bug 1374882 - Make TimingParamsFromOptionsUnion member function. r?birtles
MozReview-Commit-ID: 7AQKrHPdzeD
--- a/dom/animation/TimingParams.cpp
+++ b/dom/animation/TimingParams.cpp
@@ -35,29 +35,30 @@ template <>
GetTimingProperties(
const dom::UnrestrictedDoubleOrKeyframeAnimationOptions& aOptions)
{
MOZ_ASSERT(aOptions.IsKeyframeAnimationOptions());
return aOptions.GetAsKeyframeAnimationOptions();
}
template <class OptionsType>
-static TimingParams
-TimingParamsFromOptionsUnion(const OptionsType& aOptions,
- nsIDocument* aDocument,
- ErrorResult& aRv)
+/* static */ TimingParams
+TimingParams::FromOptionsType(const OptionsType& aOptions,
+ nsIDocument* aDocument,
+ ErrorResult& aRv)
{
TimingParams result;
if (aOptions.IsUnrestrictedDouble()) {
double durationInMs = aOptions.GetAsUnrestrictedDouble();
if (durationInMs >= 0) {
result.mDuration.emplace(
StickyTimeDuration::FromMilliseconds(durationInMs));
} else {
aRv.Throw(NS_ERROR_DOM_TYPE_ERR);
+ return result;
}
} else {
const dom::AnimationEffectTimingProperties& timing =
GetTimingProperties(aOptions);
Maybe<StickyTimeDuration> duration =
TimingParams::ParseDuration(timing.mDuration, aRv);
if (aRv.Failed()) {
@@ -90,26 +91,26 @@ TimingParamsFromOptionsUnion(const Optio
}
/* static */ TimingParams
TimingParams::FromOptionsUnion(
const dom::UnrestrictedDoubleOrKeyframeEffectOptions& aOptions,
nsIDocument* aDocument,
ErrorResult& aRv)
{
- return TimingParamsFromOptionsUnion(aOptions, aDocument, aRv);
+ return FromOptionsType(aOptions, aDocument, aRv);
}
/* static */ TimingParams
TimingParams::FromOptionsUnion(
const dom::UnrestrictedDoubleOrKeyframeAnimationOptions& aOptions,
nsIDocument* aDocument,
ErrorResult& aRv)
{
- return TimingParamsFromOptionsUnion(aOptions, aDocument, aRv);
+ return FromOptionsType(aOptions, aDocument, aRv);
}
/* static */ Maybe<ComputedTimingFunction>
TimingParams::ParseEasing(const nsAString& aEasing,
nsIDocument* aDocument,
ErrorResult& aRv)
{
MOZ_ASSERT(aDocument);
--- a/dom/animation/TimingParams.h
+++ b/dom/animation/TimingParams.h
@@ -30,16 +30,21 @@ namespace dom {
class UnrestrictedDoubleOrKeyframeEffectOptions;
class UnrestrictedDoubleOrKeyframeAnimationOptions;
}
struct TimingParams
{
TimingParams() = default;
+ template <class OptionsType>
+ static TimingParams FromOptionsType(
+ const OptionsType& aOptions,
+ nsIDocument* aDocument,
+ ErrorResult& aRv);
static TimingParams FromOptionsUnion(
const dom::UnrestrictedDoubleOrKeyframeEffectOptions& aOptions,
nsIDocument* aDocument, ErrorResult& aRv);
static TimingParams FromOptionsUnion(
const dom::UnrestrictedDoubleOrKeyframeAnimationOptions& aOptions,
nsIDocument* aDocument, ErrorResult& aRv);
// Range-checks and validates an UnrestrictedDoubleOrString or