diff options
author | Michaël Zasso <targos@protonmail.com> | 2022-09-21 13:28:42 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2022-10-11 07:24:33 +0200 |
commit | 6bd756d7c6dfb7dc25daee329ad70df68c14223e (patch) | |
tree | af93818c545f5bd04cafd4a0c19817e19a475641 /deps/v8/src/ast/ast.cc | |
parent | 624dadb00706a9fc08f919ac72941cdaba7e3ec9 (diff) | |
download | node-new-6bd756d7c6dfb7dc25daee329ad70df68c14223e.tar.gz |
deps: update V8 to 10.7.193.13
PR-URL: https://github.com/nodejs/node/pull/44741
Fixes: https://github.com/nodejs/node/issues/44650
Fixes: https://github.com/nodejs/node/issues/37472
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'deps/v8/src/ast/ast.cc')
-rw-r--r-- | deps/v8/src/ast/ast.cc | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/deps/v8/src/ast/ast.cc b/deps/v8/src/ast/ast.cc index 804a6840c1..34a26d9c26 100644 --- a/deps/v8/src/ast/ast.cc +++ b/deps/v8/src/ast/ast.cc @@ -12,7 +12,6 @@ #include "src/base/hashmap.h" #include "src/base/logging.h" #include "src/base/numbers/double.h" -#include "src/base/platform/wrappers.h" #include "src/builtins/builtins-constructor.h" #include "src/builtins/builtins.h" #include "src/common/assert-scope.h" @@ -103,6 +102,10 @@ bool Expression::IsNullLiteral() const { return IsLiteral() && AsLiteral()->type() == Literal::kNull; } +bool Expression::IsBooleanLiteral() const { + return IsLiteral() && AsLiteral()->type() == Literal::kBoolean; +} + bool Expression::IsTheHoleLiteral() const { return IsLiteral() && AsLiteral()->type() == Literal::kTheHole; } @@ -892,6 +895,24 @@ static bool IsVoidOfLiteral(Expression* expr) { maybe_unary->expression()->IsLiteral(); } +static bool MatchLiteralStrictCompareBoolean(Expression* left, Token::Value op, + Expression* right, + Expression** expr, + Literal** literal) { + if (left->IsBooleanLiteral() && op == Token::EQ_STRICT) { + *expr = right; + *literal = left->AsLiteral(); + return true; + } + return false; +} + +bool CompareOperation::IsLiteralStrictCompareBoolean(Expression** expr, + Literal** literal) { + return MatchLiteralStrictCompareBoolean(left_, op(), right_, expr, literal) || + MatchLiteralStrictCompareBoolean(right_, op(), left_, expr, literal); +} + // Check for the pattern: void <literal> equals <expression> or // undefined equals <expression> static bool MatchLiteralCompareUndefined(Expression* left, Token::Value op, |