1 var baseIsArguments = require('./_baseIsArguments'),
2 isObjectLike = require('./isObjectLike');
4 /** Used for built-in method references. */
5 var objectProto = Object.prototype;
7 /** Used to check objects for own properties. */
8 var hasOwnProperty = objectProto.hasOwnProperty;
10 /** Built-in value references. */
11 var propertyIsEnumerable = objectProto.propertyIsEnumerable;
14 * Checks if `value` is likely an `arguments` object.
20 * @param {*} value The value to check.
21 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
25 * _.isArguments(function() { return arguments; }());
28 * _.isArguments([1, 2, 3]);
31 var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
32 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
33 !propertyIsEnumerable.call(value, 'callee');
36 module.exports = isArguments;