in resources/perf.webkit.org/public/v3/commit-set-range-bisector.js [80:110]
static _orderCommitSetsByTimeAndOrderThenDeduplicate(commitSets, repositoriesWithCommitTime, repositoriesWithCommitOrderOnly, repositoriesWithoutOrdering)
{
const sortedCommitSets = commitSets.sort((firstCommitSet, secondCommitSet) => {
for (const repository of repositoriesWithCommitTime) {
const firstCommit = firstCommitSet.commitForRepository(repository);
const secondCommit = secondCommitSet.commitForRepository(repository);
const diff = firstCommit.time() - secondCommit.time();
if (!diff)
continue;
return diff;
}
for (const repository of repositoriesWithCommitOrderOnly) {
const firstCommit = firstCommitSet.commitForRepository(repository);
const secondCommit = secondCommitSet.commitForRepository(repository);
const diff = firstCommit.order() - secondCommit.order();
if (!diff)
continue;
return diff;
}
for (const repository of repositoriesWithoutOrdering) {
const firstCommit = firstCommitSet.commitForRepository(repository);
const secondCommit = secondCommitSet.commitForRepository(repository);
if (firstCommit === secondCommit)
continue;
return firstCommit.revision() < secondCommit.revision() ? -1 : 1;
}
return 0;
});
return sortedCommitSets.filter((currentSet, i) => !i || !currentSet.equals(sortedCommitSets[i - 1]));
}