docs/libs/typescript.js
function pushTypeResolution(target, propertyName) {
            var resolutionCycleStartIndex = findResolutionCycleStartIndex(target, propertyName);
            if (resolutionCycleStartIndex >= 0) {
                // A cycle was found
                var length_2 = resolutionTargets.length;
                for (var i = resolutionCycleStartIndex; i < length_2; i++) {
                    resolutionResults[i] = false;
                }
                return false;
            }
            resolutionTargets.push(target);
            resolutionResults.push(/*items*/ true);
            resolutionPropertyNames.push(propertyName);
            return true;
        }
function pushTypeResolution(target, propertyName) {
            var resolutionCycleStartIndex = findResolutionCycleStartIndex(target, propertyName);
            if (resolutionCycleStartIndex >= 0) {
                // A cycle was found
                var length_2 = resolutionTargets.length;
                for (var i = resolutionCycleStartIndex; i < length_2; i++) {
                    resolutionResults[i] = false;
                }
                return false;
            }
            resolutionTargets.push(target);
            resolutionResults.push(/*items*/ true);
            resolutionPropertyNames.push(propertyName);
            return true;
        }
function pushTypeResolution ( target , propertyName ) { var resolutionCycleStartIndex = findResolutionCycleStartIndex ( target , propertyName ) ; if ( resolutionCycleStartIndex >= 0 ) { // A cycle was found var length_2 = resolutionTargets . length ; for ( var i = resolutionCycleStartIndex ; i < length_2 ; i ++ ) { resolutionResults [ i ] = false ; } return false ; } resolutionTargets . push ( target ) ; resolutionResults . push ( /*items*/ true ) ; resolutionPropertyNames . push ( propertyName ) ; return true ; }
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 entries pushed after it are changed to false,
and the value false is returned. Otherwise, the new entry is just pushed onto the stack, and true is returned.
In order to see if the same query has already been done before, the target object and the propertyName both
must match the one passed in.

@param target The symbol, type, or signature whose type is being queried
@param propertyName The property name that should be used to query the target for its type
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 entries pushed after it are changed to false and the value false is returned . Otherwise the new entry is just pushed onto the stack and true is returned . In order to see if the same query has already been done before the target object and the propertyName both must match the one passed in .