| // forked from |
| // https://github.com/vmattos/js-extend/blob/7023fd69a9e9552688086b8b8006b1fcf916a306/extend.js |
| // TODO: I don't know why we have two different extend() functions in PouchDB |
| |
| var slice = Array.prototype.slice; |
| var each = Array.prototype.forEach; |
| |
| function extend(obj) { |
| if (typeof obj !== 'object') { |
| throw obj + ' is not an object' ; |
| } |
| |
| var sources = slice.call(arguments, 1); |
| |
| each.call(sources, function (source) { |
| if (source) { |
| for (var prop in source) { |
| if (typeof source[prop] === 'object' && obj[prop]) { |
| extend.call(obj, obj[prop], source[prop]); |
| } else { |
| obj[prop] = source[prop]; |
| } |
| } |
| } |
| }); |
| |
| return obj; |
| } |
| |
| export default extend; |