While at the same time, this is just a 'perception' thing.
The user is always downloading all the JS, just not really keeping it in a place they would look at and not having to click a "Download" button.
As long as it is something I want to be loading all at once, I would go with JSON and use the JSON binary format provided by QJsonDocument and forget about it.
But if I expect it to get bigger and need stuff partially loaded, things get lengthier.
Stream Reading libraries (e.g. the XML one in Qt) makes it much longer to write and that's where I would consider whether to use a database instead.
And it's better to be considered so.
The name itself suggests a Comma as a separator, but we know how inconvenient that is and that tab characters tend to be useful in most cases.
Even LibreOffice Calc asks the user what they expect as the separator when given a csv file, even if it has enough commas to feel correct.
One big reason for requiring comments being updates the same time as what is commented. I once managed to do that for a while when I alone was making and maintaining a project.
It becomes harder, the more people are working on a project and the larger the project gets.
But the alternative would lead to Java-like function-etc names and that is not very desirable either.
Are you sure it wasn't just the frontend on your system that froze?