Когда разрабатываешь кросс платформенный движок, очень важно держать в голове особенности различных платформ. Так и сегодня столкнулся с забавным багом связанным с различиями в реализации хэширования строк.
Ни для кого не секрет, что поиск по хэшу происходит намного быстрей. Соответственно очень важна консистентность. Бага заключалась в том, что я при конвертации ассетов на Windows сохранял хэши в файл, а потом их загружал в webassembly.
Потом же я обращался к кэшу через хэширование строки уже на стороне webassembly. Из за различий в реализации функции хэширования, значения созданные на Windows не совпадали со значениями созданными на Webassembly, из за этого движок не мог найти нужный ресурс.
В конечном итоге я решил просто использовать свою функцию вычисления хэша для строки. Которая гарантированно будет выдавать одинаковый результат на всех платформах.