[PATCH] jscript: cc_parser_parse implement '&&' expression.
Robert Wilhelm
robert.wilhelm at gmx.net
Mon Oct 12 15:25:33 CDT 2020
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49450
Signed-off-by: Robert Wilhelm <robert.wilhelm at gmx.net>
---
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);
+ at set @test = (true && true)
+expect(@test, true);
+
+ at set @test = (false && true)
+expect(@test, false);
+
+ at set @test = (true && false)
+expect(@test, false);
+
+ at set @test = (false && false)
+expect(@test, false);
+
+if(!isWin64) {
+ at set @test = (@_win32&&@_jscript_version>=5)
+expect(@test, true);
+}
+
@if (false)
this wouldn not parse
"@end
--
2.26.2
More information about the wine-devel
mailing list