Spaces:
Runtime error
Runtime error
| ; | |
| 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; | |
| }; | |