| var baseIsArguments = require('./_baseIsArguments'), |
| isObjectLike = require('./isObjectLike'); |
| |
| /** Used for built-in method references. */ |
| var objectProto = Object.prototype; |
| |
| /** Used to check objects for own properties. */ |
| var hasOwnProperty = objectProto.hasOwnProperty; |
| |
| /** Built-in value references. */ |
| var propertyIsEnumerable = objectProto.propertyIsEnumerable; |
| |
| /** |
| * Checks if `value` is likely an `arguments` object. |
| * |
| * @static |
| * @memberOf _ |
| * @since 0.1.0 |
| * @category Lang |
| * @param {*} value The value to check. |
| * @returns {boolean} Returns `true` if `value` is an `arguments` object, |
| * else `false`. |
| * @example |
| * |
| * _.isArguments(function() { return arguments; }()); |
| * // => true |
| * |
| * _.isArguments([1, 2, 3]); |
| * // => false |
| */ |
| var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { |
| return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && |
| !propertyIsEnumerable.call(value, 'callee'); |
| }; |
| |
| module.exports = isArguments; |