frontend/.pnpm-store/v3/files/f1/a35c2440ffe23f2d240d247b0b0914425c0c770ec341c129abbf21ff2893de4ddc6cb3019fa0193e7494e6b480001ec2057b7a2719b2b0e54c5e839729ae1d

28 lines
600 B
Plaintext

"use strict";
var toPosInt = require("../../number/to-pos-integer")
, callable = require("../../object/valid-callable")
, value = require("../../object/valid-value")
, floor = Math.floor;
module.exports = function (compareFn) {
var length, low, high, middle;
value(this);
callable(compareFn);
length = toPosInt(this.length);
low = 0;
high = length - 1;
while (low <= high) {
middle = floor((low + high) / 2);
if (compareFn(this[middle]) < 0) high = middle - 1;
else low = middle + 1;
}
if (high < 0) return 0;
if (high >= length) return length - 1;
return high;
};