1234567891011121314151617181920212223242526272829303132 |
- 'use strict';
- var bind = require('function-bind');
- var ES = require('es-abstract/es7');
- var slice = bind.call(Function.call, String.prototype.slice);
- module.exports = function padEnd(maxLength) {
- var O = ES.RequireObjectCoercible(this);
- var S = ES.ToString(O);
- var stringLength = ES.ToLength(S.length);
- var fillString;
- if (arguments.length > 1) {
- fillString = arguments[1];
- }
- var filler = typeof fillString === 'undefined' ? '' : ES.ToString(fillString);
- if (filler === '') {
- filler = ' ';
- }
- var intMaxLength = ES.ToLength(maxLength);
- if (intMaxLength <= stringLength) {
- return S;
- }
- var fillLen = intMaxLength - stringLength;
- while (filler.length < fillLen) {
- var fLen = filler.length;
- var remainingCodeUnits = fillLen - fLen;
- filler += fLen > remainingCodeUnits ? slice(filler, 0, remainingCodeUnits) : filler;
- }
- var truncatedStringFiller = filler.length > fillLen ? slice(filler, 0, fillLen) : filler;
- return S + truncatedStringFiller;
- };
|