Use toInteger in pad methods and make nullish chars checks in pad and trim methods undefined checks.

This commit is contained in:
John-David Dalton
2015-08-26 08:30:06 -07:00
parent e30a20120c
commit 89d53306f3
2 changed files with 11 additions and 12 deletions

View File

@@ -3341,13 +3341,13 @@
*/
function createPadding(string, length, chars) {
var strLength = string.length;
length = +length;
length = toInteger(length);
if (strLength >= length || !nativeIsFinite(length)) {
if (!length || strLength >= length) {
return '';
}
var padLength = length - strLength;
chars = chars == null ? ' ' : (chars + '');
chars = chars === undefined ? ' ' : (chars + '');
return repeat(chars, nativeCeil(padLength / chars.length)).slice(0, padLength);
}
@@ -10018,10 +10018,10 @@
*/
function pad(string, length, chars) {
string = baseToString(string);
length = +length;
length = toInteger(length);
var strLength = string.length;
if (strLength >= length || !nativeIsFinite(length)) {
if (!length || strLength >= length) {
return string;
}
var mid = (length - strLength) / 2,
@@ -10466,7 +10466,7 @@
if (!string) {
return string;
}
if (guard || chars == null) {
if (guard || chars === undefined) {
return string.slice(trimmedLeftIndex(string), trimmedRightIndex(string) + 1);
}
chars = (chars + '');
@@ -10497,7 +10497,7 @@
if (!string) {
return string;
}
if (guard || chars == null) {
if (guard || chars === undefined) {
return string.slice(trimmedLeftIndex(string));
}
return string.slice(charsLeftIndex(string, (chars + '')));
@@ -10527,7 +10527,7 @@
if (!string) {
return string;
}
if (guard || chars == null) {
if (guard || chars === undefined) {
return string.slice(0, trimmedRightIndex(string) + 1);
}
return string.slice(0, charsRightIndex(string, (chars + '')) + 1);
@@ -10587,7 +10587,7 @@
return omission;
}
var result = string.slice(0, end);
if (separator == null) {
if (separator === undefined) {
return result + omission;
}
if (isRegExp(separator)) {

View File

@@ -11381,7 +11381,7 @@
});
test('`_.' + methodName + '` should treat nullish values as empty strings', 6, function() {
_.each([null, '_-'], function(chars) {
_.each([undefined, '_-'], function(chars) {
var expected = chars ? (isPad ? '__' : chars) : ' ';
strictEqual(func(null, 2, chars), expected);
strictEqual(func(undefined, 2, chars), expected);
@@ -15839,11 +15839,10 @@
});
});
test('`_.' + methodName + '` should work with nullish or empty string values for `chars`', 3, function() {
test('`_.' + methodName + '` should work with `undefined` or empty string values for `chars`', 2, function() {
var string = whitespace + 'a b c' + whitespace,
expected = (index == 2 ? whitespace : '') + 'a b c' + (index == 1 ? whitespace : '');
strictEqual(func(string, null), expected);
strictEqual(func(string, undefined), expected);
strictEqual(func(string, ''), string);
});