Skip to content

Commit b1ec103

Browse files
committed
Fixed U.isEqual().
1 parent a76def4 commit b1ec103

3 files changed

Lines changed: 28 additions & 3 deletions

File tree

changes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
- fixed: F.responsePipe() --> problem with transmitted headers
3434
- fixed: evaluating of @{helpers.helper_name()}
3535
- fixed: HTML minification of UTF8 characters
36+
- fixed: U.isEqual()
3637

3738
- improved performance of the response
3839
- improved total performance

test/test-utils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -595,8 +595,8 @@ function other() {
595595
}, 300);
596596
});
597597

598-
var a = { a: 1, b: 2, name: 'Peter', isActive: true };
599-
var b = { a: 1, b: 2, name: 'Peter', isActive: true };
598+
var a = { a: 1, b: 2, name: 'Peter', isActive: true, dt: new Date() };
599+
var b = { a: 1, b: 2, name: 'Peter', isActive: true, dt: new Date() };
600600

601601
assert.ok(utils.isEqual(a, b), 'utils.isEqual(1)');
602602

utils.js

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,32 @@ exports.isEqual = function(obj1, obj2, properties) {
218218

219219
for (var i = 0, length = keys.length; i < length; i++) {
220220
var key = keys[i];
221-
if (obj1[key] === obj2[key])
221+
var a = obj1[key];
222+
var b = obj2[key];
223+
var ta = typeof(a);
224+
var tb = typeof(b);
225+
226+
if (ta !== tb)
227+
return false;
228+
229+
if (a === b)
222230
continue;
231+
232+
if (a instanceof Date && b instanceof Date) {
233+
if (a.getTime() === b.getTime())
234+
continue;
235+
return false;
236+
} else if (a instanceof Array && b instanceof Array) {
237+
if (JSON.stringify(a) === JSON.stringify(b))
238+
continue;
239+
return false;
240+
}
241+
242+
if (ta === OBJECT && tb === OBJECT) {
243+
if (exports.isEqual(a, b))
244+
continue;
245+
}
246+
223247
return false;
224248
}
225249

0 commit comments

Comments
 (0)