/**
* @license
* Based off baseSortedIndex function in Lodash
* Copyright JS Foundation and other contributors
* Released under MIT license
* Based on Underscore.js 1.8.3
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
export default function sortedIndex(array, value, comparator) {
let low = 0;
let high = array.length;
while (low < high) {
let mid = (low + high) >>> 1;
let cmpResult = comparator(value, array[mid]);
if (cmpResult > 0) {
low = mid + 1;
} else if (cmpResult < 0) {
high = mid;
} else {
low = high = mid;
}
}
return high;
}