This same sentence is present in the v1 docs, however, the behavior between the two versions differs.https://lexikos.github.io/v2/docs/Concepts.htm#boolean wrote: When a value is required to be either true or false, a blank or zero value is considered false and all other values are considered true.
In v2, a numeric string is, seemingly, evaluated numerically before its boolean truthfulness is tested. This has some unintuitive side-effects:
- "0" is false
- "0.0" is false
- "-0x00000000" is false
This behavior breaks parsers that use something like While SubStr(Str, Pos, 1) to traverse. The rather clumsy workaround is While (SubStr(Str, Pos, 1) !== "").
I have tested this on a107 and a108 (latest as of today).