dist/cssobj.amd.js
function splitSelector (sel, splitter, inBracket) {
  if (sel.indexOf(splitter) < 0) return [sel]
  for (var c, i = 0, n = 0, instr = '', prev = 0, d = []; c = sel.charAt(i); i++) {
    if (instr) {
      if (c == instr && sel.charAt(i-1)!='\\') instr = '';
      continue
    }
    if (c == '"' || c == '\'') instr = c;
    /* istanbul ignore if  */
    if(!inBracket){
      if (c == '(' || c == '[') n++;
      if (c == ')' || c == ']') n--;
    }
    if (!n && c == splitter) d.push(sel.substring(prev, i)), prev = i + 1;
  }
  return d.concat(sel.substring(prev))
}
function splitSelector (sel, splitter, inBracket) {
  if (sel.indexOf(splitter) < 0) return [sel]
  for (var c, i = 0, n = 0, instr = '', prev = 0, d = []; c = sel.charAt(i); i++) {
    if (instr) {
      if (c == instr && sel.charAt(i-1)!='\\') instr = '';
      continue
    }
    if (c == '"' || c == '\'') instr = c;
    /* istanbul ignore if  */
    if(!inBracket){
      if (c == '(' || c == '[') n++;
      if (c == ')' || c == ']') n--;
    }
    if (!n && c == splitter) d.push(sel.substring(prev, i)), prev = i + 1;
  }
  return d.concat(sel.substring(prev))
}
function splitSelector ( sel , splitter , inBracket ) { if ( sel . indexOf ( splitter ) < 0 ) return [ sel ] for ( var c , i = 0 , n = 0 , instr = '' , prev = 0 , d = [ ] ; c = sel . charAt ( i ) ; i ++ ) { if ( instr ) { if ( c == instr && sel . charAt ( i - 1 ) != '\\' ) instr = '' ; continue } if ( c == '"' || c == '\'' ) instr = c ; /* istanbul ignore if  */ if ( ! inBracket ) { if ( c == '(' || c == '[' ) n ++ ; if ( c == ')' || c == ']' ) n -- ; } if ( ! n && c == splitter ) d . push ( sel . substring ( prev , i ) ) , prev = i + 1 ; } return d . concat ( sel . substring ( prev ) ) }
split selector with splitter, aware of css attributes
split selector with splitter aware of css attributes