diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c index 4feb2a9e2dc..ace9c7c674a 100644 --- a/dlls/vbscript/interp.c +++ b/dlls/vbscript/interp.c @@ -698,8 +698,26 @@ static HRESULT interp_div(exec_ctx_t *ctx) static HRESULT interp_mul(exec_ctx_t *ctx) { - FIXME("\n"); - return E_NOTIMPL; + variant_val_t r, l; + VARIANT v; + HRESULT hres; + + TRACE("\n"); + + hres = stack_pop_val(ctx, &r); + if(FAILED(hres)) + return hres; + + hres = stack_pop_val(ctx, &l); + if(SUCCEEDED(hres)) { + hres = VarMul(l.v, r.v, &v); + release_val(&l); + } + release_val(&r); + if(FAILED(hres)) + return hres; + + return stack_push(ctx, &v); } static HRESULT interp_neg(exec_ctx_t *ctx)