define(['./_setup', './isArray', './_has'], function (_setup, isArray, _has) { // Shortcut function for checking if an object has a given property directly on // itself (in other words, not on a prototype). Unlike the internal `has` // function, this public version can also traverse nested properties. function has(obj, path) { if (!isArray(path)) { return _has(obj, path); } var length = path.length; for (var i = 0; i < length; i++) { var key = path[i]; if (obj == null || !_setup.hasOwnProperty.call(obj, key)) { return false; } obj = obj[key]; } return !!length; } return has; });