'use strict';
var strValue = String.prototype.valueOf; var tryStringObject = function tryStringObject(value) {
try { strValue.call(value); return true; } catch (e) { return false; }
}; var toStr = Object.prototype.toString; var strClass = '[object String]'; var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
module.exports = function isString(value) {
if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass;
};