code: function isBeginningOfElement (token, belongingNode) {
      let node = belongingNode
  
      while (node != null) {
        const parent = node.parent
        const t = parent && parent.type
        if (t != null && (t.endsWith('Statement') || t.endsWith('Declaration'))) {
          return parent.range[0] === token.range[0]
        }
        if (t === 'VExpressionContainer') {
          return node.range[0] === token.range[0]
        }
        if (t === 'CallExpression' || t === 'NewExpression') {
          const openParen = tokenStore.getTokenAfter(parent.callee, isNotRightParen)
          return parent.arguments.some(param =>
            getFirstAndLastTokens(param, openParen.range[1]).firstToken.range[0] === token.range[0]
          )
        }
        if (t === 'ArrayExpression') {
          return parent.elements.some(element =>
            element != null &&
            getFirstAndLastTokens(element).firstToken.range[0] === token.range[0]
          )
        }
        if (t === 'SequenceExpression') {
          return parent.expressions.some(expr =>
            getFirstAndLastTokens(expr).firstToken.range[0] === token.range[0]
          )
        }
  
        node = parent
      }
  
      return false
    }
docs: Check whether a given token is the first token of:
  
  - ExpressionStatement
  - VExpressionContainer
  - A parameter of CallExpression/NewExpression
  - An element of ArrayExpression
  - An expression of SequenceExpression
  
  @param {Token} token The token to check.
  @param {Node} belongingNode The node that the token is belonging to.
  @returns {boolean} `true` if the token is the first token of an element.