UNPKG

bs-platform

Version:

bucklescript compiler, ocaml standard libary by bucklescript and its required runtime support

34 lines (29 loc) 822 B
'use strict'; function repeat (count,self){ if (self.repeat){ return self.repeat(count) } if (self.length == 0 || count == 0) { return ''; } // Ensuring count is a 31-bit integer allows us to heavily optimize the // main part. But anyway, most current (August 2014) browsers can't handle // strings 1 << 28 chars or longer, so: if (self.length * count >= 1 << 28) { throw new RangeError('repeat count must not overflow maximum string size'); } var rpt = ''; for (;;) { if ((count & 1) == 1) { rpt += self; } count >>>= 1; if (count == 0) { break; } self += self; } return rpt; }; exports.repeat = repeat; /* No side effect */