|
|
- 'use strict';
-
- var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
- var toStr = Object.prototype.toString;
-
- var isStandardArguments = function isArguments(value) {
- if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {
- return false;
- }
- return toStr.call(value) === '[object Arguments]';
- };
-
- var isLegacyArguments = function isArguments(value) {
- if (isStandardArguments(value)) {
- return true;
- }
- return value !== null &&
- typeof value === 'object' &&
- typeof value.length === 'number' &&
- value.length >= 0 &&
- toStr.call(value) !== '[object Array]' &&
- toStr.call(value.callee) === '[object Function]';
- };
-
- var supportsStandardArguments = (function () {
- return isStandardArguments(arguments);
- }());
-
- isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests
-
- module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;
|