I ran into a script where someone placed a `:` on a new line after an `Else` but before another statement:
```
Else
: VelCoef = LinearEnvelope(BallPos, VelocityIn, VelocityOut)
if Enabled then aBall.Velx = aBall.Velx*VelCoef
if Enabled then aBall.Vely = aBall.Vely*VelCoef
end if
```
I confirmed that this is allowed and works.
I've updated the grammar, and replaced `NL` with `StSep_opt` as it seems to cover all the bases.
Fixes: https://bugs.winehq.org/show_bug.cgi?id=54234
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2142
While running in XCode's profiler, I noticed memory leaks when safearrays were used in `For Each` statements.
The following code would leak a safearray allocation:
```
For Each obj In vpDict.Keys : Debug.Print "Key" : Next
```
This following code does not leak:
```
Dim x
x = vpDict.Keys
For Each obj In x : Debug.Print "Key" : Next
```
Fixes: https://bugs.winehq.org/show_bug.cgi?id=54456
--
v2: vbscript: Fix memory leak in owned safearray iterator
https://gitlab.winehq.org/wine/wine/-/merge_requests/2141
Not completely sure if it's worth having for 8.0, but opening this to share the target I'm trying to reach.
--
v7: ntdll: Add a thread-specific category group cache.
ntdll: Use atomics and lock-free list for category groups.
ntdll: Implement Low Fragmentation Heap frontend.
ntdll: Split heap_resize_block into heap_resize_(block|large) helpers.
ntdll: Count allocations and automatically enable LFH.
ntdll: Increase heap block tail_size capacity to 16 bits.
ntdll: Implement HeapCompatibilityInformation.
ntdll: Fix HeapWalk with empty uncommitted consecutive subheaps.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1628