Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 85ca44ee44d42fd1bd7864c152bd9f3155c8f257..aaa03203ae444987ec954edb1d4e19012e0791c5 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -6765,31 +6765,20 @@ Object* JSObject::SlowReverseLookup(Object* value) { |
} |
-Handle<Map> Map::RawCopy(Handle<Map> map, |
- int instance_size) { |
- CALL_HEAP_FUNCTION(map->GetIsolate(), |
- map->RawCopy(instance_size), |
- Map); |
-} |
- |
- |
-MaybeObject* Map::RawCopy(int instance_size) { |
- Map* result; |
- MaybeObject* maybe_result = |
- GetHeap()->AllocateMap(instance_type(), instance_size); |
- if (!maybe_result->To(&result)) return maybe_result; |
- |
- result->set_prototype(prototype()); |
- result->set_constructor(constructor()); |
- result->set_bit_field(bit_field()); |
- result->set_bit_field2(bit_field2()); |
- int new_bit_field3 = bit_field3(); |
+Handle<Map> Map::RawCopy(Handle<Map> map, int instance_size) { |
+ Handle<Map> result = map->GetIsolate()->factory()->NewMap( |
+ map->instance_type(), instance_size); |
+ result->set_prototype(map->prototype()); |
+ result->set_constructor(map->constructor()); |
+ result->set_bit_field(map->bit_field()); |
+ result->set_bit_field2(map->bit_field2()); |
+ int new_bit_field3 = map->bit_field3(); |
new_bit_field3 = OwnsDescriptors::update(new_bit_field3, true); |
new_bit_field3 = NumberOfOwnDescriptorsBits::update(new_bit_field3, 0); |
new_bit_field3 = EnumLengthBits::update(new_bit_field3, |
kInvalidEnumCacheSentinel); |
new_bit_field3 = Deprecated::update(new_bit_field3, false); |
- if (!is_dictionary_map()) { |
+ if (!map->is_dictionary_map()) { |
new_bit_field3 = IsUnstable::update(new_bit_field3, false); |
} |
result->set_bit_field3(new_bit_field3); |