code: function checksum(str) {
    let hash = 0
    const strlen = str.length
    if (strlen === 0) {
      return hash
    }
  
    for (let i = 0; i < strlen; i++) {
      hash = (hash << 5) - hash + str.charCodeAt(i)
      hash &= hash // Convert to 32bit integer
    }
  
    return hash
  }
docs: /* eslint-disable no-bitwise