diff --git a/plugins/c9.core/settings.js b/plugins/c9.core/settings.js index 94d526e0..ba3273e8 100644 --- a/plugins/c9.core/settings.js +++ b/plugins/c9.core/settings.js @@ -384,9 +384,12 @@ define(function(require, exports, module) { } var hash = isDefault ? defaults : model; + var defaultHash = defaults; if (!parts.every(function(part) { - if (!hash[part] && checkDefined) return false; + if (!hash[part] && checkDefined && !defaultHash[part]) + return false; hash = hash[part] || (hash[part] = {}); + defaultHash = defaultHash[part] || {}; return hash; })) { console.warn("Setting non defined query: ", query); diff --git a/plugins/c9.ide.configuration/configure.js b/plugins/c9.ide.configuration/configure.js index 4d98fee9..2b3e925d 100644 --- a/plugins/c9.ide.configuration/configure.js +++ b/plugins/c9.ide.configuration/configure.js @@ -311,13 +311,14 @@ define(function(require, exports, module) { for (var i = 1; i < args.length; i++) { var o = args[i]; for (var key in o) { - if (!o[key] || typeof o[key] !== "object") { - result[key] = o[key]; - } else { + if (o[key] && typeof o[key] === "object") { if (!result[key] || typeof result[key] != "object") - result[key] = {}; + result[key] = Array.isArray(o[key]) ? [] : {}; merge(result[key], o[key]); } + else { + result[key] = o[key]; + } } } return result;