Module: wine Branch: master Commit: 9c248189f7ac0770adca62df351e3e80c3a2de27 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9c248189f7ac0770adca62df35...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Sep 30 17:48:45 2008 +0200
jscript: Added delete expression for EXPRVAL_IDREF implementation.
---
dlls/jscript/engine.c | 11 +++++++++++ dlls/jscript/tests/lang.js | 7 +++++++ 2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index 87de0ce..212ad10 100644 --- a/dlls/jscript/engine.c +++ b/dlls/jscript/engine.c @@ -2069,6 +2069,17 @@ HRESULT delete_expression_eval(exec_ctx_t *ctx, expression_t *_expr, DWORD flags return hres;
switch(exprval.type) { + case EXPRVAL_IDREF: { + IDispatchEx *dispex; + + hres = IDispatch_QueryInterface(exprval.u.nameref.disp, &IID_IDispatchEx, (void**)&dispex); + if(SUCCEEDED(hres)) { + hres = IDispatchEx_DeleteMemberByDispID(dispex, exprval.u.idref.id); + b = VARIANT_TRUE; + IDispatchEx_Release(dispex); + } + break; + } case EXPRVAL_NAMEREF: { IDispatchEx *dispex;
diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js index 148dfed..f7ae2be 100644 --- a/dlls/jscript/tests/lang.js +++ b/dlls/jscript/tests/lang.js @@ -741,4 +741,11 @@ function varTestFunc(varTest3) { var varTest4; }
+deleteTest = 1; +delete deleteTest; +try { + tmp = deleteTest; + ok(false, "deleteTest not throwed exception?"); +}catch(ex) {} + reportSuccess();