heyujie
2021-05-24 4885600ecc369aa2e30a65de8dd7a410f13c34df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Thanks
// @rauchma http://www.2ality.com/2014/01/efficient-string-repeat.html
// @mathiasbynens https://github.com/mathiasbynens/String.prototype.repeat/blob/4a4b567def/repeat.js
 
"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 = "";
    while (count) {
        if (count % 2) result += str;
        if (count > 1) str += str;
        // eslint-disable-next-line no-bitwise
        count >>= 1;
    }
    return result;
};