Allow arrays from different frames or contexts to be equal

This commit is contained in:
Julie Ralph
2015-02-03 13:43:49 -08:00
committed by Julie Ralph
parent e173cd1c9d
commit 53b0752ff0
2 changed files with 35 additions and 5 deletions

View File

@@ -167,11 +167,14 @@ getJasmineRequireObj().matchersUtil = function(j$) {
if (result) {
// Objects with different constructors are not equivalent, but `Object`s
// from different frames are.
var aCtor = a.constructor, bCtor = b.constructor;
if (aCtor !== bCtor && !(isFunction(aCtor) && (aCtor instanceof aCtor) &&
isFunction(bCtor) && (bCtor instanceof bCtor))) {
return false;
// or `Array`s from different frames are.
var areArrays = className === '[object Array]';
if (!areArrays) {
var aCtor = a.constructor, bCtor = b.constructor;
if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&
isFunction(bCtor) && bCtor instanceof bCtor)) {
return false;
}
}
// Deep compare objects.
for (var key in a) {