Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 9bedeb3

Browse files
jbedardIgorMinar
authored andcommitted
perf(extend): remove use of forEach to remove calls/closures/passing arguments
Closes #8898
1 parent df9e60c commit 9bedeb3

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

src/Angular.js

+11-7
Original file line numberDiff line numberDiff line change
@@ -336,15 +336,19 @@ function setHashKey(obj, h) {
336336
*/
337337
function extend(dst) {
338338
var h = dst.$$hashKey;
339-
forEach(arguments, function(obj) {
340-
if (obj !== dst) {
341-
forEach(obj, function(value, key) {
342-
dst[key] = value;
343-
});
339+
340+
for (var i = 1, ii = arguments.length; i < ii; i++) {
341+
var obj = arguments[i];
342+
if (obj) {
343+
var keys = Object.keys(obj);
344+
for (var j = 0, jj = keys.length; j < jj; j++) {
345+
var key = keys[j];
346+
dst[key] = obj[key];
347+
}
344348
}
345-
});
349+
}
346350

347-
setHashKey(dst,h);
351+
setHashKey(dst, h);
348352
return dst;
349353
}
350354

0 commit comments

Comments
 (0)