UNPKG

compound-ex4

Version:

Compound-ex4 - MVC framework for NodeJS (ExpressJs 4 version), fork compoundjs(https://github.com/1602/compound)

35 lines (31 loc) 996 B
'use strict'; var value = require('./valid-value') , mixin = require('./mixin') , defineProperty = Object.defineProperty , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor , getOwnPropertyNames = Object.getOwnPropertyNames , getPrototypeOf = Object.getPrototypeOf , hasOwnProperty = Object.prototype.hasOwnProperty; module.exports = function (target, source) { var error, end, define; target = Object(value(target)); source = Object(value(source)); end = getPrototypeOf(target); if (source === end) return target; try { mixin(target, source); } catch (e) { error = e; } source = getPrototypeOf(source); define = function (name) { if (hasOwnProperty.call(target, name)) return; try { defineProperty(target, name, getOwnPropertyDescriptor(source, name)); } catch (e) { error = e; } }; while (source && (source !== end)) { getOwnPropertyNames(source).forEach(define); source = getPrototypeOf(source); } if (error) throw error; return target; };