123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
-
-
-
- var MAX_SAFE_INTEGER = 9007199254740991;
-
-
- var argsTag = '[object Arguments]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-
- var objectProto = Object.prototype;
-
-
- var hasOwnProperty = objectProto.hasOwnProperty;
-
-
- var objectToString = objectProto.toString;
-
-
- var propertyIsEnumerable = objectProto.propertyIsEnumerable;
-
-
- function isArguments(value) {
-
- return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
- (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
- }
-
-
- function isArrayLike(value) {
- return value != null && isLength(value.length) && !isFunction(value);
- }
-
-
- function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
- }
-
-
- function isFunction(value) {
-
-
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
- }
-
-
- function isLength(value) {
- return typeof value == 'number' &&
- value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
- }
-
-
- function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
- }
-
-
- function isObjectLike(value) {
- return !!value && typeof value == 'object';
- }
-
- module.exports = isArguments;
|