| OLD | NEW | 
|---|
| 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_SCOPES_H_ | 5 #ifndef V8_AST_SCOPES_H_ | 
| 6 #define V8_AST_SCOPES_H_ | 6 #define V8_AST_SCOPES_H_ | 
| 7 | 7 | 
| 8 #include "src/base/compiler-specific.h" | 8 #include "src/base/compiler-specific.h" | 
| 9 #include "src/base/hashmap.h" | 9 #include "src/base/hashmap.h" | 
| 10 #include "src/globals.h" | 10 #include "src/globals.h" | 
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 316   void set_is_hidden() { is_hidden_ = true; } | 316   void set_is_hidden() { is_hidden_ = true; } | 
| 317 | 317 | 
| 318   // In some cases we want to force context allocation for a whole scope. | 318   // In some cases we want to force context allocation for a whole scope. | 
| 319   void ForceContextAllocation() { | 319   void ForceContextAllocation() { | 
| 320     DCHECK(!already_resolved_); | 320     DCHECK(!already_resolved_); | 
| 321     force_context_allocation_ = true; | 321     force_context_allocation_ = true; | 
| 322   } | 322   } | 
| 323   bool has_forced_context_allocation() const { | 323   bool has_forced_context_allocation() const { | 
| 324     return force_context_allocation_; | 324     return force_context_allocation_; | 
| 325   } | 325   } | 
| 326   void ForceContextAllocationForParameters() { |  | 
| 327     DCHECK(!already_resolved_); |  | 
| 328     force_context_allocation_for_parameters_ = true; |  | 
| 329   } |  | 
| 330   bool has_forced_context_allocation_for_parameters() const { |  | 
| 331     return force_context_allocation_for_parameters_; |  | 
| 332   } |  | 
| 333 | 326 | 
| 334   // --------------------------------------------------------------------------- | 327   // --------------------------------------------------------------------------- | 
| 335   // Predicates. | 328   // Predicates. | 
| 336 | 329 | 
| 337   // Specific scope types. | 330   // Specific scope types. | 
| 338   bool is_eval_scope() const { return scope_type_ == EVAL_SCOPE; } | 331   bool is_eval_scope() const { return scope_type_ == EVAL_SCOPE; } | 
| 339   bool is_function_scope() const { return scope_type_ == FUNCTION_SCOPE; } | 332   bool is_function_scope() const { return scope_type_ == FUNCTION_SCOPE; } | 
| 340   bool is_module_scope() const { return scope_type_ == MODULE_SCOPE; } | 333   bool is_module_scope() const { return scope_type_ == MODULE_SCOPE; } | 
| 341   bool is_script_scope() const { return scope_type_ == SCRIPT_SCOPE; } | 334   bool is_script_scope() const { return scope_type_ == SCRIPT_SCOPE; } | 
| 342   bool is_catch_scope() const { return scope_type_ == CATCH_SCOPE; } | 335   bool is_catch_scope() const { return scope_type_ == CATCH_SCOPE; } | 
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 574   bool scope_calls_eval_ : 1; | 567   bool scope_calls_eval_ : 1; | 
| 575   // This scope's declarations might not be executed in order (e.g., switch). | 568   // This scope's declarations might not be executed in order (e.g., switch). | 
| 576   bool scope_nonlinear_ : 1; | 569   bool scope_nonlinear_ : 1; | 
| 577   bool is_hidden_ : 1; | 570   bool is_hidden_ : 1; | 
| 578   // Temporary workaround that allows masking of 'this' in debug-evalute scopes. | 571   // Temporary workaround that allows masking of 'this' in debug-evalute scopes. | 
| 579   bool is_debug_evaluate_scope_ : 1; | 572   bool is_debug_evaluate_scope_ : 1; | 
| 580 | 573 | 
| 581   // True if one of the inner scopes or the scope itself calls eval. | 574   // True if one of the inner scopes or the scope itself calls eval. | 
| 582   bool inner_scope_calls_eval_ : 1; | 575   bool inner_scope_calls_eval_ : 1; | 
| 583   bool force_context_allocation_ : 1; | 576   bool force_context_allocation_ : 1; | 
| 584   bool force_context_allocation_for_parameters_ : 1; |  | 
| 585 | 577 | 
| 586   // True if it holds 'var' declarations. | 578   // True if it holds 'var' declarations. | 
| 587   bool is_declaration_scope_ : 1; | 579   bool is_declaration_scope_ : 1; | 
| 588 | 580 | 
| 589   bool must_use_preparsed_scope_data_ : 1; | 581   bool must_use_preparsed_scope_data_ : 1; | 
| 590 | 582 | 
| 591   // Create a non-local variable with a given name. | 583   // Create a non-local variable with a given name. | 
| 592   // These variables are looked up dynamically at runtime. | 584   // These variables are looked up dynamically at runtime. | 
| 593   Variable* NonLocal(const AstRawString* name, VariableMode mode); | 585   Variable* NonLocal(const AstRawString* name, VariableMode mode); | 
| 594 | 586 | 
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1016   void AllocateModuleVariables(); | 1008   void AllocateModuleVariables(); | 
| 1017 | 1009 | 
| 1018  private: | 1010  private: | 
| 1019   ModuleDescriptor* module_descriptor_; | 1011   ModuleDescriptor* module_descriptor_; | 
| 1020 }; | 1012 }; | 
| 1021 | 1013 | 
| 1022 }  // namespace internal | 1014 }  // namespace internal | 
| 1023 }  // namespace v8 | 1015 }  // namespace v8 | 
| 1024 | 1016 | 
| 1025 #endif  // V8_AST_SCOPES_H_ | 1017 #endif  // V8_AST_SCOPES_H_ | 
| OLD | NEW | 
|---|