stricter ECMA5 compliance. _.every now requires an iterator to be passed. #160

This commit is contained in:
Jeremy Ashkenas
2011-04-15 17:17:54 -04:00
parent 3df562f07e
commit bf214d2c8d
2 changed files with 4 additions and 5 deletions

View File

@@ -123,12 +123,12 @@ $(document).ready(function() {
});
test('collections: all', function() {
ok(_.all([]), 'the empty set');
ok(_.all([true, true, true]), 'all true values');
ok(!_.all([true, false, true]), 'one false value');
ok(_.all([], _.identity), 'the empty set');
ok(_.all([true, true, true], _.identity), 'all true values');
ok(!_.all([true, false, true], _.identity), 'one false value');
ok(_.all([0, 10, 28], function(num){ return num % 2 == 0; }), 'even numbers');
ok(!_.all([0, 11, 28], function(num){ return num % 2 == 0; }), 'an odd number');
ok(_.every([true, true, true]), 'aliased as "every"');
ok(_.every([true, true, true], _.identity), 'aliased as "every"');
});
test('collections: any', function() {

View File

@@ -168,7 +168,6 @@
// Delegates to **ECMAScript 5**'s native `every` if available.
// Aliased as `all`.
_.every = _.all = function(obj, iterator, context) {
iterator || (iterator = _.identity);
var result = true;
if (obj == null) return result;
if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);