| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 9e866e3317906da88babfad09de25e10e657c5b8..e48787b03856d7e24a6cd8e496f525d0bab94a29 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -3503,11 +3503,11 @@ void Map::set_instance_descriptors(DescriptorArray* value,
|
|
|
| void Map::InitializeDescriptors(DescriptorArray* descriptors) {
|
| int len = descriptors->number_of_descriptors();
|
| + ASSERT(len <= DescriptorArray::kMaxNumberOfDescriptors);
|
| SLOW_ASSERT(descriptors->IsSortedNoDuplicates());
|
|
|
| #ifdef DEBUG
|
| - bool* used_indices =
|
| - reinterpret_cast<bool*>(alloca(sizeof(*used_indices) * len));
|
| + bool used_indices[DescriptorArray::kMaxNumberOfDescriptors];
|
| for (int i = 0; i < len; ++i) used_indices[i] = false;
|
|
|
| // Ensure that all enumeration indexes between 1 and length occur uniquely in
|
| @@ -3515,6 +3515,7 @@ void Map::InitializeDescriptors(DescriptorArray* descriptors) {
|
| for (int i = 0; i < len; ++i) {
|
| int enum_index = descriptors->GetDetails(i).index() -
|
| PropertyDetails::kInitialIndex;
|
| + ASSERT(0 <= enum_index && enum_index < len);
|
| ASSERT(!used_indices[enum_index]);
|
| used_indices[enum_index] = true;
|
| }
|
|
|