function StringPad(thisString, maxLength, fillString) {
  maxLength = TO_LENGTH(maxLength);
  var stringLength = thisString.length;

  if (maxLength <= stringLength) return "";

  if (IS_UNDEFINED(fillString)) {
    fillString = " ";
  } else {
    fillString = TO_STRING(fillString);
    if (fillString === "") {
      // If filler is the empty String, return S.
      return "";
    }
  }

  var fillLength = maxLength - stringLength;
  var repetitions = (fillLength / fillString.length) | 0;
  var remainingChars = (fillLength - fillString.length * repetitions) | 0;

  var filler = "";
  while (true) {
    if (repetitions & 1) filler += fillString;
    repetitions >>= 1;
    if (repetitions === 0) break;
    fillString += fillString;
  }

  if (remainingChars) {
    filler += %_SubString(fillString, 0, remainingChars);
  }

  return filler;
}
function StringPad(thisString, maxLength, fillString) {
  maxLength = TO_LENGTH(maxLength);
  var stringLength = thisString.length;

  if (maxLength <= stringLength) return "";

  if (IS_UNDEFINED(fillString)) {
    fillString = " ";
  } else {
    fillString = TO_STRING(fillString);
    if (fillString === "") {
      
      return "";
    }
  }

  var fillLength = maxLength - stringLength;
  var repetitions = (fillLength / fillString.length) | 0;
  var remainingChars = (fillLength - fillString.length * repetitions) | 0;

  var filler = "";
  while (true) {
    if (repetitions & 1) filler += fillString;
    repetitions >>= 1;
    if (repetitions === 0) break;
    fillString += fillString;
  }

  if (remainingChars) {
    filler += %_SubString(fillString, 0, remainingChars);
  }

  return filler;
}
function StringPad ( thisString , maxLength , fillString ) { maxLength = TO_LENGTH ( maxLength ) ; var stringLength = thisString . length ; if ( maxLength <= stringLength ) return "" ; if ( IS_UNDEFINED ( fillString ) ) { fillString = " " ; } else { fillString = TO_STRING ( fillString ) ; if ( fillString === "" ) { // If filler is the empty String, return S. return "" ; } } var fillLength = maxLength - stringLength ; var repetitions = ( fillLength / fillString . length ) | 0 ; var remainingChars = ( fillLength - fillString . length * repetitions ) | 0 ; var filler = "" ; while ( true ) { if ( repetitions & 1 ) filler += fillString ; repetitions >>= 1 ; if ( repetitions === 0 ) break ; fillString += fillString ; } if ( remainingChars ) { filler += % _SubString ( fillString , 0 , remainingChars ) ; } return filler ; }
------------------------------------------------------------------- http://tc39.github.io/proposal-string-pad-start-end/
------------------------------------------------------------------- http : // tc39 . github . io / proposal - string - pad - start - end /