Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 77bc06430c7f4730b27412dd56742a9f6354b31a..2299bcbed309a1b0b3d6f305a25604a5aaf47181 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1051,6 +1051,7 @@ template <class C> inline bool Is(Object* obj); |
V(DependentCode) \ |
V(HandlerTable) \ |
V(FixedArray) \ |
+ V(BoilerplateDescription) \ |
V(FixedDoubleArray) \ |
V(WeakFixedArray) \ |
V(ArrayList) \ |
@@ -2906,6 +2907,27 @@ class FixedArray: public FixedArrayBase { |
DISALLOW_IMPLICIT_CONSTRUCTORS(FixedArray); |
}; |
+// BoilerplateDescription is a list of properties consisting of name value |
+// pairs. In addition to the properties, it provides the number of all |
+// properties. This number includes properties with computed names that are not |
+// in the list. We need the total number for allocating space in the property |
+// backing store. |
+class BoilerplateDescription : public FixedArray { |
+ public: |
+ // Number of boilerplate properties and properties with computed names. |
+ int number_of_all_properties() const; |
+ |
+ // The number of boilerplate properties. |
+ int size() const; |
+ |
+ Object* name(int index) const; |
+ Object* value(int index) const; |
+ |
+ DECLARE_CAST(BoilerplateDescription) |
+ |
+ private: |
+ bool has_number_of_properties() const; |
+}; |
// FixedDoubleArray describes fixed-sized arrays with element type double. |
class FixedDoubleArray: public FixedArrayBase { |
@@ -6389,7 +6411,6 @@ class Map: public HeapObject { |
static const int kInstanceTypeAndBitFieldOffset = |
kInstanceAttributesOffset + 0; |
static const int kBitField2Offset = kInstanceAttributesOffset + 2; |
- static const int kUnusedPropertyFieldsByte = 3; |
static const int kUnusedPropertyFieldsOffset = kInstanceAttributesOffset + 3; |
STATIC_ASSERT(kInstanceTypeAndBitFieldOffset == |