code: function getTopLoopNode(node, excludedNode) {
      const border = excludedNode ? excludedNode.range[1] : 0;
      let retv = node;
      let containingLoopNode = node;
  
      while (containingLoopNode && containingLoopNode.range[0] >= border) {
          retv = containingLoopNode;
          containingLoopNode = getContainingLoopNode(containingLoopNode);
      }
  
      return retv;
  }
docs: Gets the containing loop node of a given node.
  If the loop was nested, this returns the most outer loop.
  
  @param {ASTNode} node - A node to get. This is a loop node.
  @param {ASTNode|null} excludedNode - A node that the result node should not
  include.
  @returns {ASTNode} The most outer loop node.