Hi,
If the first expression returns a NAN, then the second element is taken. If the second element is NAN, then a NAN is returned, otherwise 0.
From logical point of view NAN || logic expression returns a logic expression, but logic expression || NAN returns NAN. In general, I'm missing a lot of if isnan() conditions in the code to catch NAN values, for example also for OP_LOGICAL_AND, NAN would also occur here if and only if the second expression is NAN.
Kind regards,
Thaddäus
Hi,
expr/expr.h
Line 370 in 5e7d72c
If the first expression returns a NAN, then the second element is taken. If the second element is NAN, then a NAN is returned, otherwise 0.
From logical point of view NAN || logic expression returns a logic expression, but logic expression || NAN returns NAN. In general, I'm missing a lot of if isnan() conditions in the code to catch NAN values, for example also for OP_LOGICAL_AND, NAN would also occur here if and only if the second expression is NAN.
Kind regards,
Thaddäus