diff --git a/Source/WebCore/animation/KeyframeEffect.cpp b/Source/WebCore/animation/KeyframeEffect.cpp
index 173e219..e962c80 100644
--- a/Source/WebCore/animation/KeyframeEffect.cpp
+++ b/Source/WebCore/animation/KeyframeEffect.cpp
@@ -835,11 +835,7 @@
             break;
         }
 
-        auto styleProperties = keyframe.style->immutableCopyIfNeeded();
-        for (unsigned i = 0; i < styleProperties->propertyCount(); ++i)
-            keyframeList.addProperty(styleProperties->propertyAt(i).id());
-
-        auto keyframeRule = StyleRuleKeyframe::create(WTFMove(styleProperties));
+        auto keyframeRule = StyleRuleKeyframe::create(keyframe.style->immutableCopyIfNeeded());
         keyframeValue.setStyle(styleResolver.styleForKeyframe(*m_target, elementStyle, resolutionContext, keyframeRule.get(), keyframeValue));
         keyframeList.insert(WTFMove(keyframeValue));
     }
@@ -1043,7 +1039,6 @@
         Style::loadPendingResources(*toStyle, *document(), m_target.get());
 
     KeyframeList keyframeList(m_keyframesName);
-    keyframeList.addProperty(property);
 
     KeyframeValue fromKeyframeValue(0, RenderStyle::clonePtr(*oldStyle));
     fromKeyframeValue.addProperty(property);
diff --git a/Source/WebCore/rendering/style/KeyframeList.h b/Source/WebCore/rendering/style/KeyframeList.h
index ad87796..46ccf0a 100644
--- a/Source/WebCore/rendering/style/KeyframeList.h
+++ b/Source/WebCore/rendering/style/KeyframeList.h
@@ -88,7 +88,6 @@
     
     void insert(KeyframeValue&&);
     
-    void addProperty(CSSPropertyID prop) { m_properties.add(prop); }
     bool containsProperty(CSSPropertyID prop) const { return m_properties.contains(prop); }
     const HashSet<CSSPropertyID>& properties() const { return m_properties; }
     bool containsAnimatableProperty() const;
