Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index c0835e21eb9cb5d3df0d1f5ad1e464b6d4022323..bd9689122095d6c5dfd2e49c10c8172f81ffa90c 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -359,6 +359,7 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits; |
V(SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
\ |
V(SYMBOL_TYPE) \ |
+ \ |
V(MAP_TYPE) \ |
V(CODE_TYPE) \ |
V(ODDBALL_TYPE) \ |
@@ -691,7 +692,7 @@ enum InstanceType { |
| kNotInternalizedTag, |
// Non-string names |
- SYMBOL_TYPE = kNotStringTag, // LAST_NAME_TYPE, FIRST_NONSTRING_TYPE |
+ SYMBOL_TYPE = kNotStringTag, // FIRST_NONSTRING_TYPE, LAST_NAME_TYPE |
// Objects allocated in their own spaces (never in new space). |
MAP_TYPE, |
@@ -8336,6 +8337,11 @@ class Symbol: public Name { |
// [name]: the print name of a symbol, or undefined if none. |
DECL_ACCESSORS(name, Object) |
+ DECL_ACCESSORS(flags, Smi) |
+ |
+ // [is_private]: whether this is a private symbol. |
+ DECL_BOOLEAN_ACCESSORS(is_private) |
+ |
// Casting. |
static inline Symbol* cast(Object* obj); |
@@ -8345,12 +8351,14 @@ class Symbol: public Name { |
// Layout description. |
static const int kNameOffset = Name::kSize; |
- static const int kSize = kNameOffset + kPointerSize; |
+ static const int kFlagsOffset = kNameOffset + kPointerSize; |
+ static const int kSize = kFlagsOffset + kPointerSize; |
- typedef FixedBodyDescriptor<kNameOffset, kNameOffset + kPointerSize, kSize> |
- BodyDescriptor; |
+ typedef FixedBodyDescriptor<kNameOffset, kFlagsOffset, kSize> BodyDescriptor; |
private: |
+ static const int kPrivateBit = 0; |
+ |
DISALLOW_IMPLICIT_CONSTRUCTORS(Symbol); |
}; |