* Push an entry on the type resolution stack. If an entry with the given target and the given property name * is already on the stack, and no entries in between already have a type, then a circularity has occurred. * In this case, the result values of the existing entry and all ent
(target, propertyName)
| 55623 | * @param propertyName The property name that should be used to query the target for its type |
| 55624 | */ |
| 55625 | function pushTypeResolution(target, propertyName) { |
| 55626 | var resolutionCycleStartIndex = findResolutionCycleStartIndex(target, propertyName); |
| 55627 | if (resolutionCycleStartIndex >= 0) { |
| 55628 | // A cycle was found |
| 55629 | var length_3 = resolutionTargets.length; |
| 55630 | for (var i = resolutionCycleStartIndex; i < length_3; i++) { |
| 55631 | resolutionResults[i] = false; |
| 55632 | } |
| 55633 | return false; |
| 55634 | } |
| 55635 | resolutionTargets.push(target); |
| 55636 | resolutionResults.push(/*items*/ true); |
| 55637 | resolutionPropertyNames.push(propertyName); |
| 55638 | return true; |
| 55639 | } |
| 55640 | function findResolutionCycleStartIndex(target, propertyName) { |
| 55641 | for (var i = resolutionTargets.length - 1; i >= 0; i--) { |
| 55642 | if (hasType(resolutionTargets[i], resolutionPropertyNames[i])) { |
no test coverage detected
searching dependent graphs…