From 8d44d63849b2498a6e82c3825a5397353dc3f3d2 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sun, 6 Dec 2009 22:10:44 +0100 Subject: [PATCH] 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 deletion(-) diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index 15ef90552af..9a89431ac01 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 1359e05eaea..b13091fa476 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");