| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- class OldSelector {
 
-   constructor(selector, prefix) {
 
-     this.prefix = prefix
 
-     this.prefixed = selector.prefixed(this.prefix)
 
-     this.regexp = selector.regexp(this.prefix)
 
-     this.prefixeds = selector
 
-       .possible()
 
-       .map(x => [selector.prefixed(x), selector.regexp(x)])
 
-     this.unprefixed = selector.name
 
-     this.nameRegexp = selector.regexp()
 
-   }
 
-   /**
 
-    * Does rule contain an unnecessary prefixed selector
 
-    */
 
-   check(rule) {
 
-     if (!rule.selector.includes(this.prefixed)) {
 
-       return false
 
-     }
 
-     if (!rule.selector.match(this.regexp)) {
 
-       return false
 
-     }
 
-     if (this.isHack(rule)) {
 
-       return false
 
-     }
 
-     return true
 
-   }
 
-   /**
 
-    * Is rule a hack without unprefixed version bottom
 
-    */
 
-   isHack(rule) {
 
-     let index = rule.parent.index(rule) + 1
 
-     let rules = rule.parent.nodes
 
-     while (index < rules.length) {
 
-       let before = rules[index].selector
 
-       if (!before) {
 
-         return true
 
-       }
 
-       if (before.includes(this.unprefixed) && before.match(this.nameRegexp)) {
 
-         return false
 
-       }
 
-       let some = false
 
-       for (let [string, regexp] of this.prefixeds) {
 
-         if (before.includes(string) && before.match(regexp)) {
 
-           some = true
 
-           break
 
-         }
 
-       }
 
-       if (!some) {
 
-         return true
 
-       }
 
-       index += 1
 
-     }
 
-     return true
 
-   }
 
- }
 
- module.exports = OldSelector
 
 
  |