Build an unlinked baseline JIT
[WebKit-https.git] / Source / WebCore / css / CSSTimingFunctionValue.cpp
1 /*
2  * Copyright (C) 2007, 2013, 2016 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #include "config.h"
27 #include "CSSTimingFunctionValue.h"
28 #include <wtf/text/StringConcatenateNumbers.h>
29
30 namespace WebCore {
31
32 String CSSCubicBezierTimingFunctionValue::customCSSText() const
33 {
34     return makeString("cubic-bezier(", m_x1, ", ", m_y1, ", ", m_x2, ", ", m_y2, ')');
35 }
36
37 bool CSSCubicBezierTimingFunctionValue::equals(const CSSCubicBezierTimingFunctionValue& other) const
38 {
39     return m_x1 == other.m_x1 && m_x2 == other.m_x2 && m_y1 == other.m_y1 && m_y2 == other.m_y2;
40 }
41
42 String CSSStepsTimingFunctionValue::customCSSText() const
43 {
44     const char* position = "";
45     if (m_stepPosition) {
46         switch (m_stepPosition.value()) {
47         case StepsTimingFunction::StepPosition::JumpStart:
48             position = ", jump-start";
49             break;
50         case StepsTimingFunction::StepPosition::JumpNone:
51             position = ", jump-none";
52             break;
53         case StepsTimingFunction::StepPosition::JumpBoth:
54             position = ", jump-both";
55             break;
56         case StepsTimingFunction::StepPosition::Start:
57             position = ", start";
58             break;
59         case StepsTimingFunction::StepPosition::JumpEnd:
60         case StepsTimingFunction::StepPosition::End:
61             break;
62         }
63     }
64     return makeString("steps(", m_steps, position, ')');
65 }
66
67 bool CSSStepsTimingFunctionValue::equals(const CSSStepsTimingFunctionValue& other) const
68 {
69     return m_steps == other.m_steps && m_stepPosition == other.m_stepPosition;
70 }
71
72 String CSSSpringTimingFunctionValue::customCSSText() const
73 {
74     return makeString("spring(", FormattedNumber::fixedPrecision(m_mass), ' ', FormattedNumber::fixedPrecision(m_stiffness), ' ', FormattedNumber::fixedPrecision(m_damping), ' ', FormattedNumber::fixedPrecision(m_initialVelocity), ')');
75 }
76
77 bool CSSSpringTimingFunctionValue::equals(const CSSSpringTimingFunctionValue& other) const
78 {
79     return m_mass == other.m_mass && m_stiffness == other.m_stiffness && m_damping == other.m_damping && m_initialVelocity == other.m_initialVelocity;
80 }
81
82 } // namespace WebCore