diff options
Diffstat (limited to 'lib/util.js')
-rw-r--r-- | lib/util.js | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/util.js b/lib/util.js index c5584ee..519289a 100644 --- a/lib/util.js +++ b/lib/util.js @@ -220,14 +220,11 @@ u.pullSlice = function (start, end) { } u.mergeOpts = function (a, b) { + if (typeof b !== 'object' || b === null) return b + if (typeof a !== 'object' || a === null) return a var obj = {}, k - for (k in a) { - obj[k] = a[k] - } - for (k in b) { - if (b[k] != null) obj[k] = b[k] - else delete obj[k] - } + for (k in a) obj[k] = k in b ? u.mergeOpts(a[k], b[k]) : a[k] + for (k in b) if (!(k in a) && b[k] != null) obj[k] = b[k] return obj } |