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

Commit 04468db

Browse files
IgorMinarrodyhaddad
authored andcommitted
perf(shallowCopy): use Object.keys to improve performance
This change is not IE8 friendly
1 parent 55991e3 commit 04468db

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/Angular.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -819,17 +819,22 @@ function copy(source, destination, stackSource, stackDest) {
819819
* Creates a shallow copy of an object, an array or a primitive
820820
*/
821821
function shallowCopy(src, dst) {
822+
var i = 0;
822823
if (isArray(src)) {
823824
dst = dst || [];
824825

825-
for ( var i = 0; i < src.length; i++) {
826+
for (; i < src.length; i++) {
826827
dst[i] = src[i];
827828
}
828829
} else if (isObject(src)) {
829830
dst = dst || {};
830831

831-
for (var key in src) {
832-
if (hasOwnProperty.call(src, key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) {
832+
var keys = Object.keys(src);
833+
834+
for (var l = keys.length; i < l; i++) {
835+
var key = keys[i];
836+
837+
if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {
833838
dst[key] = src[key];
834839
}
835840
}

0 commit comments

Comments
 (0)