// This file is automatically generated from CSSProperties.json by the process-css-properties.py script. Do not edit it.

#include "config.h"
#include "StyleChangedAnimatablePropertiesGenerated.h"

#include "StyleChangedAnimatablePropertiesCustom.h"

namespace WebCore {
namespace Style {

class ChangedAnimatablePropertiesFunctions final {
public:
    static void collect_coordinateValueList_aggregates(const auto&, const auto&, CSSPropertiesBitSet& changingProperties)
    {
        changingProperties.m_properties.set(CSSPropertyBackgroundCoordinatedValueListPropertyTestDiscrete);
        changingProperties.m_properties.set(CSSPropertyBackgroundCoordinatedValueListPropertyTestTwo);
    }

    static void collect_coordinateValueList(const auto& a, const auto& b, CSSPropertiesBitSet& changingProperties)
    {
        if (a.aggregates != b.aggregates)
            collect_coordinateValueList_aggregates(a.aggregates, b.aggregates, changingProperties);
    }

    static void collect_level1_level2(const auto& a, const auto& b, CSSPropertiesBitSet& changingProperties)
    {
        if (a.testRenderStyleHasExplicitlySetPolicyAllAuthorOrigin != b.testRenderStyleHasExplicitlySetPolicyAllAuthorOrigin)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleHasExplicitlySetPolicyAllAuthorOrigin);
        if (a.testRenderStyleHasExplicitlySetPolicyAllBorderRadius != b.testRenderStyleHasExplicitlySetPolicyAllBorderRadius)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleHasExplicitlySetPolicyAllBorderRadius);
        if (a.testRenderStyleHasExplicitlySetPolicyValueOnly != b.testRenderStyleHasExplicitlySetPolicyValueOnly)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleHasExplicitlySetPolicyValueOnly);
        if (a.testRenderStyleStorageTwoLevelEnum != b.testRenderStyleStorageTwoLevelEnum)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleStorageTwoLevelEnum);
        if (a.testRenderStyleStorageTwoLevelRaw != b.testRenderStyleStorageTwoLevelRaw)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleStorageTwoLevelRaw);
        if (a.testRenderStyleStorageTwoLevelReference != b.testRenderStyleStorageTwoLevelReference)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleStorageTwoLevelReference);
        if (a.testRenderStyleStorageTwoLevelValue != b.testRenderStyleStorageTwoLevelValue)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleStorageTwoLevelValue);

        if (a.visitedLinkTestColorPropertyWithVisitedLinkSupport != b.visitedLinkTestColorPropertyWithVisitedLinkSupport)
            changingProperties.m_properties.set(CSSPropertyTestColorPropertyWithVisitedLinkSupport);
    }

    static void collect_level1(const auto& a, const auto& b, CSSPropertiesBitSet& changingProperties)
    {
        if (a.level2.ptr() != b.level2.ptr())
            collect_level1_level2(*a.level2, *b.level2, changingProperties);

        if (a.testColor != b.testColor)
            changingProperties.m_properties.set(CSSPropertyTestColor);
        if (a.testColorAllowsTypesAbsolute != b.testColorAllowsTypesAbsolute)
            changingProperties.m_properties.set(CSSPropertyTestColorAllowsTypesAbsolute);
        if (a.testColorPropertyWithVisitedLinkSupport != b.testColorPropertyWithVisitedLinkSupport)
            changingProperties.m_properties.set(CSSPropertyTestColorPropertyWithVisitedLinkSupport);
        if (a.testLogicalPropertyGroupPhysicalHorizontal != b.testLogicalPropertyGroupPhysicalHorizontal)
            changingProperties.m_properties.set(CSSPropertyTestLogicalPropertyGroupPhysicalHorizontal);
        if (a.testLogicalPropertyGroupPhysicalVertical != b.testLogicalPropertyGroupPhysicalVertical)
            changingProperties.m_properties.set(CSSPropertyTestLogicalPropertyGroupPhysicalVertical);
        if (a.testRenderStyleStorageOneLevelEnum != b.testRenderStyleStorageOneLevelEnum)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleStorageOneLevelEnum);
        if (a.testRenderStyleStorageOneLevelRaw != b.testRenderStyleStorageOneLevelRaw)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleStorageOneLevelRaw);
        if (a.testRenderStyleStorageOneLevelReference != b.testRenderStyleStorageOneLevelReference)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleStorageOneLevelReference);
        if (a.testRenderStyleStorageOneLevelValue != b.testRenderStyleStorageOneLevelValue)
            changingProperties.m_properties.set(CSSPropertyTestRenderStyleStorageOneLevelValue);
    }

    static void collect(const auto& a, const auto& b, CSSPropertiesBitSet& changingProperties)
    {
        if (a.coordinateValueList.ptr() != b.coordinateValueList.ptr())
            collect_coordinateValueList(*a.coordinateValueList, *b.coordinateValueList, changingProperties);
        if (a.level1.ptr() != b.level1.ptr())
            collect_level1(*a.level1, *b.level1, changingProperties);
    }

};

void ChangedAnimatablePropertiesGenerated::conservativelyCollectChangedAnimatableProperties(const ComputedStyle& a, const ComputedStyle& b, CSSPropertiesBitSet& changingProperties)
{
    ChangedAnimatablePropertiesFunctions::collect(a, b, changingProperties);
}

} // namespace WebCore
} // namespace Style

