'use strict';

var GetIntrinsic = require('../GetIntrinsic');

var has = require('has');

var $assign = GetIntrinsic('%Object%').assign;

module.exports = function assign(target, source) {

if ($assign) {
        return $assign(target, source);
}

// eslint-disable-next-line no-restricted-syntax
for (var key in source) {
        if (has(source, key)) {
                target[key] = source[key];
        }
}
return target;

};