diff --git a/lib/util.js b/lib/util.js index 823b6f051f04..4bf0e8a7b555 100644 --- a/lib/util.js +++ b/lib/util.js @@ -744,17 +744,16 @@ exports._errnoException = function(err, syscall, original, additions) { e.errno = errname; e.syscall = syscall; if (additions && isObject(additions)) { - var add = exports._extend(e, additions); - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - var key = keys[i]; - var val = add[key]; - if (isNullOrUndefined(val) || isFunction(val)) { - delete add[key]; + var keys = Object.keys(additions); + var len = keys.length; + for (var i = 0; i < len; i++) { + if (isNullOrUndefined(keys[i]) || isFunction(keys[i])) { + delete additions[keys[i]]; + keys.splice(i, 1); + i--; } } - e = add; + exports._extend(e, additions); } return e; };