|  | /* | 
|  | object-assign | 
|  | (c) Sindre Sorhus | 
|  | @license MIT | 
|  | */ | 
|  |  | 
|  | 'use strict'; | 
|  | /* eslint-disable no-unused-vars */ | 
|  | var getOwnPropertySymbols = Object.getOwnPropertySymbols; | 
|  | var hasOwnProperty = Object.prototype.hasOwnProperty; | 
|  | var propIsEnumerable = Object.prototype.propertyIsEnumerable; | 
|  |  | 
|  | function toObject(val) { | 
|  | if (val === null || val === undefined) { | 
|  | throw new TypeError('Object.assign cannot be called with null or undefined'); | 
|  | } | 
|  |  | 
|  | return Object(val); | 
|  | } | 
|  |  | 
|  | function shouldUseNative() { | 
|  | try { | 
|  | if (!Object.assign) { | 
|  | return false; | 
|  | } | 
|  |  | 
|  | // Detect buggy property enumeration order in older V8 versions. | 
|  |  | 
|  | // https://bugs.chromium.org/p/v8/issues/detail?id=4118 | 
|  | var test1 = new String('abc');  // eslint-disable-line no-new-wrappers | 
|  | test1[5] = 'de'; | 
|  | if (Object.getOwnPropertyNames(test1)[0] === '5') { | 
|  | return false; | 
|  | } | 
|  |  | 
|  | // https://bugs.chromium.org/p/v8/issues/detail?id=3056 | 
|  | var test2 = {}; | 
|  | for (var i = 0; i < 10; i++) { | 
|  | test2['_' + String.fromCharCode(i)] = i; | 
|  | } | 
|  | var order2 = Object.getOwnPropertyNames(test2).map(function (n) { | 
|  | return test2[n]; | 
|  | }); | 
|  | if (order2.join('') !== '0123456789') { | 
|  | return false; | 
|  | } | 
|  |  | 
|  | // https://bugs.chromium.org/p/v8/issues/detail?id=3056 | 
|  | var test3 = {}; | 
|  | 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { | 
|  | test3[letter] = letter; | 
|  | }); | 
|  | if (Object.keys(Object.assign({}, test3)).join('') !== | 
|  | 'abcdefghijklmnopqrst') { | 
|  | return false; | 
|  | } | 
|  |  | 
|  | return true; | 
|  | } catch (err) { | 
|  | // We don't expect any of the above to throw, but better to be safe. | 
|  | return false; | 
|  | } | 
|  | } | 
|  |  | 
|  | module.exports = shouldUseNative() ? Object.assign : function (target, source) { | 
|  | var from; | 
|  | var to = toObject(target); | 
|  | var symbols; | 
|  |  | 
|  | for (var s = 1; s < arguments.length; s++) { | 
|  | from = Object(arguments[s]); | 
|  |  | 
|  | for (var key in from) { | 
|  | if (hasOwnProperty.call(from, key)) { | 
|  | to[key] = from[key]; | 
|  | } | 
|  | } | 
|  |  | 
|  | if (getOwnPropertySymbols) { | 
|  | symbols = getOwnPropertySymbols(from); | 
|  | for (var i = 0; i < symbols.length; i++) { | 
|  | if (propIsEnumerable.call(from, symbols[i])) { | 
|  | to[symbols[i]] = from[symbols[i]]; | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | return to; | 
|  | }; |