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_SCOPES_H_ | 5 #ifndef V8_SCOPES_H_ |
6 #define V8_SCOPES_H_ | 6 #define V8_SCOPES_H_ |
7 | 7 |
8 #include "src/ast.h" | 8 #include "src/ast.h" |
9 #include "src/pending-compilation-error-handler.h" | 9 #include "src/pending-compilation-error-handler.h" |
10 #include "src/zone.h" | 10 #include "src/zone.h" |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 return scope_calls_eval_ && is_sloppy(language_mode_); | 332 return scope_calls_eval_ && is_sloppy(language_mode_); |
333 } | 333 } |
334 bool outer_scope_calls_sloppy_eval() const { | 334 bool outer_scope_calls_sloppy_eval() const { |
335 return outer_scope_calls_sloppy_eval_; | 335 return outer_scope_calls_sloppy_eval_; |
336 } | 336 } |
337 bool asm_module() const { return asm_module_; } | 337 bool asm_module() const { return asm_module_; } |
338 bool asm_function() const { return asm_function_; } | 338 bool asm_function() const { return asm_function_; } |
339 | 339 |
340 // Is this scope inside a with statement. | 340 // Is this scope inside a with statement. |
341 bool inside_with() const { return scope_inside_with_; } | 341 bool inside_with() const { return scope_inside_with_; } |
342 // Does this scope contain a with statement. | |
343 bool contains_with() const { return scope_contains_with_; } | |
344 | 342 |
345 // Does this scope access "arguments". | 343 // Does this scope access "arguments". |
346 bool uses_arguments() const { return scope_uses_arguments_; } | 344 bool uses_arguments() const { return scope_uses_arguments_; } |
347 // Does any inner scope access "arguments". | |
348 bool inner_uses_arguments() const { return inner_scope_uses_arguments_; } | |
349 // Does this scope access "super" property (super.foo). | 345 // Does this scope access "super" property (super.foo). |
350 bool uses_super_property() const { return scope_uses_super_property_; } | 346 bool uses_super_property() const { return scope_uses_super_property_; } |
351 // Does this scope have the potential to execute declarations non-linearly? | 347 // Does this scope have the potential to execute declarations non-linearly? |
352 bool is_nonlinear() const { return scope_nonlinear_; } | 348 bool is_nonlinear() const { return scope_nonlinear_; } |
353 | 349 |
354 // Whether this needs to be represented by a runtime context. | 350 // Whether this needs to be represented by a runtime context. |
355 bool NeedsContext() const { | 351 bool NeedsContext() const { |
356 // Catch and module scopes always have heap slots. | 352 // Catch and module scopes always have heap slots. |
357 DCHECK(!is_catch_scope() || num_heap_slots() > 0); | 353 DCHECK(!is_catch_scope() || num_heap_slots() > 0); |
358 DCHECK(!is_module_scope() || num_heap_slots() > 0); | 354 DCHECK(!is_module_scope() || num_heap_slots() > 0); |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 bool scope_nonlinear_; | 664 bool scope_nonlinear_; |
669 // The language mode of this scope. | 665 // The language mode of this scope. |
670 LanguageMode language_mode_; | 666 LanguageMode language_mode_; |
671 // Source positions. | 667 // Source positions. |
672 int start_position_; | 668 int start_position_; |
673 int end_position_; | 669 int end_position_; |
674 | 670 |
675 // Computed via PropagateScopeInfo. | 671 // Computed via PropagateScopeInfo. |
676 bool outer_scope_calls_sloppy_eval_; | 672 bool outer_scope_calls_sloppy_eval_; |
677 bool inner_scope_calls_eval_; | 673 bool inner_scope_calls_eval_; |
678 bool inner_scope_uses_arguments_; | |
679 bool force_eager_compilation_; | 674 bool force_eager_compilation_; |
680 bool force_context_allocation_; | 675 bool force_context_allocation_; |
681 | 676 |
682 // True if it doesn't need scope resolution (e.g., if the scope was | 677 // True if it doesn't need scope resolution (e.g., if the scope was |
683 // constructed based on a serialized scope info or a catch context). | 678 // constructed based on a serialized scope info or a catch context). |
684 bool already_resolved_; | 679 bool already_resolved_; |
685 | 680 |
686 // True if it holds 'var' declarations. | 681 // True if it holds 'var' declarations. |
687 bool is_declaration_scope_; | 682 bool is_declaration_scope_; |
688 | 683 |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
845 | 840 |
846 // For tracking which classes are declared consecutively. Needed for strong | 841 // For tracking which classes are declared consecutively. Needed for strong |
847 // mode. | 842 // mode. |
848 int class_declaration_group_start_; | 843 int class_declaration_group_start_; |
849 }; | 844 }; |
850 | 845 |
851 } // namespace internal | 846 } // namespace internal |
852 } // namespace v8 | 847 } // namespace v8 |
853 | 848 |
854 #endif // V8_SCOPES_H_ | 849 #endif // V8_SCOPES_H_ |
OLD | NEW |