| Index: src/heap.cc
|
| diff --git a/src/heap.cc b/src/heap.cc
|
| index 4cc47d0405a2dac3fad5b79c8fe9a692b46751af..1594ded7d32a3a6f8e5c59cea77bf3528ee7ca70 100644
|
| --- a/src/heap.cc
|
| +++ b/src/heap.cc
|
| @@ -2168,6 +2168,7 @@ MaybeObject* Heap::AllocateMap(InstanceType instance_type,
|
| map->set_inobject_properties(0);
|
| map->set_pre_allocated_property_fields(0);
|
| map->set_code_cache(empty_fixed_array(), SKIP_WRITE_BARRIER);
|
| + map->set_dependent_codes(empty_fixed_array(), SKIP_WRITE_BARRIER);
|
| map->init_back_pointer(undefined_value());
|
| map->set_unused_property_fields(0);
|
| map->set_instance_descriptors(empty_descriptor_array());
|
| @@ -2303,14 +2304,17 @@ bool Heap::CreateInitialMaps() {
|
|
|
| // Fix the instance_descriptors for the existing maps.
|
| meta_map()->set_code_cache(empty_fixed_array());
|
| + meta_map()->set_dependent_codes(empty_fixed_array());
|
| meta_map()->init_back_pointer(undefined_value());
|
| meta_map()->set_instance_descriptors(empty_descriptor_array());
|
|
|
| fixed_array_map()->set_code_cache(empty_fixed_array());
|
| + fixed_array_map()->set_dependent_codes(empty_fixed_array());
|
| fixed_array_map()->init_back_pointer(undefined_value());
|
| fixed_array_map()->set_instance_descriptors(empty_descriptor_array());
|
|
|
| oddball_map()->set_code_cache(empty_fixed_array());
|
| + oddball_map()->set_dependent_codes(empty_fixed_array());
|
| oddball_map()->init_back_pointer(undefined_value());
|
| oddball_map()->set_instance_descriptors(empty_descriptor_array());
|
|
|
| @@ -3757,6 +3761,9 @@ MaybeObject* Heap::CreateCode(const CodeDesc& desc,
|
| code->set_gc_metadata(Smi::FromInt(0));
|
| code->set_ic_age(global_ic_age_);
|
| code->set_prologue_offset(kPrologueOffsetNotSet);
|
| + if (code->kind() == Code::OPTIMIZED_FUNCTION) {
|
| + code->set_marked_for_deoptimization(false);
|
| + }
|
| // Allow self references to created code object by patching the handle to
|
| // point to the newly allocated Code object.
|
| if (!self_reference.is_null()) {
|
|
|