diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index 7d5ebe2c863..aa81de7ad75 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -656,7 +656,13 @@ static HRESULT prop_put(jsdisp_t *This, dispex_prop_t *prop, jsval_t val) TRACE("no prop_put\n"); return S_OK; } - return This->builtin_info->prop_put(This, prop->u.id, val); + hres = This->builtin_info->prop_put(This, prop->u.id, val); + if(hres != S_FALSE) + return hres; + prop->type = PROP_JSVAL; + prop->flags = PROPF_ENUMERABLE | PROPF_CONFIGURABLE | PROPF_WRITABLE; + prop->u.val = jsval_undefined(); + break; default: ERR("type %d\n", prop->type); return E_FAIL; diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index 8a7119c5451..1343c75ba34 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -3926,6 +3926,9 @@ HRESULT HTMLWindow_invoke(DispatchEx *dispex, DISPID id, LCID lcid, WORD flags, case DISPATCH_PROPERTYPUT: { DISPID dispex_id; + if(This->event_target.dispex.jsdisp) + return S_FALSE; + hres = dispex_get_dynid(&This->event_target.dispex, prop->name, TRUE, &dispex_id); if(FAILED(hres)) return hres;