code: function getActualLastToken(sourceCode, node) {
      const semiToken = sourceCode.getLastToken(node);
      const prevToken = sourceCode.getTokenBefore(semiToken);
      const nextToken = sourceCode.getTokenAfter(semiToken);
      const isSemicolonLessStyle = Boolean(
          prevToken &&
          nextToken &&
          prevToken.range[0] >= node.range[0] &&
          astUtils.isSemicolonToken(semiToken) &&
          semiToken.loc.start.line !== prevToken.loc.end.line &&
          semiToken.loc.end.line === nextToken.loc.start.line
      );
  
      return isSemicolonLessStyle ? prevToken : semiToken;
  }
docs: Gets the actual last token.
  
  If a semicolon is semicolon-less style's semicolon, this ignores it.
  For example:
  
  foo()
  ;[1, 2, 3].forEach(bar)
  
  @param {SourceCode} sourceCode The source code to get tokens.
  @param {ASTNode} node The node to get.
  @returns {Token} The actual last token.
  @private