(a, b, val, iteratorB, mode, memo)
| 722 | } |
| 723 | |
| 724 | function compareSmallSets(a, b, val, iteratorB, mode, memo) { |
| 725 | const iteratorA = a.values(); |
| 726 | const firstA = iteratorA.next().value; |
| 727 | const first = innerDeepEqual(firstA, val, mode, memo); |
| 728 | if (first) { |
| 729 | if (b.size === 1) { // Partial mode && a.size === 1 || b.size === 1 |
| 730 | return true; |
| 731 | } |
| 732 | const secondA = iteratorA.next().value; |
| 733 | return b.has(secondA) || innerDeepEqual(secondA, iteratorB.next().value, mode, memo); |
| 734 | } |
| 735 | return a.size !== 1 && innerDeepEqual(iteratorA.next().value, val, mode, memo) && ( |
| 736 | b.size === 1 || // Partial mode |
| 737 | b.has(firstA) || // Primitive or reference equal |
| 738 | innerDeepEqual(firstA, iteratorB.next().value, mode, memo) |
| 739 | ); |
| 740 | } |
| 741 | |
| 742 | function setEquiv(a, b, mode, memo) { |
| 743 | // This is a lazily initiated Set of entries which have to be compared |
no test coverage detected
searching dependent graphs…