Skip to content

Commit f097dd7

Browse files
authored
Merge pull request #2223 from igandrews/TFS274456_Main
Handle single array argument for param array member in string.concat
2 parents e3fe59b + 3b7e249 commit f097dd7

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

src/js/modules/infragistics.util.js

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3836,36 +3836,32 @@
38363836
return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g, "").replace(/\s+/g, " ");
38373837
};
38383838

3839-
String.prototype.trimStart = function () {
3839+
var getParamsArray = function(a) {
38403840
var args = [ " " ];
3841-
if (arguments.length > 0) {
3842-
if (arguments.length == 1 && Array.isArray(arguments[ 0 ])) {
3843-
if (arguments[ 0 ].length > 0) {
3844-
args = arguments[ 0 ];
3841+
if (a && a.length > 0) {
3842+
if (a.length == 1 && Array.isArray(a[ 0 ])) {
3843+
if (a[ 0 ].length > 0) {
3844+
args = a[ 0 ];
38453845
}
38463846
} else {
3847-
args = Array.prototype.slice.call(arguments);
3847+
args = Array.prototype.slice.call(a);
38483848
}
38493849
}
3850+
3851+
return args;
3852+
};
3853+
String.prototype.trimStart = function () {
38503854
if (this.length === 0) {
38513855
return this;
38523856
}
3857+
var args = getParamsArray(arguments);
38533858
var i = 0;
38543859
for (; i < this.length && args.indexOf(this.charAt(i)) > -1; i++) { }
38553860
return this.substring(i);
38563861
};
38573862

38583863
String.prototype.trimEnd = function () {
3859-
var args = [ " " ];
3860-
if (arguments.length > 0) {
3861-
if (arguments.length == 1 && Array.isArray(arguments[ 0 ])) {
3862-
if (arguments[ 0 ].length > 0) {
3863-
args = arguments[ 0 ];
3864-
}
3865-
} else {
3866-
args = Array.prototype.slice.call(arguments);
3867-
}
3868-
}
3864+
var args = getParamsArray(arguments);
38693865
var i = this.length - 1;
38703866
for (; i >= 0 && args.indexOf(this.charAt(i)) > -1; i--) { }
38713867
return this.substring(0, i + 1);
@@ -3875,7 +3871,7 @@
38753871
String.isNullOrEmpty = function (s) { return !s || s.length < 1; };
38763872
String.isNullOrWhiteSpace = function (s) { return !s || s.trim().length < 1; };
38773873
String.empty = function () { return ""; };
3878-
String.concat = function () { return [ ].join.call(arguments, ""); };
3874+
String.concat = function () { return [ ].join.call(getParamsArray(arguments), ""); };
38793875
String.concat1 = function (o1, o2) { return [ ].join.call(arguments, ""); };
38803876
String.concat2 = function (s1, s2) { return [ ].join.call(arguments, ""); };
38813877
String.concat3 = function () { return [ ].join.call(arguments, ""); };

tests/unit/util/util-test.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,4 +424,12 @@ QUnit.test('[ID20] Test OADate', function (assert) {
424424
var d1 = new Date(1999, 6, 4, 12, 0, 0);
425425
assert.equal(d1.toOADate(), 36345.5, "toOADate for " + d1);
426426
assert.equal($.ig.Date.prototype.fromOADate(36345.5).getTime(), +d1, "fromOADate to " + d1);
427+
});
428+
429+
QUnit.test('[ID21] Test String.concat', function (assert) {
430+
assert.expect(2);
431+
432+
var arr = ["abc", "123"];
433+
assert.equal(String.concat(arr[0], arr[1]), "abc123", "Default w/ Separate arguments");
434+
assert.equal(String.concat(arr), "abc123", "Default w/ single argument");
427435
});

0 commit comments

Comments
 (0)