Jacek Caban : jscript: Don' t pass EXPR_NEWREF flag to evaluate member expression in array_expression_eval .

Alexandre Julliard julliard at winehq.org
Mon Dec 7 10:26:15 CST 2009


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Dec  6 22:10:44 2009 +0100

jscript: Don't pass EXPR_NEWREF flag to evaluate member expression in array_expression_eval.

---

 dlls/jscript/engine.c      |    2 +-
 dlls/jscript/tests/lang.js |    7 +++++++
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c
index 15ef905..9a89431 100644
--- a/dlls/jscript/engine.c
+++ b/dlls/jscript/engine.c
@@ -1396,7 +1396,7 @@ HRESULT array_expression_eval(exec_ctx_t *ctx, expression_t *_expr, DWORD flags,
 
     TRACE("\n");
 
-    hres = expr_eval(ctx, expr->member_expr, EXPR_NEWREF, ei, &exprval);
+    hres = expr_eval(ctx, expr->member_expr, 0, ei, &exprval);
     if(FAILED(hres))
         return hres;
 
diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js
index 1359e05..b13091f 100644
--- a/dlls/jscript/tests/lang.js
+++ b/dlls/jscript/tests/lang.js
@@ -863,6 +863,13 @@ ok(("1" in obj) === false, "1 is in obj");
 obj = [1,2,3];
 ok((1 in obj) === true, "1 is not in obj");
 
+obj = new Object();
+try {
+    obj.prop["test"];
+    ok(false, "expected exception");
+}catch(e) {}
+ok(!("prop" in obj), "prop in obj");
+
 ok(isNaN(NaN) === true, "isNaN(NaN) !== true");
 ok(isNaN(0.5) === false, "isNaN(0.5) !== false");
 ok(isNaN(Infinity) === false, "isNaN(Infinity) !== false");




More information about the wine-cvs mailing list