From: Jakub Pawlowicz Date: Tue, 10 Feb 2015 20:47:48 +0000 (+0000) Subject: Enables 'by selector' advanced merging over media. X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=754348d9b4fb0d8413f68213a803a5f1ac5d89ac;p=clean-css.git Enables 'by selector' advanced merging over media. It works already for merging media blocks, so it's just a matter of enabling it for 'by selector' merging. --- diff --git a/lib/selectors/optimizers/advanced.js b/lib/selectors/optimizers/advanced.js index b2e28365..d738f6bb 100644 --- a/lib/selectors/optimizers/advanced.js +++ b/lib/selectors/optimizers/advanced.js @@ -341,16 +341,11 @@ AdvancedOptimizer.prototype.mergeNonAdjacentBySelector = function (tokens) { var movedProperties = allProperties(movedToken); for (var k = movedPosition - 1; k > targetPosition; k--) { - if (tokens[k].isFlatBlock === false) - continue selectorIterator; - - if (tokens[k].kind == 'selector') { - var traversedProperties = allProperties(tokens[k]); + var traversedProperties = allProperties(tokens[k]); - // traversed then moved as we move selectors towards the start - if (!canReorder(traversedProperties, movedProperties)) - continue selectorIterator; - } + // traversed then moved as we move selectors towards the start + if (!canReorder(traversedProperties, movedProperties)) + continue selectorIterator; } var joinAt = [movedToken.body.length]; diff --git a/test/integration-test.js b/test/integration-test.js index e4adadd0..c1b13835 100644 --- a/test/integration-test.js +++ b/test/integration-test.js @@ -1817,6 +1817,10 @@ title']{display:block}", 'successive selectors': [ 'footer,header{top:1.25em;bottom:1.25em}header{top:2.5em}footer{bottom:2.5em}', 'footer,header{top:1.25em;bottom:1.25em}header{top:2.5em}footer{bottom:2.5em}' + ], + 'over a @media block': [ + '.one{color:red;margin:0}@media{.two{font-weight:700}}.one{font-size:12px}', + '.one{color:red;margin:0;font-size:12px}@media{.two{font-weight:700}}' ] }), 'rerun optimizers': cssContext({