Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(603)

Side by Side Diff: src/ast/ast-expression-visitor.cc

Issue 1864553002: [destructuring] don't attempt to visit contents of FunctionLiterals (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/ast/ast-expression-visitor.h" 7 #include "src/ast/ast-expression-visitor.h"
8 8
9 #include "src/ast/ast.h" 9 #include "src/ast/ast.h"
10 #include "src/ast/scopes.h" 10 #include "src/ast/scopes.h"
(...skipping 13 matching lines...) Expand all
24 24
25 #define RECURSE_EXPRESSION(call) \ 25 #define RECURSE_EXPRESSION(call) \
26 do { \ 26 do { \
27 DCHECK(!HasStackOverflow()); \ 27 DCHECK(!HasStackOverflow()); \
28 ++depth_; \ 28 ++depth_; \
29 call; \ 29 call; \
30 --depth_; \ 30 --depth_; \
31 if (HasStackOverflow()) return; \ 31 if (HasStackOverflow()) return; \
32 } while (false) 32 } while (false)
33 33
34 34 AstExpressionVisitor::AstExpressionVisitor(Isolate* isolate, Expression* root,
35 AstExpressionVisitor::AstExpressionVisitor(Isolate* isolate, Expression* root) 35 Mode mode)
36 : root_(root), depth_(0) { 36 : root_(root), depth_(0), mode_(mode) {
37 InitializeAstVisitor(isolate); 37 InitializeAstVisitor(isolate);
38 } 38 }
39 39
40
41 AstExpressionVisitor::AstExpressionVisitor(uintptr_t stack_limit, 40 AstExpressionVisitor::AstExpressionVisitor(uintptr_t stack_limit,
42 Expression* root) 41 Expression* root, Mode mode)
43 : root_(root), depth_(0) { 42 : root_(root), depth_(0), mode_(mode) {
44 InitializeAstVisitor(stack_limit); 43 InitializeAstVisitor(stack_limit);
45 } 44 }
46 45
47 46
48 void AstExpressionVisitor::Run() { RECURSE(Visit(root_)); } 47 void AstExpressionVisitor::Run() { RECURSE(Visit(root_)); }
49 48
50 49
51 void AstExpressionVisitor::VisitVariableDeclaration(VariableDeclaration* decl) { 50 void AstExpressionVisitor::VisitVariableDeclaration(VariableDeclaration* decl) {
52 } 51 }
53 52
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 RECURSE(Visit(stmt->finally_block())); 190 RECURSE(Visit(stmt->finally_block()));
192 } 191 }
193 192
194 193
195 void AstExpressionVisitor::VisitDebuggerStatement(DebuggerStatement* stmt) {} 194 void AstExpressionVisitor::VisitDebuggerStatement(DebuggerStatement* stmt) {}
196 195
197 196
198 void AstExpressionVisitor::VisitFunctionLiteral(FunctionLiteral* expr) { 197 void AstExpressionVisitor::VisitFunctionLiteral(FunctionLiteral* expr) {
199 Scope* scope = expr->scope(); 198 Scope* scope = expr->scope();
200 VisitExpression(expr); 199 VisitExpression(expr);
200 if (is_shallow()) return;
201 RECURSE_EXPRESSION(VisitDeclarations(scope->declarations())); 201 RECURSE_EXPRESSION(VisitDeclarations(scope->declarations()));
202 RECURSE_EXPRESSION(VisitStatements(expr->body())); 202 RECURSE_EXPRESSION(VisitStatements(expr->body()));
203 } 203 }
204 204
205 205
206 void AstExpressionVisitor::VisitNativeFunctionLiteral( 206 void AstExpressionVisitor::VisitNativeFunctionLiteral(
207 NativeFunctionLiteral* expr) {} 207 NativeFunctionLiteral* expr) {}
208 208
209 209
210 void AstExpressionVisitor::VisitDoExpression(DoExpression* expr) { 210 void AstExpressionVisitor::VisitDoExpression(DoExpression* expr) {
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 402
403 void AstExpressionVisitor::VisitRewritableExpression( 403 void AstExpressionVisitor::VisitRewritableExpression(
404 RewritableExpression* expr) { 404 RewritableExpression* expr) {
405 VisitExpression(expr); 405 VisitExpression(expr);
406 RECURSE(Visit(expr->expression())); 406 RECURSE(Visit(expr->expression()));
407 } 407 }
408 408
409 409
410 } // namespace internal 410 } // namespace internal
411 } // namespace v8 411 } // namespace v8
OLDNEW
« no previous file with comments | « src/ast/ast-expression-visitor.h ('k') | src/parsing/parser.cc » ('j') | src/parsing/parser.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698