Improve LRU cache behavior in SelectorFlagsMap
This code used to insert duplicate entries to avoid expensive shuffling of the LRU cache. With uluru this is no longer necessary, because reordering the cache is cheap.
Now it uses the `LRUCache::find` method from uluru 0.2 to update entries in-place. This should increase cache hits by eliminating unnecessary evictions.
This PR also updates `arrayvec` because `uluru` depends on it, and `immeta` because it depends on `arrayvec`.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they don't change behavior
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19512)
<!-- Reviewable:end -->
This code used to insert duplicate entries to avoid expensive shuffling
of the LRU cache. With uluru this is no longer necessary, because
reordering the cache is cheap.
Now it uses the `LRUCache::find` method from uluru 0.2 to update entries
in-place. This should improve the hit rate, because it eliminates
unnecessary evictions.
style: Add internal overflow-clip-box-block/-inline properties and make overflow-clip-box a shorthand.
These are the changes from bug 1422839. First commit is reviewed by me, the second is a fixup to that.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19497)
<!-- Reviewable:end -->
According to the spec, this parser should follow what we do for
@font_face rule, so we use the same type to parse the input, instead of
using the parser of their specified values.
This allows us to report errors in functions that want to just parse a
single CSS value, rather than a value for a particular property declaration.
The one value type that we need to support for now is <color> value parsing
errors, so just add formatting/support for that.
style: Cleanup Angle parsing.
This PR also contains a functional change, allowing to parse unitless zero angles in hue-rotate().
See the links and the comments for why.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19462)
<!-- Reviewable:end -->
style: Don't waste an allocation when failing to parse a CSSParserColor.
I see that allocation show up in the profiles, and it makes sense, because
system colors and such are common in Firefox, and they're just wasting it.
Note that the clone() added is refcounted.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19455)
<!-- Reviewable:end -->
I see that allocation show up in the profiles, and it makes sense, because
system colors and such are common in Firefox, and they're just wasting it.
Note that the clone() added is refcounted.