node/tools/eslint/node_modules/es5-ext/string/#/repeat/shim.js
Michaël Zasso 2d441493a4 tools: update eslint to v1.10.3
PR-URL: https://github.com/nodejs/io.js/pull/2286
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-13 23:15:39 +01:00

23 lines
595 B
JavaScript

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