| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- module.exports = function specificity(simpleSelector) {
 
-     var A = 0;
 
-     var B = 0;
 
-     var C = 0;
 
-     simpleSelector.children.each(function walk(node) {
 
-         switch (node.type) {
 
-             case 'SelectorList':
 
-             case 'Selector':
 
-                 node.children.each(walk);
 
-                 break;
 
-             case 'IdSelector':
 
-                 A++;
 
-                 break;
 
-             case 'ClassSelector':
 
-             case 'AttributeSelector':
 
-                 B++;
 
-                 break;
 
-             case 'PseudoClassSelector':
 
-                 switch (node.name.toLowerCase()) {
 
-                     case 'not':
 
-                         node.children.each(walk);
 
-                         break;
 
-                     case 'before':
 
-                     case 'after':
 
-                     case 'first-line':
 
-                     case 'first-letter':
 
-                         C++;
 
-                         break;
 
-                     // TODO: support for :nth-*(.. of <SelectorList>), :matches(), :has()
 
-                     default:
 
-                         B++;
 
-                 }
 
-                 break;
 
-             case 'PseudoElementSelector':
 
-                 C++;
 
-                 break;
 
-             case 'TypeSelector':
 
-                 // ignore universal selector
 
-                 if (node.name.charAt(node.name.length - 1) !== '*') {
 
-                     C++;
 
-                 }
 
-                 break;
 
-         }
 
-     });
 
-     return [A, B, C];
 
- };
 
 
  |