demo/typescript.js
function isSameScopeDescendentOf(initial, parent, stopAt) {
            if (!parent) {
                return false;
            }
            for (var current = initial; current && current !== stopAt && !ts.isFunctionLike(current); current = current.parent) {
                if (current === parent) {
                    return true;
                }
            }
            return false;
        }
function isSameScopeDescendentOf(initial, parent, stopAt) {
            if (!parent) {
                return false;
            }
            for (var current = initial; current && current !== stopAt && !ts.isFunctionLike(current); current = current.parent) {
                if (current === parent) {
                    return true;
                }
            }
            return false;
        }
function isSameScopeDescendentOf ( initial , parent , stopAt ) { if ( ! parent ) { return false ; } for ( var current = initial ; current && current !== stopAt && ! ts . isFunctionLike ( current ) ; current = current . parent ) { if ( current === parent ) { return true ; } } return false ; }
/* Starting from 'initial' node walk up the parent chain until 'stopAt' node is reached.
If at any point current node is equal to 'parent' node - return true.
Return false if 'stopAt' node is reached or isFunctionLike(current) === true.
/ * Starting from initial node walk up the parent chain until stopAt node is reached . If at any point current node is equal to parent node - return true . Return false if stopAt node is reached or isFunctionLike ( current ) === true .