| 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/bootstrapper.h" | 8 #include "src/bootstrapper.h" |
| 9 #include "src/messages.h" | 9 #include "src/messages.h" |
| 10 #include "src/parser.h" | 10 #include "src/parser.h" |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 kCreatedInitialized); | 144 kCreatedInitialized); |
| 145 AllocateHeapSlot(variable); | 145 AllocateHeapSlot(variable); |
| 146 } | 146 } |
| 147 | 147 |
| 148 | 148 |
| 149 void Scope::SetDefaults(ScopeType scope_type, Scope* outer_scope, | 149 void Scope::SetDefaults(ScopeType scope_type, Scope* outer_scope, |
| 150 Handle<ScopeInfo> scope_info, | 150 Handle<ScopeInfo> scope_info, |
| 151 FunctionKind function_kind) { | 151 FunctionKind function_kind) { |
| 152 outer_scope_ = outer_scope; | 152 outer_scope_ = outer_scope; |
| 153 scope_type_ = scope_type; | 153 scope_type_ = scope_type; |
| 154 is_declaration_scope_ = |
| 155 is_eval_scope() || is_function_scope() || |
| 156 is_module_scope() || is_script_scope(); |
| 154 function_kind_ = function_kind; | 157 function_kind_ = function_kind; |
| 155 scope_name_ = ast_value_factory_->empty_string(); | 158 scope_name_ = ast_value_factory_->empty_string(); |
| 156 dynamics_ = nullptr; | 159 dynamics_ = nullptr; |
| 157 receiver_ = nullptr; | 160 receiver_ = nullptr; |
| 158 new_target_ = nullptr; | 161 new_target_ = nullptr; |
| 159 function_ = nullptr; | 162 function_ = nullptr; |
| 160 arguments_ = nullptr; | 163 arguments_ = nullptr; |
| 161 this_function_ = nullptr; | 164 this_function_ = nullptr; |
| 162 illegal_redecl_ = nullptr; | 165 illegal_redecl_ = nullptr; |
| 163 scope_inside_with_ = false; | 166 scope_inside_with_ = false; |
| (...skipping 1192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1356 isolate->factory()->arguments_string())) { | 1359 isolate->factory()->arguments_string())) { |
| 1357 return true; | 1360 return true; |
| 1358 } | 1361 } |
| 1359 } | 1362 } |
| 1360 return false; | 1363 return false; |
| 1361 } | 1364 } |
| 1362 | 1365 |
| 1363 | 1366 |
| 1364 void Scope::AllocateStackSlot(Variable* var) { | 1367 void Scope::AllocateStackSlot(Variable* var) { |
| 1365 if (is_block_scope()) { | 1368 if (is_block_scope()) { |
| 1366 DeclarationScope()->AllocateStackSlot(var); | 1369 outer_scope()->DeclarationScope()->AllocateStackSlot(var); |
| 1367 } else { | 1370 } else { |
| 1368 var->AllocateTo(VariableLocation::LOCAL, num_stack_slots_++); | 1371 var->AllocateTo(VariableLocation::LOCAL, num_stack_slots_++); |
| 1369 } | 1372 } |
| 1370 } | 1373 } |
| 1371 | 1374 |
| 1372 | 1375 |
| 1373 void Scope::AllocateHeapSlot(Variable* var) { | 1376 void Scope::AllocateHeapSlot(Variable* var) { |
| 1374 var->AllocateTo(VariableLocation::CONTEXT, num_heap_slots_++); | 1377 var->AllocateTo(VariableLocation::CONTEXT, num_heap_slots_++); |
| 1375 } | 1378 } |
| 1376 | 1379 |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1613 bool is_function_var_in_context = | 1616 bool is_function_var_in_context = |
| 1614 function_ != NULL && function_->proxy()->var()->IsContextSlot(); | 1617 function_ != NULL && function_->proxy()->var()->IsContextSlot(); |
| 1615 return num_heap_slots() - Context::MIN_CONTEXT_SLOTS - | 1618 return num_heap_slots() - Context::MIN_CONTEXT_SLOTS - |
| 1616 2 * num_global_slots() - (is_function_var_in_context ? 1 : 0); | 1619 2 * num_global_slots() - (is_function_var_in_context ? 1 : 0); |
| 1617 } | 1620 } |
| 1618 | 1621 |
| 1619 | 1622 |
| 1620 int Scope::ContextGlobalCount() const { return num_global_slots(); } | 1623 int Scope::ContextGlobalCount() const { return num_global_slots(); } |
| 1621 } // namespace internal | 1624 } // namespace internal |
| 1622 } // namespace v8 | 1625 } // namespace v8 |
| OLD | NEW |