The previous hash (charCodeAt(0)*256 + charCodeAt(1)) only used the first 2 characters of KeyboardEvent.code strings, causing all Key* codes (KeyA, KeyB, ..., KeyZ) to collide to the same numeric value. This made Ctrl+D and Ctrl+M appear as identical bindings (false conflict) and broke keybind matching in the web fallback. djb2 hashes the full string, producing unique values for all codes.