for (var i = 0, l = tokens.length; i < l; i++) {
var token = tokens[i];
- if (token.kind != 'selector')
+ if (token.kind != 'selector') {
+ lastToken = { selector: null, body: null };
continue;
+ }
if (lastToken.kind == 'selector' && token.metadata.selector == lastToken.metadata.selector) {
var joinAt = [lastToken.body.length];
var movedProperties = extractProperties(movedToken);
for (var k = movedPosition - 1; k > targetPosition; k--) {
- if (tokens[k].kind == 'selector' && unsafeTraversal(tokens[k], movedProperties))
+ if (tokens[k].isFlatBlock === false || tokens[k].kind == 'selector' && unsafeTraversal(tokens[k], movedProperties))
continue selectorIterator;
}
'a{color:red}a{background:red}b{color:red}b{background:red}',
'a,b{color:red;background:red}'
],
- 'when overriden with a browser specific selector': 'a{color:red}::-webkit-scrollbar,a{color:#fff}'
+ 'when overriden with a browser specific selector': 'a{color:red}::-webkit-scrollbar,a{color:#fff}',
+ 'two same selectors over a block': [
+ '.one{color:red}@media print{.two{display:block}}.one{display:none}',
+ '.one{color:red}@media print{.two{display:block}}.one{display:none}'
+ ],
+ 'two same bodies over a block': [
+ '.one{color:red}@media print{.two{display:block}}.three{color:red}',
+ '.one{color:red}@media print{.two{display:block}}.three{color:red}'
+ ]
}),
'same non-adjacent selectors': cssContext({
'with different properties': 'a{color:red;display:block}.one{margin:5px}a{margin:2px}',