code: function getFirstAndLastTokens(node, borderOffset) {
              borderOffset |= 0 // eslint-disable-line no-param-reassign
  
              let firstToken = sourceCode.getFirstToken(node)
              let lastToken = sourceCode.getLastToken(node)
  
              if (!firstToken || !lastToken) {
                  return {
                      firstToken: firstToken || node,
                      lastToken: lastToken || node,
                  }
              }
  
              // Get the outermost left parenthesis if it's parenthesized.
              let t = undefined
              let u = undefined
              while (
                  (t = sourceCode.getTokenBefore(firstToken)) &&
                  (u = sourceCode.getTokenAfter(lastToken)) &&
                  isLeftParen(t) &&
                  isRightParen(u) &&
                  t.range[0] >= borderOffset
              ) {
                  firstToken = t
                  lastToken = u
              }
  
              return { firstToken, lastToken }
          }
docs: Get the first and last tokens of the given node.
  If the node is parenthesized, this gets the outermost parentheses.
  @param {Node} node The node to get.
  @param {number} [borderOffset] The least offset of the first token. Defailt is 0. This value is used to prevent false positive in the following case: `(a) => {}` The parentheses are enclosing the whole parameter part rather than the first parameter, but this offset parameter is needed to distinguish.
  @returns {{firstToken:Token,lastToken:Token}} The gotten tokens.