May 14, 2026
4:58 p.m.
Native VarXor already converts a BSTR operand to VT_I4 when it parses as a number, falling back to VT_BOOL otherwise; VarAnd, VarOr and VarImp do not. That left expressions like ""1"" And ""2"" producing Boolean[True] in Wine instead of native's Long[0]. Apply the same coercion in interp_and / interp_or / interp_imp before calling oleaut32 so the bitwise result type matches. -- v2: vbscript: Coerce BSTR operands of And/Or/Imp to number-or-Boolean. vbscript/tests: Add tests for And/Or/Imp with BSTR operands. https://gitlab.winehq.org/wine/wine/-/merge_requests/10901