OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
6 | 6 |
7 #include "src/full-codegen/full-codegen.h" | 7 #include "src/full-codegen/full-codegen.h" |
8 #include "src/ast/compile-time-value.h" | 8 #include "src/ast/compile-time-value.h" |
9 #include "src/ast/scopes.h" | 9 #include "src/ast/scopes.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
771 } | 771 } |
772 | 772 |
773 | 773 |
774 void FullCodeGenerator::VisitVariableDeclaration( | 774 void FullCodeGenerator::VisitVariableDeclaration( |
775 VariableDeclaration* declaration) { | 775 VariableDeclaration* declaration) { |
776 VariableProxy* proxy = declaration->proxy(); | 776 VariableProxy* proxy = declaration->proxy(); |
777 Variable* variable = proxy->var(); | 777 Variable* variable = proxy->var(); |
778 switch (variable->location()) { | 778 switch (variable->location()) { |
779 case VariableLocation::UNALLOCATED: { | 779 case VariableLocation::UNALLOCATED: { |
780 DCHECK(!variable->binding_needs_init()); | 780 DCHECK(!variable->binding_needs_init()); |
| 781 globals_->Add(variable->name(), zone()); |
781 FeedbackVectorSlot slot = proxy->VariableFeedbackSlot(); | 782 FeedbackVectorSlot slot = proxy->VariableFeedbackSlot(); |
782 DCHECK(!slot.IsInvalid()); | 783 DCHECK(!slot.IsInvalid()); |
783 globals_->Add(handle(Smi::FromInt(slot.ToInt()), isolate()), zone()); | 784 globals_->Add(handle(Smi::FromInt(slot.ToInt()), isolate()), zone()); |
784 globals_->Add(isolate()->factory()->undefined_value(), zone()); | 785 globals_->Add(isolate()->factory()->undefined_value(), zone()); |
785 break; | 786 break; |
786 } | 787 } |
787 case VariableLocation::PARAMETER: | 788 case VariableLocation::PARAMETER: |
788 case VariableLocation::LOCAL: | 789 case VariableLocation::LOCAL: |
789 if (variable->binding_needs_init()) { | 790 if (variable->binding_needs_init()) { |
790 Comment cmnt(masm_, "[ VariableDeclaration"); | 791 Comment cmnt(masm_, "[ VariableDeclaration"); |
(...skipping 29 matching lines...) Expand all Loading... |
820 } | 821 } |
821 } | 822 } |
822 | 823 |
823 | 824 |
824 void FullCodeGenerator::VisitFunctionDeclaration( | 825 void FullCodeGenerator::VisitFunctionDeclaration( |
825 FunctionDeclaration* declaration) { | 826 FunctionDeclaration* declaration) { |
826 VariableProxy* proxy = declaration->proxy(); | 827 VariableProxy* proxy = declaration->proxy(); |
827 Variable* variable = proxy->var(); | 828 Variable* variable = proxy->var(); |
828 switch (variable->location()) { | 829 switch (variable->location()) { |
829 case VariableLocation::UNALLOCATED: { | 830 case VariableLocation::UNALLOCATED: { |
| 831 globals_->Add(variable->name(), zone()); |
830 FeedbackVectorSlot slot = proxy->VariableFeedbackSlot(); | 832 FeedbackVectorSlot slot = proxy->VariableFeedbackSlot(); |
831 DCHECK(!slot.IsInvalid()); | 833 DCHECK(!slot.IsInvalid()); |
832 globals_->Add(handle(Smi::FromInt(slot.ToInt()), isolate()), zone()); | 834 globals_->Add(handle(Smi::FromInt(slot.ToInt()), isolate()), zone()); |
833 Handle<SharedFunctionInfo> function = | 835 Handle<SharedFunctionInfo> function = |
834 Compiler::GetSharedFunctionInfo(declaration->fun(), script(), info_); | 836 Compiler::GetSharedFunctionInfo(declaration->fun(), script(), info_); |
835 // Check for stack overflow exception. | 837 // Check for stack overflow exception. |
836 if (function.is_null()) return SetStackOverflow(); | 838 if (function.is_null()) return SetStackOverflow(); |
837 globals_->Add(function, zone()); | 839 globals_->Add(function, zone()); |
838 break; | 840 break; |
839 } | 841 } |
(...skipping 2859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3699 } | 3701 } |
3700 | 3702 |
3701 return INTERRUPT; | 3703 return INTERRUPT; |
3702 } | 3704 } |
3703 | 3705 |
3704 | 3706 |
3705 } // namespace internal | 3707 } // namespace internal |
3706 } // namespace v8 | 3708 } // namespace v8 |
3707 | 3709 |
3708 #endif // V8_TARGET_ARCH_ARM64 | 3710 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |