shithub: puzzles

Download patch

ref: 8d3a93ce47237114a88d8bed81ab175994eb9a6b
parent: 2499eb47fa4e0c86bc1b6100b4922026670b2ad8
author: Ben Harris <bjh21@bjh21.me.uk>
date: Sun Apr 2 16:58:30 EDT 2023

js: load games using FileReader.readAsArrayBuffer()

Using .readAsText() meant that trying to load a non-text file (for
instance something that's not a save file at all) would generate an
"RuntimeError: index out of bounds".  This would then leave the
Emscripten runtime in a broken state.

It might even be possible for a real save file not to be valid UTF-8,
for instance if it came from a platform that used a different character
encoding for random seeds.

There's still a problem with opening very large files, apparently
because Emscripten tries to stuff the entire file onto the C stack.
That will probably have to be fixed by properly exposing the incremental
file-loading API to JavaScript.