| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 33363238c4d28a056421c19d32e1e3935c13bb64..9739ad19a17f784693b29324a01caecd5bb479e2 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -5203,9 +5203,8 @@ Map* Map::elements_transition_map() {
|
|
|
| bool Map::CanHaveMoreTransitions() {
|
| if (!HasTransitionArray()) return true;
|
| - return FixedArray::SizeFor(transitions()->length() +
|
| - TransitionArray::kTransitionSize)
|
| - <= Page::kMaxRegularHeapObjectSize;
|
| + return transitions()->number_of_transitions() <
|
| + TransitionArray::kMaxNumberOfTransitions;
|
| }
|
|
|
|
|
| @@ -6995,6 +6994,14 @@ void Map::ClearCodeCache(Heap* heap) {
|
| }
|
|
|
|
|
| +int Map::SlackForArraySize(int old_size, int size_limit) {
|
| + const int max_slack = size_limit - old_size;
|
| + CHECK(max_slack >= 0);
|
| + if (old_size < 4) return Min(max_slack, 1);
|
| + return Min(max_slack, old_size / 2);
|
| +}
|
| +
|
| +
|
| void JSArray::EnsureSize(Handle<JSArray> array, int required_size) {
|
| DCHECK(array->HasFastSmiOrObjectElements());
|
| Handle<FixedArray> elts = handle(FixedArray::cast(array->elements()));
|
|
|