| | |
| | | var global = require('../internals/global'); |
| | | var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; |
| | | var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); |
| | | var redefine = require('../internals/redefine'); |
| | | var defineBuiltIn = require('../internals/define-built-in'); |
| | | var setGlobal = require('../internals/set-global'); |
| | | var copyConstructorProperties = require('../internals/copy-constructor-properties'); |
| | | var isForced = require('../internals/is-forced'); |
| | |
| | | FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); |
| | | // contained in target |
| | | if (!FORCED && targetProperty !== undefined) { |
| | | if (typeof sourceProperty === typeof targetProperty) continue; |
| | | if (typeof sourceProperty == typeof targetProperty) continue; |
| | | copyConstructorProperties(sourceProperty, targetProperty); |
| | | } |
| | | // add a flag to not completely full polyfills |
| | | if (options.sham || (targetProperty && targetProperty.sham)) { |
| | | createNonEnumerableProperty(sourceProperty, 'sham', true); |
| | | } |
| | | // extend global |
| | | redefine(target, key, sourceProperty, options); |
| | | defineBuiltIn(target, key, sourceProperty, options); |
| | | } |
| | | }; |