shallow-equal
shallow-equal copied to clipboard
Inheritence is not handled well
The object implementation essentially checks whether:
-
aandbhave the same number of own properties, and - all of the own properties in
aequal any kind of properties inb, including inherited ones.
Because the implementation does not check whether the property in b is its own or not, it can be fooled. Try adding this test case:
{
should: 'return false for the false king',
objA: {
crownWearer: true
},
objB: (function createFalseKing() {
var spider = {
crownWearer: true
}
function FalseKing() {
this.objective = 'world domination';
}
FalseKing.prototype = spider;
return new FalseKing();
})(),
result: false
}