[PATCH v6 01/12] jscript: Treat prototype refs as non-existent when deleting.
Gabriel Ivăncescu
gabrielopcode at gmail.com
Tue Nov 23 07:59:06 CST 2021
Delete only affects own properties.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
---
dlls/jscript/dispex.c | 5 +++++
dlls/mshtml/tests/documentmode.js | 1 -
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c
index e64a520..df81e1a 100644
--- a/dlls/jscript/dispex.c
+++ b/dlls/jscript/dispex.c
@@ -1621,6 +1621,11 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc
static HRESULT delete_prop(dispex_prop_t *prop, BOOL *ret)
{
+ if(prop->type == PROP_PROTREF) {
+ *ret = TRUE;
+ return S_OK;
+ }
+
if(!(prop->flags & PROPF_CONFIGURABLE)) {
*ret = FALSE;
return S_OK;
diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js
index d5f33dd..041025c 100644
--- a/dlls/mshtml/tests/documentmode.js
+++ b/dlls/mshtml/tests/documentmode.js
@@ -1192,7 +1192,6 @@ sync_test("__proto__", function() {
ok(obj.__proto__ === ctor.prototype, "obj.__proto__ !== ctor.prototype");
r = (delete x.__proto__);
- todo_wine.
ok(r, "delete x.__proto__ returned " + r);
ok(Object.prototype.hasOwnProperty("__proto__"), "__proto__ is not a property of Object.prototype after delete");
r = Object.getPrototypeOf(x);
--
2.31.1
More information about the wine-devel
mailing list