From b8aeb15cb58f6ea5066dc847c11c62a8f52bd1a7 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 17 Sep 2008 23:31:54 +0200 Subject: [PATCH] jscript: Added '&=' expression implementation. --- dlls/jscript/engine.c | 10 +++++++--- dlls/jscript/tests/lang.js | 4 ++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index 975a9bde31f..0da2d6e3293 100644 --- a/dlls/jscript/engine.c +++ b/dlls/jscript/engine.c @@ -2435,10 +2435,14 @@ HRESULT assign_mod_expression_eval(exec_ctx_t *ctx, expression_t *expr, DWORD fl return E_NOTIMPL; } -HRESULT assign_and_expression_eval(exec_ctx_t *ctx, expression_t *expr, DWORD flags, jsexcept_t *ei, exprval_t *ret) +/* ECMA-262 3rd Edition 11.13.2 */ +HRESULT assign_and_expression_eval(exec_ctx_t *ctx, expression_t *_expr, DWORD flags, jsexcept_t *ei, exprval_t *ret) { - FIXME("\n"); - return E_NOTIMPL; + binary_expression_t *expr = (binary_expression_t*)_expr; + + TRACE("\n"); + + return assign_oper_eval(ctx, expr->expression1, expr->expression2, bitand_eval, ei, ret); } /* ECMA-262 3rd Edition 11.13.2 */ diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js index 4cb42ecbbee..9d64559bbb4 100644 --- a/dlls/jscript/tests/lang.js +++ b/dlls/jscript/tests/lang.js @@ -289,6 +289,10 @@ tmp = (-3.5) & 0xffffffff; ok(tmp === -3, "-3.5 & 0xffff !== -3"); ok(getVT(tmp) === "VT_I4", "getVT(3.5&0xffff) = " + getVT(tmp)); +tmp = 10; +ok((tmp &= 8) === 8, "tmp(10) &= 8 !== 8"); +ok(getVT(tmp) === "VT_I4", "getVT(tmp &= 8) = " + getVT(tmp)); + ok(1 < 3.4, "1 < 3.4 failed"); ok(!(3.4 < 1), "3.4 < 1"); ok("abc" < "abcd", "abc < abcd failed");