From 7ee6085527ffe17210f629e135f119c4b8f87e48 Mon Sep 17 00:00:00 2001 From: Thibault Sottiaux Date: Mon, 1 Dec 2014 09:51:06 +0100 Subject: [PATCH] Pad : Performance improvements and more dry. --- lib/underscore.string.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/underscore.string.js b/lib/underscore.string.js index 7be1bb32..a32e4758 100644 --- a/lib/underscore.string.js +++ b/lib/underscore.string.js @@ -417,23 +417,23 @@ str = str == null ? '' : String(str); length = ~~length; - var padlen = 0; + if(length <= str.length) return str; if (!padStr) padStr = ' '; else if (padStr.length > 1) padStr = padStr.charAt(0); + + var padlen = length - str.length; switch(type) { case 'right': - padlen = length - str.length; return str + strRepeat(padStr, padlen); case 'both': - padlen = length - str.length; - return strRepeat(padStr, Math.ceil(padlen/2)) + str - + strRepeat(padStr, Math.floor(padlen/2)); + var halfPadlen = ~~(padlen/2), + repeatedPadStr = strRepeat(padStr, halfPadlen); + return repeatedPadStr + (padlen % 2 ? padStr : '') + str + repeatedPadStr; default: // 'left' - padlen = length - str.length; return strRepeat(padStr, padlen) + str; } },