foop
Version:
interfaces that describe their intentions.
39 lines (37 loc) • 2.97 kB
JavaScript
var invoke = require('../fp/invoke')
var objectToString = require('../native/objectToString')
/**
* The base implementation of `getTag` without fallbacks for buggy environments.
*
* @memberOf is
* @since 3.0.0
* @alias getTag
* @alias toStringTag
* @alias toS
*
* @param {*} obj The value to `Object.prototype.toString.call(obj)`.
* @return {string} Returns the `toStringTag`.
*
* @see https://github.com/lodash/lodash/blob/master/.internal/baseGetTag.js
* @see https://github.com/jonschlinkert/kind-of
* @see https://github.com/substack/js-traverse/blob/master/index.js#L285
* @see http://luxiyalu.com/object-prototype-tostring-call/
*
* @TODO obj[Symbol.toStringTag]
* @TODO run deopt check on this invoking see how many invocations... are needed to inline
*
* @example
*
* toS({})
* //=> '[object Object]'
*
* toS(function() {})
* //=> '[Object Function]'
*
* getTag([])
* //=> '[object Array]'
*
*/
// module.exports = obj => objectToString.call(obj)
module.exports = invoke(objectToString, 'call')
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9TLmpzIiwic291cmNlcyI6WyJ0b1MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaW52b2tlID0gcmVxdWlyZSgnLi4vZnAvaW52b2tlJylcbmNvbnN0IG9iamVjdFRvU3RyaW5nID0gcmVxdWlyZSgnLi4vbmF0aXZlL29iamVjdFRvU3RyaW5nJylcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBtZW1iZXJPZiBpc1xuICogQHNpbmNlIDMuMC4wXG4gKiBAYWxpYXMgZ2V0VGFnXG4gKiBAYWxpYXMgdG9TdHJpbmdUYWdcbiAqIEBhbGlhcyB0b1NcbiAqXG4gKiBAcGFyYW0geyp9IG9iaiBUaGUgdmFsdWUgdG8gYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopYC5cbiAqIEByZXR1cm4ge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvbWFzdGVyLy5pbnRlcm5hbC9iYXNlR2V0VGFnLmpzXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qb25zY2hsaW5rZXJ0L2tpbmQtb2ZcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3N1YnN0YWNrL2pzLXRyYXZlcnNlL2Jsb2IvbWFzdGVyL2luZGV4LmpzI0wyODVcbiAqIEBzZWUgaHR0cDovL2x1eGl5YWx1LmNvbS9vYmplY3QtcHJvdG90eXBlLXRvc3RyaW5nLWNhbGwvXG4gKlxuICogQFRPRE8gb2JqW1N5bWJvbC50b1N0cmluZ1RhZ11cbiAqIEBUT0RPIHJ1biBkZW9wdCBjaGVjayBvbiB0aGlzIGludm9raW5nIHNlZSBob3cgbWFueSBpbnZvY2F0aW9ucy4uLiBhcmUgbmVlZGVkIHRvIGlubGluZVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgdG9TKHt9KVxuICogICAgLy89PiAnW29iamVjdCBPYmplY3RdJ1xuICpcbiAqICAgIHRvUyhmdW5jdGlvbigpIHt9KVxuICogICAgLy89PiAnW09iamVjdCBGdW5jdGlvbl0nXG4gKlxuICogICAgZ2V0VGFnKFtdKVxuICogICAgLy89PiAnW29iamVjdCBBcnJheV0nXG4gKlxuICovXG4vLyBtb2R1bGUuZXhwb3J0cyA9IG9iaiA9PiBvYmplY3RUb1N0cmluZy5jYWxsKG9iailcbm1vZHVsZS5leHBvcnRzID0gaW52b2tlKG9iamVjdFRvU3RyaW5nLCAnY2FsbCcpXG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFDdENBLEdBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1DMUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQzsifQ==