MV
Столкнулся со странным поведением:
Собрал go код в wasm. Подгружаю полученный файл в веб воркере.
Если после старта страницы открыть и закрыть (если он уже был открыт, то просто закрыть) DevTools - воркер "исчезает".
Под "исчезает" понимаю следующее: если снова открыть dev tools - консоль не видит контекст воркера (см. приложенную картинку), хотя при первом открытии - там отображается воркер.
Для тестирования добавил в воркер логирование с таймером и отправку сообщений. И то, и другое после "исчезновения" воркера перестаёт работать.
Стал экспериментировать. И тут обнаружил совсем странное поведение - если собрать тот же самый код из другого файла, то go выдаёт другой бинарь (не сходятся хэш суммы, хотя хэш суммы исходников одинаковые):
make lightИ вот если в воркер подгрузить другой WASM файл, то воркер не "исчезает" и работает как надо.
e986ba428a3be4661da27b1eedc5604156daccba4e74af9bbb672a8f66336a16 ./cmd/light/main.go
e986ba428a3be4661da27b1eedc5604156daccba4e74af9bbb672a8f66336a16 ./cmd/wasmpvp/main.go
GOOS=js GOARCH=wasm go build -o ./bin/light.wasm ./cmd/light/main.go
GOOS=js GOARCH=wasm go build -o ./bin/pvp.wasm ./cmd/wasmpvp/main.go
b9863e69230f783ed6d0e46706a90a250c89569d6084fe9666c382fd35c91bc1 ./bin/light.wasm
9eb1de0a28e36ea192bc0f250aa434a304a6edab283861bb2beaa08f3f47f336 ./bin/pvp.wasm
Всё это странное поведение наблюдается в
- Chrome Version 85.0.4183.102 (Official Build) (64-bit)
- Linux Mint 20
- go version go1.15.2 linux/amd64
В браузере Mozilla такого не происходит.
Скажите, можно как-то сравнить содержимое WASM файлов? По моим представлениям если исходный код приложения одинаковый, то и получаемые WASM файлы должны быть одинаковыми.
Может быть это нужно писать issue в Go?