Fixed sorting issue with Css Selectors with same specificity.

This commit is contained in:
Nedyalko Nikolov
2016-06-14 15:11:11 +03:00
parent 58be9796b6
commit 9ac40a5acb
4 changed files with 58 additions and 5 deletions

View File

@@ -134,3 +134,36 @@ export function isDataURI(uri: string): boolean {
return firstSegment && firstSegment.indexOf("data:") === 0 && firstSegment.indexOf('base64') >= 0;
}
export function mergeSort(arr, compareFunc) {
if (arr.length < 2) {
return arr;
}
let middle = arr.length / 2;
let left = arr.slice(0, middle);
let right = arr.slice(middle, arr.length);
return merge(mergeSort(left, compareFunc), mergeSort(right, compareFunc), compareFunc);
}
export function merge(left, right, compareFunc) {
let result = [];
while(left.length && right.length) {
if (compareFunc(left[0], right[0]) <= 0) {
result.push(left.shift());
} else {
result.push(right.shift());
}
}
while (left.length) {
result.push(left.shift());
}
while (right.length) {
result.push(right.shift());
}
return result;
}