Classificando um conjunto de seletores CSS com base na especificidade

Como um conjunto de seletores de CSS pode ser classificado com base na especificidade do CSS em uma função JS?

function SortByCssSpecificity(input_array_of_css_selectors) {
  ...
  return sorted_array_of_css_selectors;
}

questionAnswers(1)

yourAnswerToTheQuestion