"use strict";

// modified from https://github.com/es-shims/es6-shim
var keys = Object.keys || require('object-keys');

var assignShim = function assign(target, source) {
	return keys(source).reduce(function (target, key) {
		target[key] = source[key];
		return target;
	}, target);
};

assignShim.shim = function shimObjectAssign() {
    if (!Object.assign) {
        Object.assign = assignShim;
    }
    return Object.assign || assignShim;
};

module.exports = assignShim;


"use strict";

// modified from https://github.com/es-shims/es6-shim
var keys = Object.keys || require('object-keys');

var assignShim = function assign(target, source) {
	var props = keys(source);
	for (var i = 0; i < props.length; ++i) {
		target[props[i]] = source[props[i]];
	}
	return target;
};

assignShim.shim = function shimObjectAssign() {
    if (!Object.assign) {
        Object.assign = assignShim;
    }
    return Object.assign || assignShim;
};

module.exports = assignShim;


Use a for loop, because ES3 browsers don't have "reduce"