// Helper Methods // -------------- static const AnimationValue* GetZeroValueForUnit(StyleAnimationValue::Unit aUnit) { static const AnimationValue sZeroCoord( StyleAnimationValue(0, StyleAnimationValue::CoordConstructor)); static const AnimationValue sZeroPercent( StyleAnimationValue(0.0f, StyleAnimationValue::PercentConstructor)); static const AnimationValue sZeroFloat( StyleAnimationValue(0.0f, StyleAnimationValue::FloatConstructor)); static const AnimationValue sZeroColor( StyleAnimationValue(NS_RGB(0,0,0), StyleAnimationValue::ColorConstructor)); MOZ_ASSERT(aUnit != StyleAnimationValue::eUnit_Null, "Need non-null unit for a zero value"); switch (aUnit) { case StyleAnimationValue::eUnit_Coord: return &sZeroCoord; case StyleAnimationValue::eUnit_Percent: return &sZeroPercent; case StyleAnimationValue::eUnit_Float: return &sZeroFloat; case StyleAnimationValue::eUnit_Color: return &sZeroColor; default: return nullptr; } }