Module: wine Branch: oldstable Commit: 0c1d6a6f174da3f5956ac77b19c842ac1eaa75f5 URL: https://source.winehq.org/git/wine.git/?a=commit;h=0c1d6a6f174da3f5956ac77b1... Author: Robert Wilhelm <robert.wilhelm(a)gmx.net> Date: Mon Oct 12 22:25:33 2020 +0200 jscript: Cc_parser_parse implement '&&' expression. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49450 Signed-off-by: Robert Wilhelm <robert.wilhelm(a)gmx.net> Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit f586348deb97e8dea5f78ea3e45db39951ee8d30) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- 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); +(a)set @test = (true && true) +expect(@test, true); + +(a)set @test = (false && true) +expect(@test, false); + +(a)set @test = (true && false) +expect(@test, false); + +(a)set @test = (false && false) +expect(@test, false); + +if(!isWin64) { +(a)set @test = (@_win32&&@_jscript_version>=5) +expect(@test, true); +} + @if (false) this wouldn not parse "@end