mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
595 B
22 lines
595 B
// Thanks: http://www.2ality.com/2014/01/efficient-string-repeat.html
|
|
|
|
'use strict';
|
|
|
|
var value = require('../../../object/valid-value')
|
|
, toInteger = require('../../../number/to-integer');
|
|
|
|
module.exports = function (count) {
|
|
var str = String(value(this)), result;
|
|
count = toInteger(count);
|
|
if (count < 0) throw new RangeError("Count must be >= 0");
|
|
if (!isFinite(count)) throw new RangeError("Count must be < ∞");
|
|
result = '';
|
|
if (!count) return result;
|
|
while (true) {
|
|
if (count & 1) result += str;
|
|
count >>>= 1;
|
|
if (count <= 0) break;
|
|
str += str;
|
|
}
|
|
return result;
|
|
};
|
|
|