| var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support'); |
| var defineProperty = require('../internals/object-define-property').f; |
| var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); |
| 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'); |
| |
| 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 && !TO_STRING_TAG_SUPPORT) { |
| createNonEnumerableProperty(target, 'toString', toString); |
| } |
| } |
| }; |