| 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 4322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4333 // Allocate the object based on the constructors initial map, or the payload | 4333 // Allocate the object based on the constructors initial map, or the payload |
| 4334 // advice | 4334 // advice |
| 4335 Map* initial_map = constructor->initial_map(); | 4335 Map* initial_map = constructor->initial_map(); |
| 4336 | 4336 |
| 4337 JSGlobalPropertyCell* cell = JSGlobalPropertyCell::cast( | 4337 JSGlobalPropertyCell* cell = JSGlobalPropertyCell::cast( |
| 4338 *allocation_site_info_payload); | 4338 *allocation_site_info_payload); |
| 4339 Smi* smi = Smi::cast(cell->value()); | 4339 Smi* smi = Smi::cast(cell->value()); |
| 4340 ElementsKind to_kind = static_cast<ElementsKind>(smi->value()); | 4340 ElementsKind to_kind = static_cast<ElementsKind>(smi->value()); |
| 4341 AllocationSiteMode mode = TRACK_ALLOCATION_SITE; | 4341 AllocationSiteMode mode = TRACK_ALLOCATION_SITE; |
| 4342 if (to_kind != initial_map->elements_kind()) { | 4342 if (to_kind != initial_map->elements_kind()) { |
| 4343 MaybeObject* maybe_new_map = constructor->GetElementsTransitionMap( | 4343 MaybeObject* maybe_new_map = initial_map->AsElementsKind(to_kind); |
| 4344 isolate(), to_kind); | |
| 4345 if (!maybe_new_map->To(&initial_map)) return maybe_new_map; | 4344 if (!maybe_new_map->To(&initial_map)) return maybe_new_map; |
| 4346 // Possibly alter the mode, since we found an updated elements kind | 4345 // Possibly alter the mode, since we found an updated elements kind |
| 4347 // in the type info cell. | 4346 // in the type info cell. |
| 4348 mode = AllocationSiteInfo::GetMode(to_kind); | 4347 mode = AllocationSiteInfo::GetMode(to_kind); |
| 4349 } | 4348 } |
| 4350 | 4349 |
| 4351 MaybeObject* result; | 4350 MaybeObject* result; |
| 4352 if (mode == TRACK_ALLOCATION_SITE) { | 4351 if (mode == TRACK_ALLOCATION_SITE) { |
| 4353 result = AllocateJSObjectFromMapWithAllocationSite(initial_map, | 4352 result = AllocateJSObjectFromMapWithAllocationSite(initial_map, |
| 4354 allocation_site_info_payload); | 4353 allocation_site_info_payload); |
| (...skipping 3532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7887 if (FLAG_parallel_recompilation) { | 7886 if (FLAG_parallel_recompilation) { |
| 7888 heap_->relocation_mutex_->Lock(); | 7887 heap_->relocation_mutex_->Lock(); |
| 7889 #ifdef DEBUG | 7888 #ifdef DEBUG |
| 7890 heap_->relocation_mutex_locked_by_optimizer_thread_ = | 7889 heap_->relocation_mutex_locked_by_optimizer_thread_ = |
| 7891 heap_->isolate()->optimizing_compiler_thread()->IsOptimizerThread(); | 7890 heap_->isolate()->optimizing_compiler_thread()->IsOptimizerThread(); |
| 7892 #endif // DEBUG | 7891 #endif // DEBUG |
| 7893 } | 7892 } |
| 7894 } | 7893 } |
| 7895 | 7894 |
| 7896 } } // namespace v8::internal | 7895 } } // namespace v8::internal |
| OLD | NEW |