OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 #include <stdlib.h> | 5 #include <stdlib.h> |
6 | 6 |
7 #include "src/ast/context-slot-cache.h" | 7 #include "src/ast/context-slot-cache.h" |
8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
9 #include "src/ast/variables.h" | 9 #include "src/ast/variables.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 int entry = ModuleVariablesIndex(); | 647 int entry = ModuleVariablesIndex(); |
648 for (int i = 0; i < module_vars_count; ++i) { | 648 for (int i = 0; i < module_vars_count; ++i) { |
649 if (*name == get(entry + kModuleVariableNameOffset)) { | 649 if (*name == get(entry + kModuleVariableNameOffset)) { |
650 int index; | 650 int index; |
651 ModuleVariable(i, nullptr, &index, mode, init_flag, maybe_assigned_flag); | 651 ModuleVariable(i, nullptr, &index, mode, init_flag, maybe_assigned_flag); |
652 return index; | 652 return index; |
653 } | 653 } |
654 entry += kModuleVariableEntryLength; | 654 entry += kModuleVariableEntryLength; |
655 } | 655 } |
656 | 656 |
657 return -1; | 657 return 0; |
658 } | 658 } |
659 | 659 |
660 int ScopeInfo::ContextSlotIndex(Handle<ScopeInfo> scope_info, | 660 int ScopeInfo::ContextSlotIndex(Handle<ScopeInfo> scope_info, |
661 Handle<String> name, VariableMode* mode, | 661 Handle<String> name, VariableMode* mode, |
662 InitializationFlag* init_flag, | 662 InitializationFlag* init_flag, |
663 MaybeAssignedFlag* maybe_assigned_flag) { | 663 MaybeAssignedFlag* maybe_assigned_flag) { |
664 DCHECK(name->IsInternalizedString()); | 664 DCHECK(name->IsInternalizedString()); |
665 DCHECK_NOT_NULL(mode); | 665 DCHECK_NOT_NULL(mode); |
666 DCHECK_NOT_NULL(init_flag); | 666 DCHECK_NOT_NULL(init_flag); |
667 DCHECK_NOT_NULL(maybe_assigned_flag); | 667 DCHECK_NOT_NULL(maybe_assigned_flag); |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
799 | 799 |
800 int entry = ModuleVariablesIndex() + i * kModuleVariableEntryLength; | 800 int entry = ModuleVariablesIndex() + i * kModuleVariableEntryLength; |
801 int properties = | 801 int properties = |
802 Smi::cast(get(entry + kModuleVariablePropertiesOffset))->value(); | 802 Smi::cast(get(entry + kModuleVariablePropertiesOffset))->value(); |
803 | 803 |
804 if (name != nullptr) { | 804 if (name != nullptr) { |
805 *name = String::cast(get(entry + kModuleVariableNameOffset)); | 805 *name = String::cast(get(entry + kModuleVariableNameOffset)); |
806 } | 806 } |
807 if (index != nullptr) { | 807 if (index != nullptr) { |
808 *index = Smi::cast(get(entry + kModuleVariableIndexOffset))->value(); | 808 *index = Smi::cast(get(entry + kModuleVariableIndexOffset))->value(); |
| 809 DCHECK_NE(*index, 0); |
809 } | 810 } |
810 if (mode != nullptr) { | 811 if (mode != nullptr) { |
811 *mode = VariableModeField::decode(properties); | 812 *mode = VariableModeField::decode(properties); |
812 } | 813 } |
813 if (init_flag != nullptr) { | 814 if (init_flag != nullptr) { |
814 *init_flag = InitFlagField::decode(properties); | 815 *init_flag = InitFlagField::decode(properties); |
815 } | 816 } |
816 if (maybe_assigned_flag != nullptr) { | 817 if (maybe_assigned_flag != nullptr) { |
817 *maybe_assigned_flag = MaybeAssignedFlagField::decode(properties); | 818 *maybe_assigned_flag = MaybeAssignedFlagField::decode(properties); |
818 } | 819 } |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
860 } | 861 } |
861 | 862 |
862 PrintF("}\n"); | 863 PrintF("}\n"); |
863 } | 864 } |
864 #endif // DEBUG | 865 #endif // DEBUG |
865 | 866 |
866 Handle<ModuleInfoEntry> ModuleInfoEntry::New(Isolate* isolate, | 867 Handle<ModuleInfoEntry> ModuleInfoEntry::New(Isolate* isolate, |
867 Handle<Object> export_name, | 868 Handle<Object> export_name, |
868 Handle<Object> local_name, | 869 Handle<Object> local_name, |
869 Handle<Object> import_name, | 870 Handle<Object> import_name, |
870 Handle<Object> module_request, | 871 int module_request, int cell_index, |
871 int beg_pos, int end_pos) { | 872 int beg_pos, int end_pos) { |
872 Handle<ModuleInfoEntry> result = isolate->factory()->NewModuleInfoEntry(); | 873 Handle<ModuleInfoEntry> result = isolate->factory()->NewModuleInfoEntry(); |
873 result->set(kExportNameIndex, *export_name); | 874 result->set(kExportNameIndex, *export_name); |
874 result->set(kLocalNameIndex, *local_name); | 875 result->set(kLocalNameIndex, *local_name); |
875 result->set(kImportNameIndex, *import_name); | 876 result->set(kImportNameIndex, *import_name); |
876 result->set(kModuleRequestIndex, *module_request); | 877 result->set(kModuleRequestIndex, Smi::FromInt(module_request)); |
| 878 result->set(kCellIndexIndex, Smi::FromInt(cell_index)); |
877 result->set(kBegPosIndex, Smi::FromInt(beg_pos)); | 879 result->set(kBegPosIndex, Smi::FromInt(beg_pos)); |
878 result->set(kEndPosIndex, Smi::FromInt(end_pos)); | 880 result->set(kEndPosIndex, Smi::FromInt(end_pos)); |
879 return result; | 881 return result; |
880 } | 882 } |
881 | 883 |
882 Handle<ModuleInfo> ModuleInfo::New(Isolate* isolate, Zone* zone, | 884 Handle<ModuleInfo> ModuleInfo::New(Isolate* isolate, Zone* zone, |
883 ModuleDescriptor* descr) { | 885 ModuleDescriptor* descr) { |
884 // Serialize module requests. | 886 // Serialize module requests. |
885 Handle<FixedArray> module_requests = isolate->factory()->NewFixedArray( | 887 Handle<FixedArray> module_requests = isolate->factory()->NewFixedArray( |
886 static_cast<int>(descr->module_requests().size())); | 888 static_cast<int>(descr->module_requests().size())); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
945 if (String::cast(entry->local_name())->Equals(*local_name)) { | 947 if (String::cast(entry->local_name())->Equals(*local_name)) { |
946 return entry; | 948 return entry; |
947 } | 949 } |
948 } | 950 } |
949 UNREACHABLE(); | 951 UNREACHABLE(); |
950 return Handle<ModuleInfoEntry>(); | 952 return Handle<ModuleInfoEntry>(); |
951 } | 953 } |
952 | 954 |
953 } // namespace internal | 955 } // namespace internal |
954 } // namespace v8 | 956 } // namespace v8 |
OLD | NEW |