mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-24 03:55:49 +08:00
fix(angular.equals): relax the comparison for undefined properties
in5ae63fd3the comparison was made consistent but strict, so that angular.equals({}, {foo: undefined}) // always returns false this turns out to cause issues for data that is being roundtripped via network and serialized via JSON because JSON.stringify serializes {foo: undefined} as {}. Since angular.equals() behaved like this before the5ae63fd3in 50% of the cases, changing the behavior in this way should not introduce any significant issues. Closes #1648
This commit is contained in:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user