You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
718 B
23 lines
718 B
// getting tag from 19.1.3.6 Object.prototype.toString() |
|
var cof = require('./_cof'); |
|
var TAG = require('./_wks')('toStringTag'); |
|
// ES3 wrong here |
|
var ARG = cof(function () { return arguments; }()) == 'Arguments'; |
|
|
|
// fallback for IE11 Script Access Denied error |
|
var tryGet = function (it, key) { |
|
try { |
|
return it[key]; |
|
} catch (e) { /* empty */ } |
|
}; |
|
|
|
module.exports = function (it) { |
|
var O, T, B; |
|
return it === undefined ? 'Undefined' : it === null ? 'Null' |
|
// @@toStringTag case |
|
: typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T |
|
// builtinTag case |
|
: ARG ? cof(O) |
|
// ES3 arguments fallback |
|
: (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; |
|
};
|
|
|