UNPKG

1.03 kBJavaScriptView Raw
1var baseIsArguments = require('./_baseIsArguments'),
2 isObjectLike = require('./isObjectLike');
3
4/** Used for built-in method references. */
5var objectProto = Object.prototype;
6
7/** Used to check objects for own properties. */
8var hasOwnProperty = objectProto.hasOwnProperty;
9
10/** Built-in value references. */
11var propertyIsEnumerable = objectProto.propertyIsEnumerable;
12
13/**
14 * Checks if `value` is likely an `arguments` object.
15 *
16 * @static
17 * @memberOf _
18 * @since 0.1.0
19 * @category Lang
20 * @param {*} value The value to check.
21 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
22 * else `false`.
23 * @example
24 *
25 * _.isArguments(function() { return arguments; }());
26 * // => true
27 *
28 * _.isArguments([1, 2, 3]);
29 * // => false
30 */
31var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
32 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
33 !propertyIsEnumerable.call(value, 'callee');
34};
35
36module.exports = isArguments;