27 lines
649 B
TypeScript
27 lines
649 B
TypeScript
/* eslint-disable indent */
|
|
import { baseIsArguments } from './_baseIsArguments'
|
|
import { isObjectLike } from './is-object-like'
|
|
|
|
const objectProto = Object.prototype
|
|
|
|
const hasOwnProperty = objectProto.hasOwnProperty
|
|
|
|
const propertyIsEnumerable = objectProto.propertyIsEnumerable
|
|
|
|
const isArguments = baseIsArguments(
|
|
(function () {
|
|
// eslint-disable-next-line prefer-rest-params
|
|
return arguments
|
|
})()
|
|
)
|
|
? baseIsArguments
|
|
: function (value: any) {
|
|
return (
|
|
isObjectLike(value) &&
|
|
hasOwnProperty.call(value, 'callee') &&
|
|
!propertyIsEnumerable.call(value, 'callee')
|
|
)
|
|
}
|
|
|
|
export { isArguments }
|