diff options
Diffstat (limited to 'deps/v8/src/torque/declaration-visitor.h')
-rw-r--r-- | deps/v8/src/torque/declaration-visitor.h | 29 |
1 files changed, 5 insertions, 24 deletions
diff --git a/deps/v8/src/torque/declaration-visitor.h b/deps/v8/src/torque/declaration-visitor.h index e1d5439018..d8a9698c6f 100644 --- a/deps/v8/src/torque/declaration-visitor.h +++ b/deps/v8/src/torque/declaration-visitor.h @@ -114,7 +114,9 @@ class DeclarationVisitor : public FileVisitor { void Visit(LogicalOrExpression* expr); void Visit(LogicalAndExpression* expr); - void DeclareExpressionForBranch(Expression* node); + void DeclareExpressionForBranch( + Expression* node, base::Optional<Statement*> true_statement = {}, + base::Optional<Statement*> false_statement = {}); void Visit(ConditionalExpression* expr); void Visit(IfStatement* stmt); @@ -122,7 +124,6 @@ class DeclarationVisitor : public FileVisitor { void Visit(ForOfLoopStatement* stmt); void Visit(AssignmentExpression* expr) { - MarkLocationModified(expr->location); Visit(expr->location); Visit(expr->value); } @@ -133,39 +134,20 @@ class DeclarationVisitor : public FileVisitor { void Visit(ForLoopStatement* stmt); void Visit(IncrementDecrementExpression* expr) { - MarkLocationModified(expr->location); Visit(expr->location); } void Visit(AssumeTypeImpossibleExpression* expr) { Visit(expr->expression); } - void Visit(TryLabelStatement* stmt); + void Visit(TryLabelExpression* stmt); + void Visit(StatementExpression* stmt); void GenerateHeader(std::string& file_name); private: - struct LiveAndChanged { - std::set<const Variable*> live; - std::set<const Variable*> changed; - }; - - void PushControlSplit() { - LiveAndChanged live_and_changed; - live_and_changed.live = declarations()->GetLiveVariables(); - live_and_changed_variables_.push_back(live_and_changed); - } - Variable* DeclareVariable(const std::string& name, const Type* type, bool is_const); Parameter* DeclareParameter(const std::string& name, const Type* type); - std::set<const Variable*> PopControlSplit() { - auto result = live_and_changed_variables_.back().changed; - live_and_changed_variables_.pop_back(); - return result; - } - - void MarkLocationModified(Expression* location); - bool MarkVariableModified(const Variable* variable); void DeclareSignature(const Signature& signature); void DeclareSpecializedTypes(const SpecializationKey& key); @@ -175,7 +157,6 @@ class DeclarationVisitor : public FileVisitor { Declarations::ModuleScopeActivator scope_; std::vector<Builtin*> torque_builtins_; - std::vector<LiveAndChanged> live_and_changed_variables_; }; } // namespace torque |