Module: wine Branch: master Commit: f5b6c7cc7e383fc929d97f1b9c90450f752da169 URL: https://source.winehq.org/git/wine.git/?a=commit;h=f5b6c7cc7e383fc929d97f1b9...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Apr 2 20:24:30 2021 +0200
jscript: Throw error in jsdisp_delete_idx for non-configurable properties.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/dispex.c | 5 ++++- dlls/mshtml/tests/es5.js | 4 ---- 2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index 38055fe4cfa..b62fcee0b04 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -2327,7 +2327,10 @@ HRESULT jsdisp_delete_idx(jsdisp_t *obj, DWORD idx) if(FAILED(hres) || !prop) return hres;
- return delete_prop(prop, &b); + hres = delete_prop(prop, &b); + if(FAILED(hres)) + return hres; + return b ? S_OK : JS_E_INVALID_ACTION; }
HRESULT disp_delete(IDispatch *disp, DISPID id, BOOL *ret) diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js index f81eefdfd47..9227fa7e5a5 100644 --- a/dlls/mshtml/tests/es5.js +++ b/dlls/mshtml/tests/es5.js @@ -1044,13 +1044,11 @@ sync_test("freeze", function() { Object.freeze(o); try { o.pop(); - todo_wine. ok(false, "exception expected on o.pop"); }catch(e) { ok(e.name === "TypeError", "got " + e.name + " exception"); } ok(o[0] === 1, "o[0] = " + o[0]); - todo_wine. ok(o.length === 1, "o.length = " + o.length); });
@@ -1098,13 +1096,11 @@ sync_test("seal", function() { Object.seal(o); try { o.pop(); - todo_wine. ok(false, "exception expected on o.pop"); }catch(e) { ok(e.name === "TypeError", "got " + e.name + " exception"); } ok(o[0] === 1, "o[0] = " + o[0]); - todo_wine. ok(o.length === 1, "o.length = " + o.length); });