Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1315)

Unified Diff: src/objects.h

Issue 2632503003: [runtime] Allocate space for computed property names (Closed)
Patch Set: Fix some variable names. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index 45f5ba0c0a3c7f3d1cb5250abbfd7711bd3c760c..2d358048957998409514bcab8214aaf59879ab48 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -1062,6 +1062,7 @@ template <class C> inline bool Is(Object* obj);
V(DependentCode) \
V(HandlerTable) \
V(FixedArray) \
+ V(ConstantProperties) \
V(FixedDoubleArray) \
V(WeakFixedArray) \
V(ArrayList) \
@@ -2914,6 +2915,28 @@ class FixedArray: public FixedArrayBase {
DISALLOW_IMPLICIT_CONSTRUCTORS(FixedArray);
};
+// ConstantProperties is a special FixedArray of constant properties that
+// provides access to the total number of properties (constant and
+// non-constant).
+// Usually, the number of properties is half the length of the
+// FixedArray (half because it consists of key-value pairs), but there could
+// have been non-constant property names for which we need to allocate space in
+// the property backing store as well.
+// The parser stores the total number after the last object in
+// the FixedArray. ConstantProperties simplifies access to this number.
Toon Verwaest 2017/01/18 08:49:53 What about also adding name(i) and value(i) which
Franzi 2017/01/18 14:23:10 name() and value() looks nice. Thanks! Changed the
+class ConstantProperties : public FixedArray {
+ public:
+ // Number of constant and non-constant properties.
+ int const number_of_properties();
+ // Actual size of the FixedArray, i.e., twice the number of constant
+ // properties without the field that contains the total number.
+ int const length();
+
+ DECLARE_CAST(ConstantProperties)
+
+ private:
+ bool const has_number_of_properties();
+};
// FixedDoubleArray describes fixed-sized arrays with element type double.
class FixedDoubleArray: public FixedArrayBase {
@@ -6397,7 +6420,6 @@ class Map: public HeapObject {
static const int kInstanceTypeAndBitFieldOffset =
kInstanceAttributesOffset + 0;
static const int kBitField2Offset = kInstanceAttributesOffset + 2;
- static const int kUnusedPropertyFieldsByte = 3;
Toon Verwaest 2017/01/18 08:49:53 why remove this?
Franzi 2017/01/18 14:23:10 Noticed that it's unused. Any reason we need to ke
static const int kUnusedPropertyFieldsOffset = kInstanceAttributesOffset + 3;
STATIC_ASSERT(kInstanceTypeAndBitFieldOffset ==

Powered by Google App Engine
This is Rietveld 408576698