lib/blueprint.js
function extend( obj, var_args ) {
        for ( var i = 1; i < arguments.length ; i += 1 ) {
            var other = arguments[ i ];
            for ( var p in other ) {
                var v = Object.getOwnPropertyDescriptor( other, p );
                if ( typeof v == "undefined" || typeof v.value == "undefined" ) {
                    delete obj[ p ];
                } else {
                    Object.defineProperty( obj, p, v );
                }
            }
        }
        return obj;
    }
function extend( obj, var_args ) {
        for ( var i = 1; i < arguments.length ; i += 1 ) {
            var other = arguments[ i ];
            for ( var p in other ) {
                var v = Object.getOwnPropertyDescriptor( other, p );
                if ( typeof v == "undefined" || typeof v.value == "undefined" ) {
                    delete obj[ p ];
                } else {
                    Object.defineProperty( obj, p, v );
                }
            }
        }
        return obj;
    }
function extend ( obj , var_args ) { for ( var i = 1 ; i < arguments . length ; i += 1 ) { var other = arguments [ i ] ; for ( var p in other ) { var v = Object . getOwnPropertyDescriptor ( other , p ) ; if ( typeof v == "undefined" || typeof v . value == "undefined" ) { delete obj [ p ] ; } else { Object . defineProperty ( obj , p , v ) ; } } } return obj ; }
helper function for extending objects
helper function for extending objects