diff --git a/dlls/jscript/string.c b/dlls/jscript/string.c index 8ef16561fe9..3ca29afb9e3 100644 --- a/dlls/jscript/string.c +++ b/dlls/jscript/string.c @@ -1645,26 +1645,21 @@ static HRESULT StringConstr_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags break; } case DISPATCH_CONSTRUCT: { + jsstr_t *str; jsdisp_t *ret; if(argc) { - jsstr_t *str; - hres = to_string(ctx, argv[0], &str); if(FAILED(hres)) return hres; - - hres = create_string(ctx, str, &ret); - jsstr_release(str); }else { - hres = create_string(ctx, jsstr_empty(), &ret); + str = jsstr_empty(); } - if(FAILED(hres)) - return hres; - - *r = jsval_obj(ret); - break; + hres = create_string(ctx, str, &ret); + if (SUCCEEDED(hres)) *r = jsval_obj(ret); + jsstr_release(str); + return hres; } default: