code: function resolveVariable(identifier) {
              if (!resolvedVariableCache.has(identifier)) {
                  const surroundingScope = getScope(identifier);
  
                  if (surroundingScope) {
                      resolvedVariableCache.set(identifier, resolveVariableInScope(identifier, surroundingScope));
                  } else {
                      resolvedVariableCache.set(identifier, null);
                  }
              }
  
              return resolvedVariableCache.get(identifier);
          }
docs: Resolves an identifier to a variable
  @param {ASTNode} identifier An identifier node
  @returns {Variable|null} The escope Variable that uses this identifier