24 lines
		
	
	
		
			499 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			499 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
var keys  = require("../keys")
 | 
						|
  , value = require("../valid-value")
 | 
						|
  , max   = Math.max;
 | 
						|
 | 
						|
module.exports = function (dest, src/*, …srcn*/) {
 | 
						|
	var error, i, length = max(arguments.length, 2), assign;
 | 
						|
	dest = Object(value(dest));
 | 
						|
	assign = function (key) {
 | 
						|
		try {
 | 
						|
			dest[key] = src[key];
 | 
						|
		} catch (e) {
 | 
						|
			if (!error) error = e;
 | 
						|
		}
 | 
						|
	};
 | 
						|
	for (i = 1; i < length; ++i) {
 | 
						|
		src = arguments[i];
 | 
						|
		keys(src).forEach(assign);
 | 
						|
	}
 | 
						|
	if (error !== undefined) throw error;
 | 
						|
	return dest;
 | 
						|
};
 |