function inherit(dest, src, noParent) {
    while (src && src !== Object.prototype) {
        Object.getOwnPropertyNames(src).forEach(function (name) {
            if (name != '.class' && !dest.hasOwnProperty(name)) {
                var desc = Object.getOwnPropertyDescriptor(src, name);
                Object.defineProperty(dest, name, desc);
            }
        });
        if (noParent) {
            break;
        }
        src = src.__proto__;
    }
    return dest;
}
// Class Definition using ECMA5 prototype chain
Class Definition using ECMA5 prototype chain
Class Definition using ECMA5 prototype chain
function inherit(dest, src, noParent) {
    while (src && src !== Object.prototype) {
        Object.getOwnPropertyNames(src).forEach(function (name) {
            if (name != '.class' && !dest.hasOwnProperty(name)) {
                var desc = Object.getOwnPropertyDescriptor(src, name);
                Object.defineProperty(dest, name, desc);
            }
        });
        if (noParent) {
            break;
        }
        src = src.__proto__;
    }
    return dest;
}
function inherit ( dest , src , noParent ) { while ( src && src !== Object . prototype ) { Object . getOwnPropertyNames ( src ) . forEach ( function ( name ) { if ( name != '.class' && ! dest . hasOwnProperty ( name ) ) { var desc = Object . getOwnPropertyDescriptor ( src , name ) ; Object . defineProperty ( dest , name , desc ) ; } } ) ; if ( noParent ) { break ; } src = src . __proto__ ; } return dest ; }
Class Definition using ECMA5 prototype chain
Class Definition using ECMA5 prototype chain