Problem: Reallocating the list of scripts is inefficient. Solution: Instead of using a growarray of scriptitem_T, store pointers and allocate each scriptitem_T separately. Also avoids that the growarray pointers change when sourcing a new script.
Problem: Maintaining a Vim9 branch separately is more work. Solution: Merge the Vim9 script changes.