80b5df5e04b9b3b015f6d28fd6fb9c6f4ef76405
[platform/framework/web/crosswalk-tizen.git] /
1 'use strict';
2
3 var value = require('./valid-value')
4
5   , defineProperty = Object.defineProperty
6   , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
7   , getOwnPropertyNames = Object.getOwnPropertyNames;
8
9 module.exports = function (target, source) {
10         var error;
11         target = Object(value(target));
12         getOwnPropertyNames(Object(value(source))).forEach(function (name) {
13                 try {
14                         defineProperty(target, name, getOwnPropertyDescriptor(source, name));
15                 } catch (e) { error = e; }
16         });
17         if (error !== undefined) throw error;
18         return target;
19 };