diff --git a/lib/util.js b/lib/util.js index 38efa4d3..3fb29946 100644 --- a/lib/util.js +++ b/lib/util.js @@ -170,26 +170,24 @@ Util = exports || {}; * @param pProps */ Util.copyObj = function(pFromObj, pToObj, pProps) { - var lRet; - - if (!pToObj) - lRet = pToObj = {}; - - function copy(pI) { - var lName = pProps ? pProps[pI] : pI, - lValue = pFromObj[lName]; + var lRet = pToObj || pProps || {}, + copy = function(name, obj) { + var value = obj[name]; - if (lValue) - pToObj[lName] = pFromObj[lName]; - } + if (value) + pToObj[name] = obj[name]; + }, + forIn = function(obj) { + Util.forIn(obj, function(name) { + copy(name, obj); + }); + }; - if ( Util.isObject(pFromObj) ) { - if (!pProps) - Util.forIn(pFromObj, copy); - else - Util.fori(pProps.length, copy); + if (Util.isObject(pFromObj)) { + if (pProps) + forIn(pProps); - lRet = lRet || true; + forIn(pFromObj); } return lRet;