From: Robert Wilhelm Subject: [PATCH] jscript: cc_parser_parse implement '&&' expression. Message-Id: Date: Mon, 12 Oct 2020 22:25:33 +0200 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49450 Signed-off-by: Robert Wilhelm --- dlls/jscript/cc_parser.y | 2 +- dlls/jscript/tests/cc.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/dlls/jscript/cc_parser.y b/dlls/jscript/cc_parser.y index 4bc6260f194..dd72f61b03b 100644 --- a/dlls/jscript/cc_parser.y +++ b/dlls/jscript/cc_parser.y @@ -161,7 +161,7 @@ CCLogicalORExpression CCLogicalANDExpression : CCBitwiseORExpression { $$ = $1; } | CCBitwiseANDExpression tAND CCBitwiseORExpression - { FIXME("'&&' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; } + { $$ = ccval_bool(get_ccbool($1) && get_ccbool($3)); } CCBitwiseORExpression : CCBitwiseXORExpression { $$ = $1; } diff --git a/dlls/jscript/tests/cc.js b/dlls/jscript/tests/cc.js index 8f45a3dd331..2232d2fb689 100644 --- a/dlls/jscript/tests/cc.js +++ b/dlls/jscript/tests/cc.js @@ -180,6 +180,23 @@ expect(@test, true); @set @test = (1 >= true-1) expect(@test, true); +@set @test = (true && true) +expect(@test, true); + +@set @test = (false && true) +expect(@test, false); + +@set @test = (true && false) +expect(@test, false); + +@set @test = (false && false) +expect(@test, false); + +if(!isWin64) { +@set @test = (@_win32&&@_jscript_version>=5) +expect(@test, true); +} + @if (false) this wouldn not parse "@end -- 2.26.2