precompile/precompile.js
function (node, nodeType) {
    var parentNode = node;
    var levelNode = 0; // Security in while loop
    while ((parentNode.type !== nodeType) &&
        (parentNode.parent !== undefined) &&
        (levelNode <= 20)) {
      levelNode++;
      parentNode = parentNode.parent;
    }
    parentNode.levelNode = levelNode;
    return parentNode;
  }
function (node, nodeType) {
    var parentNode = node;
    var levelNode = 0; // Security in while loop
    while ((parentNode.type !== nodeType) &&
        (parentNode.parent !== undefined) &&
        (levelNode <= 20)) {
      levelNode++;
      parentNode = parentNode.parent;
    }
    parentNode.levelNode = levelNode;
    return parentNode;
  }
function ( node , nodeType ) { var parentNode = node ; var levelNode = 0 ; // Security in while loop while ( ( parentNode . type !== nodeType ) && ( parentNode . parent !== undefined ) && ( levelNode <= 20 ) ) { levelNode ++ ; parentNode = parentNode . parent ; } parentNode . levelNode = levelNode ; return parentNode ; }
Returns the first ancestor of the given node in the AST tree that has the
specified node type.

@function
@param {Object} node The node to start from in the AST tree
@param {string} nodeType The type of node you are searching for,
e.g. "VariableDeclaration", "ExpressionStatement"...
@return {Object} The first node in the ancestors of the given node that
matches the given type, null if not found
Returns the first ancestor of the given node in the AST tree that has the specified node type .