[ospec] Fix array deepEquals corner cases

This commit is contained in:
Pierre-Yves Gerardy 2017-01-01 15:08:46 +01:00
parent af39796da3
commit 02545a8a98

View file

@ -145,9 +145,8 @@ module.exports = new function init() {
if (a.length === b.length && (a instanceof Array && b instanceof Array || aIsArgs && bIsArgs)) {
var aKeys = Object.getOwnPropertyNames(a), bKeys = Object.getOwnPropertyNames(b)
if (aKeys.length !== bKeys.length) return false
var larger = aKeys.length < bKeys.length ? bKeys : aKeys
for (var i = 0; i < larger.length; i++) {
if (!deepEqual(a[larger[i]], b[larger[i]])) return false
for (var i = 0; i < aKeys.length; i++) {
if (!b.hasOwnProperty(aKeys[i]) || !deepEqual(a[aKeys[i]], b[aKeys[i]])) return false
}
return true
}