At the moment all available sequence types are registered from qv4sequenceobject.cpp.
qv4sequenceobject.cpp produces the largest single piece of binary code in Qt QML. It registers a variety of C++ containers as sequence objects to V4. For each combination of container and item type a few accessor functions have to be generated, leading to combinatorial explosion. In particular, the following types are registered:
Quite obviously, this list is rather arbitrary. Hardly anyone will use all of those, but some rather common ones are missing. For example there is no real reason why you wouldn't be able to pass a QList<QColor>.
The fix to this involves three measures:
- Add public API to register your own container types as sequence objects via a template.
- Add a convenience wrapper around that to allow registering all the currently pre-registered sequence objects in one line in Qt6.
- Drop the pre-registering in Qt6.