Bump to v4.7.0.

This commit is contained in:
John-David Dalton
2016-03-25 23:47:49 -07:00
parent 501d6b1d41
commit 18d0f1d873
419 changed files with 4042 additions and 2066 deletions

View File

@@ -1,17 +1,13 @@
var toInteger = require('./toInteger'),
var baseRepeat = require('./_baseRepeat'),
toInteger = require('./toInteger'),
toString = require('./toString');
/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeFloor = Math.floor;
/**
* Repeats the given string `n` times.
*
* @static
* @memberOf _
* @since 3.0.0
* @category String
* @param {string} [string=''] The string to repeat.
* @param {number} [n=0] The number of times to repeat the string.
@@ -28,24 +24,7 @@ var nativeFloor = Math.floor;
* // => ''
*/
function repeat(string, n) {
string = toString(string);
n = toInteger(n);
var result = '';
if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
return result;
}
// Leverage the exponentiation by squaring algorithm for a faster repeat.
// See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
do {
if (n % 2) {
result += string;
}
n = nativeFloor(n / 2);
string += string;
} while (n);
return result;
return baseRepeat(toString(string), toInteger(n));
}
module.exports = repeat;