code: function parseArray () {
    if (tokenType === TOKENTYPE.DELIMITER && token === '[') {
      getToken();
  
      let array = [];
  
      if (tokenType === TOKENTYPE.DELIMITER && token === ']') {
        // empty array
        getToken();
        return array;
      }
  
      // add this array to the stack
      const stackIndex = stack.length;
      stack[stackIndex] = array;
  
      while (true) {
        // parse item
        path[stackIndex] = array.length + '';
        array.push(parseObject());
  
        // parse item separator
        if (tokenType !== TOKENTYPE.DELIMITER || token !== ',') {
          break;
        }
        getToken();
      }
  
      if (tokenType !== TOKENTYPE.DELIMITER || token !== ']') {
        throw createSyntaxError('Comma or end of array "]" expected');
      }
      getToken();
  
      // remove current entry from the stack
      stack.length = stackIndex;
      path.length = stackIndex;
  
      return array;
    }
  
    return parseString();
  }
docs: Parse an object like '["item1", "item2", ...]'
  @return {*}