diff options
Diffstat (limited to 'node_modules/core-js/internals/classof.js')
| -rw-r--r-- | node_modules/core-js/internals/classof.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/node_modules/core-js/internals/classof.js b/node_modules/core-js/internals/classof.js new file mode 100644 index 0000000..0fd0844 --- /dev/null +++ b/node_modules/core-js/internals/classof.js @@ -0,0 +1,26 @@ +var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support'); +var classofRaw = require('../internals/classof-raw'); +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; +}; |
