OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 2423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2434 { MaybeObject* maybe_obj = | 2434 { MaybeObject* maybe_obj = |
2435 AllocateMap(FIXED_ARRAY_TYPE, kVariableSizeSentinel); | 2435 AllocateMap(FIXED_ARRAY_TYPE, kVariableSizeSentinel); |
2436 if (!maybe_obj->ToObject(&obj)) return false; | 2436 if (!maybe_obj->ToObject(&obj)) return false; |
2437 } | 2437 } |
2438 set_module_context_map(Map::cast(obj)); | 2438 set_module_context_map(Map::cast(obj)); |
2439 | 2439 |
2440 { MaybeObject* maybe_obj = | 2440 { MaybeObject* maybe_obj = |
2441 AllocateMap(FIXED_ARRAY_TYPE, kVariableSizeSentinel); | 2441 AllocateMap(FIXED_ARRAY_TYPE, kVariableSizeSentinel); |
2442 if (!maybe_obj->ToObject(&obj)) return false; | 2442 if (!maybe_obj->ToObject(&obj)) return false; |
2443 } | 2443 } |
| 2444 set_global_context_map(Map::cast(obj)); |
| 2445 |
| 2446 { MaybeObject* maybe_obj = |
| 2447 AllocateMap(FIXED_ARRAY_TYPE, kVariableSizeSentinel); |
| 2448 if (!maybe_obj->ToObject(&obj)) return false; |
| 2449 } |
2444 Map* native_context_map = Map::cast(obj); | 2450 Map* native_context_map = Map::cast(obj); |
2445 native_context_map->set_dictionary_map(true); | 2451 native_context_map->set_dictionary_map(true); |
2446 native_context_map->set_visitor_id(StaticVisitorBase::kVisitNativeContext); | 2452 native_context_map->set_visitor_id(StaticVisitorBase::kVisitNativeContext); |
2447 set_native_context_map(native_context_map); | 2453 set_native_context_map(native_context_map); |
2448 | 2454 |
2449 { MaybeObject* maybe_obj = AllocateMap(SHARED_FUNCTION_INFO_TYPE, | 2455 { MaybeObject* maybe_obj = AllocateMap(SHARED_FUNCTION_INFO_TYPE, |
2450 SharedFunctionInfo::kAlignedSize); | 2456 SharedFunctionInfo::kAlignedSize); |
2451 if (!maybe_obj->ToObject(&obj)) return false; | 2457 if (!maybe_obj->ToObject(&obj)) return false; |
2452 } | 2458 } |
2453 set_shared_function_info_map(Map::cast(obj)); | 2459 set_shared_function_info_map(Map::cast(obj)); |
(...skipping 2444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4898 } | 4904 } |
4899 Context* context = reinterpret_cast<Context*>(result); | 4905 Context* context = reinterpret_cast<Context*>(result); |
4900 context->set_map_no_write_barrier(native_context_map()); | 4906 context->set_map_no_write_barrier(native_context_map()); |
4901 context->set_js_array_maps(undefined_value()); | 4907 context->set_js_array_maps(undefined_value()); |
4902 ASSERT(context->IsNativeContext()); | 4908 ASSERT(context->IsNativeContext()); |
4903 ASSERT(result->IsContext()); | 4909 ASSERT(result->IsContext()); |
4904 return result; | 4910 return result; |
4905 } | 4911 } |
4906 | 4912 |
4907 | 4913 |
| 4914 MaybeObject* Heap::AllocateGlobalContext(JSFunction* function, |
| 4915 ScopeInfo* scope_info) { |
| 4916 Object* result; |
| 4917 { MaybeObject* maybe_result = |
| 4918 AllocateFixedArray(scope_info->ContextLength(), TENURED); |
| 4919 if (!maybe_result->ToObject(&result)) return maybe_result; |
| 4920 } |
| 4921 Context* context = reinterpret_cast<Context*>(result); |
| 4922 context->set_map_no_write_barrier(global_context_map()); |
| 4923 context->set_closure(function); |
| 4924 context->set_extension(scope_info); |
| 4925 ASSERT(context->IsGlobalContext()); |
| 4926 ASSERT(result->IsContext()); |
| 4927 return context; |
| 4928 } |
| 4929 |
| 4930 |
4908 MaybeObject* Heap::AllocateModuleContext(ScopeInfo* scope_info) { | 4931 MaybeObject* Heap::AllocateModuleContext(ScopeInfo* scope_info) { |
4909 Object* result; | 4932 Object* result; |
4910 { MaybeObject* maybe_result = | 4933 { MaybeObject* maybe_result = |
4911 AllocateFixedArray(scope_info->ContextLength(), TENURED); | 4934 AllocateFixedArray(scope_info->ContextLength(), TENURED); |
4912 if (!maybe_result->ToObject(&result)) return maybe_result; | 4935 if (!maybe_result->ToObject(&result)) return maybe_result; |
4913 } | 4936 } |
4914 Context* context = reinterpret_cast<Context*>(result); | 4937 Context* context = reinterpret_cast<Context*>(result); |
4915 context->set_map_no_write_barrier(module_context_map()); | 4938 context->set_map_no_write_barrier(module_context_map()); |
4916 // Context links will be set later. | 4939 // Context links will be set later. |
4917 context->set_extension(Smi::FromInt(0)); | 4940 context->set_extension(Smi::FromInt(0)); |
(...skipping 2344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7262 static_cast<int>(object_sizes_last_time_[index])); | 7285 static_cast<int>(object_sizes_last_time_[index])); |
7263 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(ADJUST_LAST_TIME_OBJECT_COUNT) | 7286 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(ADJUST_LAST_TIME_OBJECT_COUNT) |
7264 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 7287 #undef ADJUST_LAST_TIME_OBJECT_COUNT |
7265 | 7288 |
7266 memcpy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 7289 memcpy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); |
7267 memcpy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 7290 memcpy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); |
7268 ClearObjectStats(); | 7291 ClearObjectStats(); |
7269 } | 7292 } |
7270 | 7293 |
7271 } } // namespace v8::internal | 7294 } } // namespace v8::internal |
OLD | NEW |