Reduction attached.
Created attachment 327513 [details] reduction
<rdar://problem/35677991>
Created attachment 327514 [details] reduction
Basically something like calc(100% - 10px) compares inequal to itself. This causes the implicit animation engine think that there is a new value after style recalc and restart the transition. Starting the transition triggers style recalc on zero duration timer which restarts the transition and so on.
Created attachment 327538 [details] patch
Comment on attachment 327538 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=327538&action=review > Source/WebCore/platform/CalculationValue.cpp:130 > + // Maybe Vectors of unique_ptrs should always do deep compare? VectorTypeOperations exists so that we can do that kind of thing. It looks like we never specialized VectorTypeOperations, though, so I’m not entirely sure why we have it! > Source/WebCore/platform/CalculationValue.cpp:134 > + if (!(*a.children()[i] == *b.children()[i])) Could use a != b instead of !(a == b)
> VectorTypeOperations exists so that we can do that kind of thing. It looks > like we never specialized VectorTypeOperations, though, so I’m not entirely > sure why we have it! This more in the realm of VectorComparer. We could easily add a deep compare vector trait if we think that is a good idea. I can't really see any cases where pointer-comparing unique_ptr vectors would be correct. On the other hand it might be surprising that ptr vector and unique_ptr vector behave differently in default comparisons. > Could use a != b instead of !(a == b) Yes, after adding it. I'll keep this patch minimal for easy integration.
Comment on attachment 327538 [details] patch Clearing flags on attachment: 327538 Committed r225141: <https://trac.webkit.org/changeset/225141>
All reviewed patches have been landed. Closing bug.
*** Bug 180733 has been marked as a duplicate of this bug. ***