define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) {
/**
* Object every
*/
function every(obj, callback, thisObj) {
callback = makeIterator(callback, thisObj);
var result = true;
forOwn(obj, function(val, key) {
// we consider any falsy values as "false" on purpose so shorthand
// syntax can be used to check property existence
if (!callback(val, key, obj)) {
result = false;
return false; // break
}
});
return result;
}
return every;
});