This addresses any version of SVG fallback when one layer is set to none. It's not future proof though since: * it may bo none + sth * it may be an empty linear gradient Once we have #407 in place we'll be able to actually see which URL is a SVG and decide based on that.
There was a bug in restructuring algorithm which allowed properties to be moved too high up by using multi property moves. This commit changes the behavior to drop a multi-property move on a first occasion, i.e. when one of properties with different value is encountered.
So instead of keeping comments in a property list we get them out of every property. It is a bit tricky as comments escaped at the beginning need to be tracked and saved, but ones from the middle or end of the value has to be saved for later (see `innerProperties`) and tracked after the property even if they are moved before it. See tests for a better picture.
We compare property names first then head to comparing a body which adds a stringify step.