Ensure isIterateeCall doesn't error if index is an object without a toString method. [closes #994]

This commit is contained in:
jdalton
2015-02-23 23:48:13 -08:00
parent d76d7582fe
commit 5ef9a4be8a
2 changed files with 25 additions and 8 deletions

View File

@@ -833,6 +833,18 @@
}
});
test('should return `false` for non-iteratee calls', 4, function() {
if (func) {
strictEqual(func(2, 0, array), false);
strictEqual(func(1, 1.1, array), false);
strictEqual(func(1, 0, { 'length': MAX_SAFE_INTEGER + 1 }), false);
strictEqual(func(1, 'b', object), false);
}
else {
skipTest(4);
}
});
test('should work with `NaN` values', 2, function() {
if (func) {
strictEqual(func(NaN, 0, [NaN]), true);
@@ -843,15 +855,17 @@
}
});
test('should return `false` for non-iteratee calls', 4, function() {
test('should not error when `index` is an object without a `toString` method', 1, function() {
if (func) {
strictEqual(func(2, 0, array), false);
strictEqual(func(1, 1.1, array), false);
strictEqual(func(1, 0, { 'length': MAX_SAFE_INTEGER + 1 }), false);
strictEqual(func(1, 'b', object), false);
try {
var actual = func(1, { 'toString': null }, [1]);
} catch(e) {
var message = e.message;
}
strictEqual(actual, false, message || '');
}
else {
skipTest(4);
skipTest();
}
});
}());