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

Side by Side Diff: src/ast/scopes.h

Issue 2270743003: Get rid of PropagateScopeInfo, update asm_function in set_asm_module instead. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase Created 4 years, 3 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 | « no previous file | src/ast/scopes.cc » ('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_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/ast/ast.h" 8 #include "src/ast/ast.h"
9 #include "src/base/hashmap.h" 9 #include "src/base/hashmap.h"
10 #include "src/globals.h" 10 #include "src/globals.h"
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 void ResolveVariable(ParseInfo* info, VariableProxy* proxy); 524 void ResolveVariable(ParseInfo* info, VariableProxy* proxy);
525 void ResolveVariablesRecursively(ParseInfo* info); 525 void ResolveVariablesRecursively(ParseInfo* info);
526 526
527 // Finds free variables of this scope. This mutates the unresolved variables 527 // Finds free variables of this scope. This mutates the unresolved variables
528 // list along the way, so full resolution cannot be done afterwards. 528 // list along the way, so full resolution cannot be done afterwards.
529 // If a ParseInfo* is passed, non-free variables will be resolved. 529 // If a ParseInfo* is passed, non-free variables will be resolved.
530 VariableProxy* FetchFreeVariables(DeclarationScope* max_outer_scope, 530 VariableProxy* FetchFreeVariables(DeclarationScope* max_outer_scope,
531 ParseInfo* info = nullptr, 531 ParseInfo* info = nullptr,
532 VariableProxy* stack = nullptr); 532 VariableProxy* stack = nullptr);
533 533
534 // Scope analysis.
535 void PropagateScopeInfo();
536
537 // Predicates. 534 // Predicates.
538 bool MustAllocate(Variable* var); 535 bool MustAllocate(Variable* var);
539 bool MustAllocateInContext(Variable* var); 536 bool MustAllocateInContext(Variable* var);
540 537
541 // Variable allocation. 538 // Variable allocation.
542 void AllocateStackSlot(Variable* var); 539 void AllocateStackSlot(Variable* var);
543 void AllocateHeapSlot(Variable* var); 540 void AllocateHeapSlot(Variable* var);
544 void AllocateNonParameterLocal(Variable* var); 541 void AllocateNonParameterLocal(Variable* var);
545 void AllocateDeclaredGlobal(Variable* var); 542 void AllocateDeclaredGlobal(Variable* var);
546 void AllocateNonParameterLocalsAndDeclaredGlobals(); 543 void AllocateNonParameterLocalsAndDeclaredGlobals();
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 IsClassConstructor(function_kind()))); 614 IsClassConstructor(function_kind())));
618 } 615 }
619 616
620 void SetScriptScopeInfo(Handle<ScopeInfo> scope_info) { 617 void SetScriptScopeInfo(Handle<ScopeInfo> scope_info) {
621 DCHECK(is_script_scope()); 618 DCHECK(is_script_scope());
622 DCHECK(scope_info_.is_null()); 619 DCHECK(scope_info_.is_null());
623 scope_info_ = scope_info; 620 scope_info_ = scope_info;
624 } 621 }
625 622
626 bool asm_module() const { return asm_module_; } 623 bool asm_module() const { return asm_module_; }
627 void set_asm_module() { asm_module_ = true; } 624 void set_asm_module();
628 bool asm_function() const { return asm_function_; } 625 bool asm_function() const { return asm_function_; }
629 void set_asm_function() { asm_module_ = true; } 626 void set_asm_function() { asm_module_ = true; }
630 627
631 void DeclareThis(AstValueFactory* ast_value_factory); 628 void DeclareThis(AstValueFactory* ast_value_factory);
632 void DeclareDefaultFunctionVariables(AstValueFactory* ast_value_factory); 629 void DeclareDefaultFunctionVariables(AstValueFactory* ast_value_factory);
633 630
634 // This lookup corresponds to a lookup in the "intermediate" scope sitting 631 // This lookup corresponds to a lookup in the "intermediate" scope sitting
635 // between this scope and the outer scope. (ECMA-262, 3rd., requires that 632 // between this scope and the outer scope. (ECMA-262, 3rd., requires that
636 // the name of named function literal is kept in an intermediate scope 633 // the name of named function literal is kept in an intermediate scope
637 // in between this scope and the next outer scope.) 634 // in between this scope and the next outer scope.)
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 void AllocateModuleVariables(); 850 void AllocateModuleVariables();
854 851
855 private: 852 private:
856 ModuleDescriptor* module_descriptor_; 853 ModuleDescriptor* module_descriptor_;
857 }; 854 };
858 855
859 } // namespace internal 856 } // namespace internal
860 } // namespace v8 857 } // namespace v8
861 858
862 #endif // V8_AST_SCOPES_H_ 859 #endif // V8_AST_SCOPES_H_
OLDNEW
« no previous file with comments | « no previous file | src/ast/scopes.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698