/* */ var $ = require("./$"), repeat = require("./$.string-repeat"); module.exports = function(that, minLength, fillChar, left) { var S = String($.assertDefined(that)); if (minLength === undefined) return S; var intMinLength = $.toInteger(minLength); var fillLen = intMinLength - S.length; if (fillLen < 0 || fillLen === Infinity) { throw new RangeError('Cannot satisfy string length ' + minLength + ' for string: ' + S); } var sFillStr = fillChar === undefined ? ' ' : String(fillChar); var sFillVal = repeat.call(sFillStr, Math.ceil(fillLen / sFillStr.length)); if (sFillVal.length > fillLen) sFillVal = left ? sFillVal.slice(sFillVal.length - fillLen) : sFillVal.slice(0, fillLen); return left ? sFillVal.concat(S) : S.concat(sFillVal); };