| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 8993728a0ba86431ddddccfefe70b5a38d2e06af..0184759d462dbfa1e587cc470e3326f356fbd611 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -1654,7 +1654,7 @@ class JSObject: public JSReceiver {
|
| bool ShouldConvertToFastElements();
|
| // Returns true if the elements of JSObject contains only values that can be
|
| // represented in a FixedDoubleArray.
|
| - bool ShouldConvertToFastDoubleElements();
|
| + bool CanConvertToFastDoubleElements();
|
|
|
| // Tells whether the index'th element is present.
|
| inline bool HasElement(uint32_t index);
|
| @@ -1948,8 +1948,21 @@ class JSObject: public JSReceiver {
|
| // Also maximal value of JSArray's length property.
|
| static const uint32_t kMaxElementCount = 0xffffffffu;
|
|
|
| + // Constants for heuristics controlling conversion of fast elements
|
| + // to slow elements.
|
| +
|
| + // Maximal gap that can be introduced by adding an element beyond
|
| + // the current elements length.
|
| static const uint32_t kMaxGap = 1024;
|
| - static const int kMaxFastElementsLength = 5000;
|
| +
|
| + // Maximal length of fast elements array that won't be checked for
|
| + // being dense enough on expansion.
|
| + static const int kMaxUncheckedFastElementsLength = 5000;
|
| +
|
| + // Same as above but for old arrays. This limit is more strict. We
|
| + // don't want to be wasteful with long lived objects.
|
| + static const int kMaxUncheckedOldFastElementsLength = 500;
|
| +
|
| static const int kInitialMaxFastElementArray = 100000;
|
| static const int kMaxFastProperties = 12;
|
| static const int kMaxInstanceSize = 255 * kPointerSize;
|
| @@ -2015,6 +2028,9 @@ class JSObject: public JSReceiver {
|
| // Returns true if most of the elements backing storage is used.
|
| bool HasDenseElements();
|
|
|
| + // Gets the current elements capacity and the number of used elements.
|
| + void GetElementsCapacityAndUsage(int* capacity, int* used);
|
| +
|
| bool CanSetCallback(String* name);
|
| MUST_USE_RESULT MaybeObject* SetElementCallback(
|
| uint32_t index,
|
| @@ -2491,6 +2507,10 @@ class HashTable: public FixedArray {
|
| int at_least_space_for,
|
| PretenureFlag pretenure = NOT_TENURED);
|
|
|
| + // Computes the required capacity for a table holding the given
|
| + // number of elements. May be more than HashTable::kMaxCapacity.
|
| + static int ComputeCapacity(int at_least_space_for);
|
| +
|
| // Returns the key at entry.
|
| Object* KeyAt(int entry) { return get(EntryToIndex(entry)); }
|
|
|
|
|