dist/modules/object.js
function set(obj, key, val, immutable) {
    if (immutable)
        return _set(assign({}, obj), key, val);
    return _set(obj, key, val);
}
function set(obj, key, val, immutable) {
    if (immutable)
        return _set(assign({}, obj), key, val);
    return _set(obj, key, val);
}
function set ( obj , key , val , immutable ) { if ( immutable ) return _set ( assign ( { } , obj ) , key , val ) ; return _set ( obj , key , val ) ; }
Set
Sets a value on an object using dot notation or url path.

@todo need to refactor this method.

@param obj the object to set the value on.
@param key the property used for setting the value.
@param value the value used for updating the property.
@param immutable when true the original object is NOT mutated.
Set Sets a value on an object using dot notation or url path .