| 
								
							 | 
							
								'use strict';
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								// modified from https://github.com/es-shims/es6-shim
							 | 
						
						
						
							| 
								
							 | 
							
								var objectKeys = require('object-keys');
							 | 
						
						
						
							| 
								
							 | 
							
								var hasSymbols = require('has-symbols/shams')();
							 | 
						
						
						
							| 
								
							 | 
							
								var callBound = require('call-bound');
							 | 
						
						
						
							| 
								
							 | 
							
								var $Object = require('es-object-atoms');
							 | 
						
						
						
							| 
								
							 | 
							
								var $push = callBound('Array.prototype.push');
							 | 
						
						
						
							| 
								
							 | 
							
								var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');
							 | 
						
						
						
							| 
								
							 | 
							
								var originalGetSymbols = hasSymbols ? $Object.getOwnPropertySymbols : null;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								// eslint-disable-next-line no-unused-vars
							 | 
						
						
						
							| 
								
							 | 
							
								module.exports = function assign(target, source1) {
							 | 
						
						
						
							| 
								
							 | 
							
									if (target == null) { throw new TypeError('target must be an object'); }
							 | 
						
						
						
							| 
								
							 | 
							
									var to = $Object(target); // step 1
							 | 
						
						
						
							| 
								
							 | 
							
									if (arguments.length === 1) {
							 | 
						
						
						
							| 
								
							 | 
							
										return to; // step 2
							 | 
						
						
						
							| 
								
							 | 
							
									}
							 | 
						
						
						
							| 
								
							 | 
							
									for (var s = 1; s < arguments.length; ++s) {
							 | 
						
						
						
							| 
								
							 | 
							
										var from = $Object(arguments[s]); // step 3.a.i
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
										// step 3.a.ii:
							 | 
						
						
						
							| 
								
							 | 
							
										var keys = objectKeys(from);
							 | 
						
						
						
							| 
								
							 | 
							
										var getSymbols = hasSymbols && ($Object.getOwnPropertySymbols || originalGetSymbols);
							 | 
						
						
						
							| 
								
							 | 
							
										if (getSymbols) {
							 | 
						
						
						
							| 
								
							 | 
							
											var syms = getSymbols(from);
							 | 
						
						
						
							| 
								
							 | 
							
											for (var j = 0; j < syms.length; ++j) {
							 | 
						
						
						
							| 
								
							 | 
							
												var key = syms[j];
							 | 
						
						
						
							| 
								
							 | 
							
												if ($propIsEnumerable(from, key)) {
							 | 
						
						
						
							| 
								
							 | 
							
													$push(keys, key);
							 | 
						
						
						
							| 
								
							 | 
							
												}
							 | 
						
						
						
							| 
								
							 | 
							
											}
							 | 
						
						
						
							| 
								
							 | 
							
										}
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
										// step 3.a.iii:
							 | 
						
						
						
							| 
								
							 | 
							
										for (var i = 0; i < keys.length; ++i) {
							 | 
						
						
						
							| 
								
							 | 
							
											var nextKey = keys[i];
							 | 
						
						
						
							| 
								
							 | 
							
											if ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2
							 | 
						
						
						
							| 
								
							 | 
							
												var propValue = from[nextKey]; // step 3.a.iii.2.a
							 | 
						
						
						
							| 
								
							 | 
							
												to[nextKey] = propValue; // step 3.a.iii.2.b
							 | 
						
						
						
							| 
								
							 | 
							
											}
							 | 
						
						
						
							| 
								
							 | 
							
										}
							 | 
						
						
						
							| 
								
							 | 
							
									}
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
									return to; // step 4
							 | 
						
						
						
							| 
								
							 | 
							
								};
							 |