Simplify isArguments.

This commit is contained in:
John-David Dalton
2017-01-09 18:45:04 -08:00
parent 6434747ef6
commit 71039740c3
2 changed files with 6 additions and 29 deletions

View File

@@ -1,18 +0,0 @@
import baseGetTag from './_baseGetTag.js';
import isObjectLike from './isObjectLike.js';
/** `Object#toString` result references. */
const argsTag = '[object Arguments]';
/**
* The base implementation of `isArguments`.
*
* @private
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
*/
function baseIsArguments(value) {
return isObjectLike(value) && baseGetTag(value) == argsTag;
}
export default baseIsArguments;

View File

@@ -1,14 +1,8 @@
import baseIsArguments from './_baseIsArguments.js';
import baseGetTag from './_baseGetTag.js';
import isObjectLike from './isObjectLike.js';
/** Used for built-in method references. */
const objectProto = Object.prototype;
/** Used to check objects for own properties. */
const hasOwnProperty = objectProto.hasOwnProperty;
/** Built-in value references. */
const propertyIsEnumerable = objectProto.propertyIsEnumerable;
/** `Object#toString` result references. */
const argsTag = '[object Arguments]';
/**
* Checks if `value` is likely an `arguments` object.
@@ -27,7 +21,8 @@ const propertyIsEnumerable = objectProto.propertyIsEnumerable;
* isArguments([1, 2, 3]);
* // => false
*/
const isArguments = baseIsArguments(function(...args) { return args; }()) ? baseIsArguments : value => isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
!propertyIsEnumerable.call(value, 'callee');
function isArguments(value) {
return isObjectLike(value) && baseGetTag(value) == argsTag;
}
export default isArguments;