3 var xtend = require('xtend')
4 var inherits = require('inherits')
6 module.exports = unherit
8 // Create a custom constructor which can be modified without affecting the
10 function unherit(Super) {
24 if (value && typeof value === 'object') {
25 result[key] = 'concat' in value ? value.concat() : xtend(value)
31 // Constructor accepting a single argument, which itself is an `arguments`
33 function From(parameters) {
34 return Super.apply(this, parameters)
37 // Constructor accepting variadic arguments.
39 if (!(this instanceof Of)) {
40 return new From(arguments)
43 return Super.apply(this, arguments)