| 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 #include "src/ast/scopes.h" | 5 #include "src/ast/scopes.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "src/accessors.h" | 9 #include "src/accessors.h" |
| 10 #include "src/ast/ast.h" | 10 #include "src/ast/ast.h" |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 Zone* zone = ast_value_factory->zone(); | 157 Zone* zone = ast_value_factory->zone(); |
| 158 module_descriptor_ = new (zone) ModuleDescriptor(zone); | 158 module_descriptor_ = new (zone) ModuleDescriptor(zone); |
| 159 set_language_mode(STRICT); | 159 set_language_mode(STRICT); |
| 160 DeclareThis(ast_value_factory); | 160 DeclareThis(ast_value_factory); |
| 161 } | 161 } |
| 162 | 162 |
| 163 ModuleScope::ModuleScope(Isolate* isolate, Handle<ScopeInfo> scope_info, | 163 ModuleScope::ModuleScope(Isolate* isolate, Handle<ScopeInfo> scope_info, |
| 164 AstValueFactory* avfactory) | 164 AstValueFactory* avfactory) |
| 165 : DeclarationScope(avfactory->zone(), MODULE_SCOPE, scope_info) { | 165 : DeclarationScope(avfactory->zone(), MODULE_SCOPE, scope_info) { |
| 166 Zone* zone = avfactory->zone(); | 166 Zone* zone = avfactory->zone(); |
| 167 ModuleInfo* module_info = scope_info->ModuleDescriptorInfo(); | 167 Handle<ModuleInfo> module_info(scope_info->ModuleDescriptorInfo(), isolate); |
| 168 | 168 |
| 169 set_language_mode(STRICT); | 169 set_language_mode(STRICT); |
| 170 module_descriptor_ = new (zone) ModuleDescriptor(zone); | 170 module_descriptor_ = new (zone) ModuleDescriptor(zone); |
| 171 | 171 |
| 172 // Deserialize special exports. | 172 // Deserialize special exports. |
| 173 Handle<FixedArray> special_exports(module_info->special_exports(), isolate); | 173 Handle<FixedArray> special_exports(module_info->special_exports(), isolate); |
| 174 for (int i = 0, n = special_exports->length(); i < n; ++i) { | 174 for (int i = 0, n = special_exports->length(); i < n; ++i) { |
| 175 Handle<ModuleInfoEntry> serialized_entry( | 175 Handle<ModuleInfoEntry> serialized_entry( |
| 176 ModuleInfoEntry::cast(special_exports->get(i)), isolate); | 176 ModuleInfoEntry::cast(special_exports->get(i)), isolate); |
| 177 module_descriptor_->AddSpecialExport( | 177 module_descriptor_->AddSpecialExport( |
| 178 ModuleDescriptor::Entry::Deserialize(isolate, avfactory, | 178 ModuleDescriptor::Entry::Deserialize(isolate, avfactory, |
| 179 serialized_entry), | 179 serialized_entry), |
| 180 avfactory->zone()); | 180 avfactory->zone()); |
| 181 } | 181 } |
| 182 | 182 |
| 183 // Deserialize regular exports. | 183 // Deserialize regular exports. |
| 184 Handle<FixedArray> regular_exports(module_info->regular_exports(), isolate); | |
| 185 module_descriptor_->DeserializeRegularExports(isolate, avfactory, | 184 module_descriptor_->DeserializeRegularExports(isolate, avfactory, |
| 186 regular_exports); | 185 module_info); |
| 187 | 186 |
| 188 // Deserialize namespace imports. | 187 // Deserialize namespace imports. |
| 189 Handle<FixedArray> namespace_imports(module_info->namespace_imports(), | 188 Handle<FixedArray> namespace_imports(module_info->namespace_imports(), |
| 190 isolate); | 189 isolate); |
| 191 for (int i = 0, n = namespace_imports->length(); i < n; ++i) { | 190 for (int i = 0, n = namespace_imports->length(); i < n; ++i) { |
| 192 Handle<ModuleInfoEntry> serialized_entry( | 191 Handle<ModuleInfoEntry> serialized_entry( |
| 193 ModuleInfoEntry::cast(namespace_imports->get(i)), isolate); | 192 ModuleInfoEntry::cast(namespace_imports->get(i)), isolate); |
| 194 module_descriptor_->AddNamespaceImport( | 193 module_descriptor_->AddNamespaceImport( |
| 195 ModuleDescriptor::Entry::Deserialize(isolate, avfactory, | 194 ModuleDescriptor::Entry::Deserialize(isolate, avfactory, |
| 196 serialized_entry), | 195 serialized_entry), |
| (...skipping 1839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2036 Variable* function = | 2035 Variable* function = |
| 2037 is_function_scope() ? AsDeclarationScope()->function_var() : nullptr; | 2036 is_function_scope() ? AsDeclarationScope()->function_var() : nullptr; |
| 2038 bool is_function_var_in_context = | 2037 bool is_function_var_in_context = |
| 2039 function != nullptr && function->IsContextSlot(); | 2038 function != nullptr && function->IsContextSlot(); |
| 2040 return num_heap_slots() - Context::MIN_CONTEXT_SLOTS - | 2039 return num_heap_slots() - Context::MIN_CONTEXT_SLOTS - |
| 2041 (is_function_var_in_context ? 1 : 0); | 2040 (is_function_var_in_context ? 1 : 0); |
| 2042 } | 2041 } |
| 2043 | 2042 |
| 2044 } // namespace internal | 2043 } // namespace internal |
| 2045 } // namespace v8 | 2044 } // namespace v8 |
| OLD | NEW |