public/libs/obviel/1.0b5/obviel-sync.js
function(config, defaults) {
        var key, subdefaults, subconfig;
        for (key in defaults) {
            subdefaults = defaults[key];
            subconfig = config[key];
             if ($.isPlainObject(subdefaults)) {
                 if (!$.isPlainObject(subconfig)) {
                     subconfig = config[key] = {};
                 }
                 defaultsUpdater(subconfig, subdefaults);
                 // } else if (subconfig === undefined) {
                 //     config[key] = null;
                 // }
             } else {
                 if (subconfig === undefined) {
                     config[key] = subdefaults;
                 }
             }
        }
    }
function(config, defaults) {
        var key, subdefaults, subconfig;
        for (key in defaults) {
            subdefaults = defaults[key];
            subconfig = config[key];
             if ($.isPlainObject(subdefaults)) {
                 if (!$.isPlainObject(subconfig)) {
                     subconfig = config[key] = {};
                 }
                 defaultsUpdater(subconfig, subdefaults);
                 // } else if (subconfig === undefined) {
                 //     config[key] = null;
                 // }
             } else {
                 if (subconfig === undefined) {
                     config[key] = subdefaults;
                 }
             }
        }
    }
function ( config , defaults ) { var key , subdefaults , subconfig ; for ( key in defaults ) { subdefaults = defaults [ key ] ; subconfig = config [ key ] ; if ( $ . isPlainObject ( subdefaults ) ) { if ( ! $ . isPlainObject ( subconfig ) ) { subconfig = config [ key ] = { } ; } defaultsUpdater ( subconfig , subdefaults ) ; // } else if (subconfig === undefined) { //     config[key] = null; // } } else { if ( subconfig === undefined ) { config [ key ] = subdefaults ; } } } }
XXX maintain defaults with action?
XXX maintain defaults with action?