// TIP: Try re-using reduce() here.
var test = true;
if (iterator === undefined) {
for (var key in collection) {
if (! collection[key] && test) {
return false;
}
}
} else {
for (var key in collection) {
if (! iterator(collection[key]) ) {
return false;
}
}
}
return test;