You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							31 lines
						
					
					
						
							1.2 KiB
						
					
					
				// https://github.com/tc39/proposal-string-pad-start-end | 
						|
var toLength = require('../internals/to-length'); | 
						|
var repeat = require('../internals/string-repeat'); | 
						|
var requireObjectCoercible = require('../internals/require-object-coercible'); | 
						|
 | 
						|
var ceil = Math.ceil; | 
						|
 | 
						|
// `String.prototype.{ padStart, padEnd }` methods implementation | 
						|
var createMethod = function (IS_END) { | 
						|
  return function ($this, maxLength, fillString) { | 
						|
    var S = String(requireObjectCoercible($this)); | 
						|
    var stringLength = S.length; | 
						|
    var fillStr = fillString === undefined ? ' ' : String(fillString); | 
						|
    var intMaxLength = toLength(maxLength); | 
						|
    var fillLen, stringFiller; | 
						|
    if (intMaxLength <= stringLength || fillStr == '') return S; | 
						|
    fillLen = intMaxLength - stringLength; | 
						|
    stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length)); | 
						|
    if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); | 
						|
    return IS_END ? S + stringFiller : stringFiller + S; | 
						|
  }; | 
						|
}; | 
						|
 | 
						|
module.exports = { | 
						|
  // `String.prototype.padStart` method | 
						|
  // https://tc39.github.io/ecma262/#sec-string.prototype.padstart | 
						|
  start: createMethod(false), | 
						|
  // `String.prototype.padEnd` method | 
						|
  // https://tc39.github.io/ecma262/#sec-string.prototype.padend | 
						|
  end: createMethod(true) | 
						|
};
 | 
						|
 |