From db9d40ab1ba087cdd44fb173935b769eb7c38efd Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Tue, 2 Sep 2014 23:15:09 -0700 Subject: [PATCH] perf(extend): remove use of forEach to remove calls/closures/passing arguments --- src/Angular.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Angular.js b/src/Angular.js index a90d7ee7b35b..52e9fee0be45 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -337,13 +337,16 @@ function setHashKey(obj, h) { */ function extend(dst) { var h = dst.$$hashKey; - forEach(arguments, function(obj) { - if (obj !== dst) { - forEach(obj, function(value, key) { - dst[key] = value; - }); + for (var i = 1, ii = arguments.length; i < ii; i++) { + var obj = arguments[i]; + if (obj && obj !== dst) { + var keys = Object.keys(obj); + for (var j = 0, jj = keys.length; j < jj; j++) { + var key = keys[j]; + dst[key] = obj[key]; + } } - }); + } setHashKey(dst,h); return dst;