|  | '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 | 
						
						
							|  | };
 |