Lines Matching defs:memos
134 function innerDeepEqual(val1, val2, strict, memos) {
184 return keyCheck(val1, val2, strict, memos, kIsArray, keys1);
186 return keyCheck(val1, val2, strict, memos, kNoIterator);
225 return keyCheck(val1, val2, strict, memos, kNoIterator, keys1);
230 return keyCheck(val1, val2, strict, memos, kIsSet);
235 return keyCheck(val1, val2, strict, memos, kIsMap);
256 return keyCheck(val1, val2, strict, memos, kNoIterator);
266 function keyCheck(val1, val2, strict, memos, iterationType, aKeys) {
329 // Use memos to handle cycles.
330 if (memos === undefined) {
331 memos = {
340 const val2MemoA = memos.val1.get(val1);
342 const val2MemoB = memos.val2.get(val2);
347 memos.position++;
350 memos.val1.set(val1, memos.position);
351 memos.val2.set(val2, memos.position);
353 const areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);
355 memos.val1.delete(val1);
356 memos.val2.delete(val2);
534 function objEquiv(a, b, strict, keys, memos, iterationType) {
540 if (!setEquiv(a, b, strict, memos)) {
544 if (!mapEquiv(a, b, strict, memos)) {
551 !innerDeepEqual(a[i], b[i], strict, memos)) {
562 !innerDeepEqual(a[key], b[key], strict, memos)) {
578 if (!innerDeepEqual(a[key], b[key], strict, memos)) {