diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index 1cacd49a1fa..03062eebb63 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -495,6 +495,12 @@ static HRESULT prop_put(jsdisp_t *This, dispex_prop_t *prop, jsval_t val) switch(prop->type) { case PROP_BUILTIN: + if(prop->u.p->invoke) { + prop->type = PROP_JSVAL; + prop->flags = PROPF_CONFIGURABLE | PROPF_WRITABLE; + prop->u.val = jsval_undefined(); + break; + } if(!prop->u.p->setter) { TRACE("getter with no setter\n"); return S_OK; diff --git a/dlls/jscript/tests/run.c b/dlls/jscript/tests/run.c index 86d6fa46212..5e797a19cb9 100644 --- a/dlls/jscript/tests/run.c +++ b/dlls/jscript/tests/run.c @@ -2955,7 +2955,6 @@ static void test_script_exprs(void) hres = parse_script_expr(L"var o=new Object(); Object.prototype.toString = function() {return \"wine\";}; Object.prototype.toLocaleString.call(o)", &v, NULL); ok(hres == S_OK, "parse_script_expr failed: %08lx\n", hres); ok(V_VT(&v) == VT_BSTR, "V_VT(v) = %d\n", V_VT(&v)); - todo_wine ok(!lstrcmpW(V_BSTR(&v), L"wine"), "V_BSTR(v) = %s\n", wine_dbgstr_w(V_BSTR(&v))); VariantClear(&v);