Jacek Caban : jscript: Added delete expression for EXPRVAL_IDREF implementation.

Alexandre Julliard julliard at winehq.org
Wed Oct 1 14:09:33 CDT 2008


Module: wine
Branch: master
Commit: 9c248189f7ac0770adca62df351e3e80c3a2de27
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9c248189f7ac0770adca62df351e3e80c3a2de27

Author: Jacek Caban <jacek at 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();




More information about the wine-cvs mailing list