summaryrefslogtreecommitdiff
path: root/deps/v8/src/torque/declaration-visitor.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/torque/declaration-visitor.h')
-rw-r--r--deps/v8/src/torque/declaration-visitor.h29
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