define(['./forOwn'], function (forOwn) { /** * checks if a object contains all given properties/values */ function matches(target, props){ // can't use "object/every" because of circular dependency var result = true; forOwn(props, function(val, key){ if (target[key] !== val) { // break loop at first difference return (result = false); } }); return result; } return matches; });