Skip VariantCopyInd and VariantClear when both source and destination are simple scalar types (VT_I2, VT_I4, VT_R8, VT_BOOL, VT_EMPTY, etc.) that require no memory management. A direct struct assignment suffices for these types. Benchmarks (10M iterations, measured in isolation on top of master): - Do-While loop: 824 -> 472 ms (1.75×) - For + assignment: 324 -> 265 ms (1.22×) - Dict.Items iteration: 683 -> 324 ms (2.1×) - If-Else branching: 726 -> 644 ms (1.13×) Every variable assignment in the interpreter benefits. The fast path eliminates two cross-DLL calls to oleaut32 (VariantCopyInd + VariantClear) for each assignment of simple scalar types (VT_I2, VT_I4, VT_R8, VT_BOOL, etc.), replacing them with a single struct copy. -- v3: vbscript: Fast-path assign_value for simple non-refcounted types. https://gitlab.winehq.org/wine/wine/-/merge_requests/10541