After the 9 Oct updates, it no longer gets an internal error, however there is still a problem.
It may or may not be a related issue.
Using the same example code above, printing out the function results individually works, however, making multiple calls to the function in a single print statement gives unpredictable results. Example:
/*
Leap Year: Brian Flanagan
Parameter: y 4-digit year
Returns: Leap Year (1=leap, 0=not) ' Yes, there's a reason for 0 or 1
*/
Function "LeapYear",y
ly=0
If y=4*Int(y/4) Then ly=1
If y=100*Int(y/100) Then ly=0
If y=400*Int(y/400) THen ly=1
End Function(ly)
/*
Parameters: y 4-digit year
m month (1-12)
d day of month (1-31)
Returns: Day of year.
*/
Function "DayOfYear", y, m, d
doy=Int(3055*(m+2)/100)-91
If m>2 Then doy=doy-2+LeapYear(y)
doy=doy+d
End Function(doy)
// NOTE: All of the function calls work *individually*
Print DayOfYear(2020,1,31) ' Works (31)
Print DayOfYear(2020,2,29) ' Works (60)
Print DayOfYear(2020,3,3) ' Works (63)
Print DayOfYear(2020,4,18) ' Works (109)
Print DayOfYear(2020,12,31) ' Works (366)
// ...but not when multiple items are printed on the same line.
Print DayOfYear(2020,1,31),DayOfYear(2020,1,31) ' Both work.
Print DayOfYear(2020,1,31),DayOfYear(2020,4,18) ' Works 2nd x only. (wrong result on 1st)
Print DayOfYear(2020,1,31),DayOfYear(2020,12,31) ' Works 2nd x only. (wrong result on 1st)
Print DayOfYear(2020,1,31),DayOfYear(2020,12,31),DayOfYear(4,18) ' Works 2nd x only (wrong result on 1st, 3rd x = NaN)
Print DayOfYear(2020,1,31),DayOfYear(2020,2,29),DayOfYear(2020,4,18),DayOfYear(2020,12,31) ' Wrong result on 1st
Print DayOfYear(2020,1,31),DayOfYear(2020,2,29),DayOfYear(2020,4,18),DayOfYear(2020,12,31),DayOfYear(2020,3,3) ' Wrong result on 1st