Sha256: 4946881b055f2bad7274af823c490e8be1b06cbc78286c15c71f68f006e8cdf4
Contents?: true
Size: 601 Bytes
Versions: 29
Compression:
Stored size: 601 Bytes
Contents
'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; };
Version data entries
29 entries across 19 versions & 7 rubygems