aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Angular.js19
-rw-r--r--test/AngularSpec.js6
2 files changed, 10 insertions, 15 deletions
diff --git a/src/Angular.js b/src/Angular.js
index 21b3ef07..a7b3b98c 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -620,23 +620,18 @@ function equals(o1, o2) {
} else {
if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2)) return false;
keySet = {};
- length = 0;
for(key in o1) {
- if (key.charAt(0) === '$') continue;
-
- if (!isFunction(o1[key]) && !equals(o1[key], o2[key])) return false;
-
- length++;
+ if (key.charAt(0) === '$' || isFunction(o1[key])) continue;
+ if (!equals(o1[key], o2[key])) return false;
keySet[key] = true;
}
for(key in o2) {
- if (key.charAt(0) === '$') {
- continue;
- }
- if (!keySet[key] && !isFunction(o2[key])) return false;
- length--;
+ if (!keySet[key] &&
+ key.charAt(0) !== '$' &&
+ o2[key] !== undefined &&
+ !isFunction(o2[key])) return false;
}
- return length === 0;
+ return true;
}
}
}
diff --git a/test/AngularSpec.js b/test/AngularSpec.js
index f5638b9c..09bc902f 100644
--- a/test/AngularSpec.js
+++ b/test/AngularSpec.js
@@ -126,12 +126,12 @@ describe('angular', function() {
expect(equals(['misko'], ['misko', 'adam'])).toEqual(false);
});
- it('should ignore undefined member variables', function() {
+ it('should ignore undefined member variables during comparison', function() {
var obj1 = {name: 'misko'},
obj2 = {name: 'misko', undefinedvar: undefined};
- expect(equals(obj1, obj2)).toBe(false);
- expect(equals(obj2, obj1)).toBe(false);
+ expect(equals(obj1, obj2)).toBe(true);
+ expect(equals(obj2, obj1)).toBe(true);
});
it('should ignore $ member variables', function() {