You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
661 B
31 lines
661 B
var Token = require('../../tokenizer/token');
|
|
|
|
var serializeAll = require('../../writer/one-time').all;
|
|
var serializeRules = require('../../writer/one-time').rules;
|
|
|
|
function removeDuplicateMediaQueries(tokens) {
|
|
var candidates = {};
|
|
var candidate;
|
|
var token;
|
|
var key;
|
|
var i, l;
|
|
|
|
for (i = 0, l = tokens.length; i < l; i++) {
|
|
token = tokens[i];
|
|
if (token[0] != Token.NESTED_BLOCK) {
|
|
continue;
|
|
}
|
|
|
|
key = serializeRules(token[1]) + '%' + serializeAll(token[2]);
|
|
candidate = candidates[key];
|
|
|
|
if (candidate) {
|
|
candidate[2] = [];
|
|
}
|
|
|
|
candidates[key] = token;
|
|
}
|
|
}
|
|
|
|
module.exports = removeDuplicateMediaQueries;
|