lib/platelets.js
function merge(dest, src, ctyp, nou, non) {
    if (!src || typeof src !== 'object') return dest;
    var keys = Object.keys(src);
    var i = keys.length, dt;
    while (i--) {
        if (isNaN(keys[i]) && src.hasOwnProperty(keys[i]) && 
            (!nou || (nou && typeof src[keys[i]] !== 'undefined')) &&
            (!non || (non && src[keys[i]] !== null))) {
            if (ctyp && dest[keys[i]] != null && (dt = typeof dest[keys[i]]) !== 'undefined' && dt !== typeof src[keys[i]]) {
                continue;
            }
            dest[keys[i]] = src[keys[i]];
        }
    }
    return dest;
}
function merge(dest, src, ctyp, nou, non) {
    if (!src || typeof src !== 'object') return dest;
    var keys = Object.keys(src);
    var i = keys.length, dt;
    while (i--) {
        if (isNaN(keys[i]) && src.hasOwnProperty(keys[i]) && 
            (!nou || (nou && typeof src[keys[i]] !== 'undefined')) &&
            (!non || (non && src[keys[i]] !== null))) {
            if (ctyp && dest[keys[i]] != null && (dt = typeof dest[keys[i]]) !== 'undefined' && dt !== typeof src[keys[i]]) {
                continue;
            }
            dest[keys[i]] = src[keys[i]];
        }
    }
    return dest;
}
function merge ( dest , src , ctyp , nou , non ) { if ( ! src || typeof src !== 'object' ) return dest ; var keys = Object . keys ( src ) ; var i = keys . length , dt ; while ( i -- ) { if ( isNaN ( keys [ i ] ) && src . hasOwnProperty ( keys [ i ] ) && ( ! nou || ( nou && typeof src [ keys [ i ] ] !== 'undefined' ) ) && ( ! non || ( non && src [ keys [ i ] ] !== null ) ) ) { if ( ctyp && dest [ keys [ i ] ] != null && ( dt = typeof dest [ keys [ i ] ] ) !== 'undefined' && dt !== typeof src [ keys [ i ] ] ) { continue ; } dest [ keys [ i ] ] = src [ keys [ i ] ] ; } } return dest ; }
Merges an object with the properties of another object

@arg {Object} dest the destination object where the properties will be added
@arg {Object} src the source object that will be used for adding new properties to the destination
@arg {Boolean} ctyp flag that ensures that source values are constrained to the same type as the destination values when present
@arg {Boolean} nou flag that prevents merge of undefined values
@arg {Boolean} non flag that prevents merge of null values
@returns {Object} the destination object
Merges an object with the properties of another object