You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							60 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							60 lines
						
					
					
						
							1.2 KiB
						
					
					
				'use strict'; | 
						|
 | 
						|
var isExtendable = require('is-extendable'); | 
						|
var assignSymbols = require('assign-symbols'); | 
						|
 | 
						|
module.exports = Object.assign || function(obj/*, objects*/) { | 
						|
  if (obj === null || typeof obj === 'undefined') { | 
						|
    throw new TypeError('Cannot convert undefined or null to object'); | 
						|
  } | 
						|
  if (!isObject(obj)) { | 
						|
    obj = {}; | 
						|
  } | 
						|
  for (var i = 1; i < arguments.length; i++) { | 
						|
    var val = arguments[i]; | 
						|
    if (isString(val)) { | 
						|
      val = toObject(val); | 
						|
    } | 
						|
    if (isObject(val)) { | 
						|
      assign(obj, val); | 
						|
      assignSymbols(obj, val); | 
						|
    } | 
						|
  } | 
						|
  return obj; | 
						|
}; | 
						|
 | 
						|
function assign(a, b) { | 
						|
  for (var key in b) { | 
						|
    if (hasOwn(b, key)) { | 
						|
      a[key] = b[key]; | 
						|
    } | 
						|
  } | 
						|
} | 
						|
 | 
						|
function isString(val) { | 
						|
  return (val && typeof val === 'string'); | 
						|
} | 
						|
 | 
						|
function toObject(str) { | 
						|
  var obj = {}; | 
						|
  for (var i in str) { | 
						|
    obj[i] = str[i]; | 
						|
  } | 
						|
  return obj; | 
						|
} | 
						|
 | 
						|
function isObject(val) { | 
						|
  return (val && typeof val === 'object') || isExtendable(val); | 
						|
} | 
						|
 | 
						|
/** | 
						|
 * Returns true if the given `key` is an own property of `obj`. | 
						|
 */ | 
						|
 | 
						|
function hasOwn(obj, key) { | 
						|
  return Object.prototype.hasOwnProperty.call(obj, key); | 
						|
} | 
						|
 | 
						|
function isEnum(obj, key) { | 
						|
  return Object.prototype.propertyIsEnumerable.call(obj, key); | 
						|
}
 | 
						|
 |