UNPKG

719 BJavaScriptView Raw
1'use strict';
2var hasOwn = require('../internals/has-own-property');
3var ownKeys = require('../internals/own-keys');
4var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
5var definePropertyModule = require('../internals/object-define-property');
6
7module.exports = function (target, source, exceptions) {
8 var keys = ownKeys(source);
9 var defineProperty = definePropertyModule.f;
10 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
11 for (var i = 0; i < keys.length; i++) {
12 var key = keys[i];
13 if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
14 defineProperty(target, key, getOwnPropertyDescriptor(source, key));
15 }
16 }
17};