code: function isOuterIIFE(node) {
  
              /*
               * Verify that the node is an IIFE
               */
              if (!node.parent || node.parent.type !== "CallExpression" || node.parent.callee !== node) {
                  return false;
              }
  
              /*
               * Navigate legal ancestors to determine whether this IIFE is outer.
               * A "legal ancestor" is an expression or statement that causes the function to get executed immediately.
               * For example, `!(function(){})()` is an outer IIFE even though it is preceded by a ! operator.
               */
              let statement = node.parent && node.parent.parent;
  
              while (
                  statement.type === "UnaryExpression" && ["!", "~", "+", "-"].indexOf(statement.operator) > -1 ||
                  statement.type === "AssignmentExpression" ||
                  statement.type === "LogicalExpression" ||
                  statement.type === "SequenceExpression" ||
                  statement.type === "VariableDeclarator"
              ) {
                  statement = statement.parent;
              }
  
              return (statement.type === "ExpressionStatement" || statement.type === "VariableDeclaration") && statement.parent.type === "Program";
          }
docs: Check to see if the node is a file level IIFE
  @param {ASTNode} node The function node to check.
  @returns {boolean} True if the node is the outer IIFE