Index: src/ast/ast-expression-visitor.cc |
diff --git a/src/ast/ast-expression-visitor.cc b/src/ast/ast-expression-visitor.cc |
index dbf4ea463c851b2ae57447d9e2d0301e795b120b..4325ceba6969b83922c196109ad579bea888e062 100644 |
--- a/src/ast/ast-expression-visitor.cc |
+++ b/src/ast/ast-expression-visitor.cc |
@@ -31,16 +31,15 @@ namespace internal { |
if (HasStackOverflow()) return; \ |
} while (false) |
- |
-AstExpressionVisitor::AstExpressionVisitor(Isolate* isolate, Expression* root) |
- : root_(root), depth_(0) { |
+AstExpressionVisitor::AstExpressionVisitor(Isolate* isolate, Expression* root, |
+ Mode mode) |
+ : root_(root), depth_(0), mode_(mode) { |
InitializeAstVisitor(isolate); |
} |
- |
AstExpressionVisitor::AstExpressionVisitor(uintptr_t stack_limit, |
- Expression* root) |
- : root_(root), depth_(0) { |
+ Expression* root, Mode mode) |
+ : root_(root), depth_(0), mode_(mode) { |
InitializeAstVisitor(stack_limit); |
} |
@@ -198,6 +197,7 @@ void AstExpressionVisitor::VisitDebuggerStatement(DebuggerStatement* stmt) {} |
void AstExpressionVisitor::VisitFunctionLiteral(FunctionLiteral* expr) { |
Scope* scope = expr->scope(); |
VisitExpression(expr); |
+ if (is_shallow()) return; |
RECURSE_EXPRESSION(VisitDeclarations(scope->declarations())); |
RECURSE_EXPRESSION(VisitStatements(expr->body())); |
} |