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;
 | |
| };
 |