Index: src/ast-expression-visitor.cc |
diff --git a/src/ast-expression-visitor.cc b/src/ast-expression-visitor.cc |
index d534d1f0f036c1210175cd7f7b89505c7016b860..fb6822ec2117139d07e7cbb0d43cfdc63e7fd0a0 100644 |
--- a/src/ast-expression-visitor.cc |
+++ b/src/ast-expression-visitor.cc |
@@ -32,14 +32,20 @@ namespace internal { |
} while (false) |
-AstExpressionVisitor::AstExpressionVisitor(Isolate* isolate, |
- FunctionLiteral* root) |
+AstExpressionVisitor::AstExpressionVisitor(Isolate* isolate, Expression* root) |
: root_(root), depth_(0) { |
InitializeAstVisitor(isolate); |
} |
-void AstExpressionVisitor::Run() { RECURSE(VisitFunctionLiteral(root_)); } |
+AstExpressionVisitor::AstExpressionVisitor(uintptr_t stack_limit, |
+ Expression* root) |
+ : root_(root), depth_(0) { |
+ InitializeAstVisitor(stack_limit); |
+} |
+ |
+ |
+void AstExpressionVisitor::Run() { RECURSE(Visit(root_)); } |
void AstExpressionVisitor::VisitVariableDeclaration(VariableDeclaration* decl) { |
@@ -223,6 +229,7 @@ void AstExpressionVisitor::VisitObjectLiteral(ObjectLiteral* expr) { |
ZoneList<ObjectLiteralProperty*>* props = expr->properties(); |
for (int i = 0; i < props->length(); ++i) { |
ObjectLiteralProperty* prop = props->at(i); |
+ RECURSE_EXPRESSION(Visit(prop->key())); |
RECURSE_EXPRESSION(Visit(prop->value())); |
} |
} |
@@ -336,10 +343,20 @@ void AstExpressionVisitor::VisitDeclarations(ZoneList<Declaration*>* decls) { |
} |
-void AstExpressionVisitor::VisitClassLiteral(ClassLiteral* expr) {} |
+void AstExpressionVisitor::VisitClassLiteral(ClassLiteral* expr) { |
rossberg
2015/10/16 11:55:41
Oh, how did this even work before?
adamk
2015/10/16 13:38:28
Since this was only designed for asm, it didn't ha
|
+ VisitExpression(expr); |
+ ZoneList<ObjectLiteralProperty*>* props = expr->properties(); |
+ for (int i = 0; i < props->length(); ++i) { |
+ ObjectLiteralProperty* prop = props->at(i); |
+ RECURSE_EXPRESSION(Visit(prop->key())); |
+ RECURSE_EXPRESSION(Visit(prop->value())); |
+ } |
+} |
-void AstExpressionVisitor::VisitSpread(Spread* expr) {} |
+void AstExpressionVisitor::VisitSpread(Spread* expr) { |
+ RECURSE(Visit(expr->expression())); |
+} |
void AstExpressionVisitor::VisitEmptyParentheses(EmptyParentheses* expr) {} |