| var defineProperty = require('../internals/object-define-property').f; |
| var hide = require('../internals/hide'); |
| var has = require('../internals/has'); |
| var toString = require('../internals/object-to-string'); |
| var wellKnownSymbol = require('../internals/well-known-symbol'); |
| |
| var TO_STRING_TAG = wellKnownSymbol('toStringTag'); |
| var METHOD_REQUIRED = toString !== ({}).toString; |
| |
| module.exports = function (it, TAG, STATIC, SET_METHOD) { |
| if (it) { |
| var target = STATIC ? it : it.prototype; |
| if (!has(target, TO_STRING_TAG)) { |
| defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); |
| } |
| if (SET_METHOD && METHOD_REQUIRED) hide(target, 'toString', toString); |
| } |
| }; |