On Fri Apr 17 14:12:56 2026 +0000, Jacek Caban wrote:
I wonder if we should special-case VT_DISPATCH here. Most vbscript code simply uses `to_string`, which should work here for other argument types as well. `VariantCopy` is obviously faster, but as this case shows, it is not correct for corner cases (and probably not a popular code path anyway). Tested on Windows, VariantCopy in Eval is intentional. Non-BSTR/non-DISPATCH args are preserved verbatim (including types to_string can't convert, like arrays and Null), while Execute/ExecuteGlobal uniformly return err 13 for the same types (not a to_string path either). Only VT_DISPATCH invokes DISPID_VALUE in both.
Added tests for Eval(Array) pass-through and Execute Null/Array/True → err 13 to lock this in. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10600#note_136769