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

Side by Side Diff: src/ast.h

Issue 1405313002: [es6] Fix scoping for default parameters in arrow functions (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix class literal handling Created 5 years, 2 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
« no previous file with comments | « BUILD.gn ('k') | src/ast-expression-visitor.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #ifndef V8_AST_H_ 5 #ifndef V8_AST_H_
6 #define V8_AST_H_ 6 #define V8_AST_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/ast-value-factory.h" 9 #include "src/ast-value-factory.h"
10 #include "src/bailout-reason.h" 10 #include "src/bailout-reason.h"
(...skipping 3152 matching lines...) Expand 10 before | Expand all | Expand 10 after
3163 virtual void VisitExpressions(ZoneList<Expression*>* expressions); 3163 virtual void VisitExpressions(ZoneList<Expression*>* expressions);
3164 3164
3165 // Individual AST nodes. 3165 // Individual AST nodes.
3166 #define DEF_VISIT(type) \ 3166 #define DEF_VISIT(type) \
3167 virtual void Visit##type(type* node) = 0; 3167 virtual void Visit##type(type* node) = 0;
3168 AST_NODE_LIST(DEF_VISIT) 3168 AST_NODE_LIST(DEF_VISIT)
3169 #undef DEF_VISIT 3169 #undef DEF_VISIT
3170 }; 3170 };
3171 3171
3172 3172
3173 #define DEFINE_AST_VISITOR_SUBCLASS_MEMBERS() \ 3173 #define DEFINE_AST_VISITOR_SUBCLASS_MEMBERS() \
3174 public: \ 3174 public: \
3175 void Visit(AstNode* node) final { \ 3175 void Visit(AstNode* node) final { \
3176 if (!CheckStackOverflow()) node->Accept(this); \ 3176 if (!CheckStackOverflow()) node->Accept(this); \
3177 } \ 3177 } \
3178 \ 3178 \
3179 void SetStackOverflow() { stack_overflow_ = true; } \ 3179 void SetStackOverflow() { stack_overflow_ = true; } \
3180 void ClearStackOverflow() { stack_overflow_ = false; } \ 3180 void ClearStackOverflow() { stack_overflow_ = false; } \
3181 bool HasStackOverflow() const { return stack_overflow_; } \ 3181 bool HasStackOverflow() const { return stack_overflow_; } \
3182 \ 3182 \
3183 bool CheckStackOverflow() { \ 3183 bool CheckStackOverflow() { \
3184 if (stack_overflow_) return true; \ 3184 if (stack_overflow_) return true; \
3185 if (GetCurrentStackPosition() < stack_limit_) { \ 3185 if (GetCurrentStackPosition() < stack_limit_) { \
3186 stack_overflow_ = true; \ 3186 stack_overflow_ = true; \
3187 return true; \ 3187 return true; \
3188 } \ 3188 } \
3189 return false; \ 3189 return false; \
3190 } \ 3190 } \
3191 \ 3191 \
3192 private: \ 3192 private: \
3193 void InitializeAstVisitor(Isolate* isolate) { \ 3193 void InitializeAstVisitor(Isolate* isolate) { \
3194 stack_limit_ = isolate->stack_guard()->real_climit(); \ 3194 InitializeAstVisitor(isolate->stack_guard()->real_climit()); \
3195 stack_overflow_ = false; \ 3195 } \
3196 } \ 3196 \
3197 \ 3197 void InitializeAstVisitor(uintptr_t stack_limit) { \
3198 uintptr_t stack_limit_; \ 3198 stack_limit_ = stack_limit; \
3199 stack_overflow_ = false; \
3200 } \
3201 \
3202 uintptr_t stack_limit_; \
3199 bool stack_overflow_ 3203 bool stack_overflow_
3200 3204
3201 3205
3202 // ---------------------------------------------------------------------------- 3206 // ----------------------------------------------------------------------------
3203 // AstNode factory 3207 // AstNode factory
3204 3208
3205 class AstNodeFactory final BASE_EMBEDDED { 3209 class AstNodeFactory final BASE_EMBEDDED {
3206 public: 3210 public:
3207 explicit AstNodeFactory(AstValueFactory* ast_value_factory) 3211 explicit AstNodeFactory(AstValueFactory* ast_value_factory)
3208 : local_zone_(ast_value_factory->zone()), 3212 : local_zone_(ast_value_factory->zone()),
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
3633 // the parser-level zone. 3637 // the parser-level zone.
3634 Zone* parser_zone_; 3638 Zone* parser_zone_;
3635 AstValueFactory* ast_value_factory_; 3639 AstValueFactory* ast_value_factory_;
3636 }; 3640 };
3637 3641
3638 3642
3639 } // namespace internal 3643 } // namespace internal
3640 } // namespace v8 3644 } // namespace v8
3641 3645
3642 #endif // V8_AST_H_ 3646 #endif // V8_AST_H_
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | src/ast-expression-visitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698