float SVGAnimationElement::getSimpleDuration(ExceptionState& exceptionState) const
{
    SMILTime duration = simpleDuration();
    if (!duration.isFinite()) {
        exceptionState.throwDOMException(NotSupportedError, "No simple duration defined.");
        return 0;
    }
    return narrowPrecisionToFloat(duration.value());
}
float SVGAnimationElement::calculatePercentForSpline(float percent, unsigned splineIndex) const
{
    ASSERT(calcMode() == CalcModeSpline);
    ASSERT_WITH_SECURITY_IMPLICATION(splineIndex < m_keySplines.size());
    UnitBezier bezier = m_keySplines[splineIndex];
    SMILTime duration = simpleDuration();
    if (!duration.isFinite())
        duration = 100.0;
    return narrowPrecisionToFloat(bezier.solve(percent, solveEpsilon(duration.value())));
}
float SVGAnimationElement::getSimpleDuration(ExceptionCode&) const
{
    return narrowPrecisionToFloat(simpleDuration().value());
}