If string is not a valid number it does not throw exception as it should.
It seems I broke parsing '0' as boolean while cleaning code. I replaced == operation by ===.
Now parsing 'boolean' option is fixed (I still don't like using numbers as booleans).