25 lines
401 B
JavaScript
25 lines
401 B
JavaScript
|
'use strict';
|
||
|
var isFinite = require('is-finite');
|
||
|
|
||
|
module.exports = function (str, n) {
|
||
|
if (typeof str !== 'string') {
|
||
|
throw new TypeError('Expected `input` to be a string');
|
||
|
}
|
||
|
|
||
|
if (n < 0 || !isFinite(n)) {
|
||
|
throw new TypeError('Expected `count` to be a positive finite number');
|
||
|
}
|
||
|
|
||
|
var ret = '';
|
||
|
|
||
|
do {
|
||
|
if (n & 1) {
|
||
|
ret += str;
|
||
|
}
|
||
|
|
||
|
str += str;
|
||
|
} while ((n >>= 1));
|
||
|
|
||
|
return ret;
|
||
|
};
|