Index: src/factory.cc |
diff --git a/src/factory.cc b/src/factory.cc |
index cf4739b9aed0c38d9f36df0e891dab80dd2c91ae..28b318a8f42f7989d851e1d2705c31d99b52af51 100644 |
--- a/src/factory.cc |
+++ b/src/factory.cc |
@@ -115,7 +115,8 @@ Handle<ObjectHashTable> Factory::NewObjectHashTable(int at_least_space_for) { |
Handle<DescriptorArray> Factory::NewDescriptorArray(int number_of_descriptors) { |
ASSERT(0 <= number_of_descriptors); |
CALL_HEAP_FUNCTION(isolate(), |
- DescriptorArray::Allocate(number_of_descriptors), |
+ DescriptorArray::Allocate(number_of_descriptors, |
+ DescriptorArray::MAY_BE_SHARED), |
DescriptorArray); |
} |
@@ -496,7 +497,9 @@ Handle<Map> Factory::CopyMap(Handle<Map> src, |
Handle<Map> Factory::CopyMapDropTransitions(Handle<Map> src) { |
- CALL_HEAP_FUNCTION(isolate(), src->CopyDropTransitions(), Map); |
+ CALL_HEAP_FUNCTION(isolate(), |
+ src->CopyDropTransitions(DescriptorArray::MAY_BE_SHARED), |
+ Map); |
} |
@@ -939,7 +942,7 @@ Handle<DescriptorArray> Factory::CopyAppendCallbackDescriptors( |
Handle<String> key = |
SymbolFromString(Handle<String>(String::cast(entry->name()))); |
// Check if a descriptor with this name already exists before writing. |
- if (result->LinearSearch(*key, descriptor_count) == |
+ if (result->LinearSearch(EXPECT_UNSORTED, *key, descriptor_count) == |
DescriptorArray::kNotFound) { |
CallbacksDescriptor desc(*key, *entry, entry->property_attributes()); |
result->Set(descriptor_count, &desc, witness); |