1 | 'use strict';
|
2 | var hasOwn = require('../internals/has-own-property');
|
3 | var ownKeys = require('../internals/own-keys');
|
4 | var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
5 | var definePropertyModule = require('../internals/object-define-property');
|
6 |
|
7 | module.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 | };
|