lib/util.js
function (child, base) {
        Object.defineProperty(child, 'super_', {
            value: _.isFunction(base) ? base : _.noop,
            configurable: false,
            enumerable: false,
            writable: false
        });

        child.prototype = Object.create((_.isFunction(base) ? base.prototype : base), {
            constructor: {
                value: child,
                enumerable: false,
                writable: true,
                configurable: true
            }
        });
        return child;
    }
function (child, base) {
        Object.defineProperty(child, 'super_', {
            value: _.isFunction(base) ? base : _.noop,
            configurable: false,
            enumerable: false,
            writable: false
        });

        child.prototype = Object.create((_.isFunction(base) ? base.prototype : base), {
            constructor: {
                value: child,
                enumerable: false,
                writable: true,
                configurable: true
            }
        });
        return child;
    }
function ( child , base ) { Object . defineProperty ( child , 'super_' , { value : _ . isFunction ( base ) ? base : _ . noop , configurable : false , enumerable : false , writable : false } ) ; child . prototype = Object . create ( ( _ . isFunction ( base ) ? base . prototype : base ) , { constructor : { value : child , enumerable : false , writable : true , configurable : true } } ) ; return child ; }
Creates an inheritance relation between the child and the parent, adding a 'super_' attribute to the
child, and setting up the child prototype.

@param {Function} child - The target object to create parent references for,.
@param {Function} base - The parent association to assign to the provided child definition.
@returns {*}
Creates an inheritance relation between the child and the parent adding a super_ attribute to the child and setting up the child prototype .