OLD | NEW |
---|---|
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 8764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
8775 static inline bool IsHashFieldComputed(uint32_t field); | 8775 static inline bool IsHashFieldComputed(uint32_t field); |
8776 | 8776 |
8777 private: | 8777 private: |
8778 DISALLOW_IMPLICIT_CONSTRUCTORS(Name); | 8778 DISALLOW_IMPLICIT_CONSTRUCTORS(Name); |
8779 }; | 8779 }; |
8780 | 8780 |
8781 | 8781 |
8782 // ES6 symbols. | 8782 // ES6 symbols. |
8783 class Symbol: public Name { | 8783 class Symbol: public Name { |
8784 public: | 8784 public: |
8785 // [name]: the print name of a symbol, or undefined if none. | 8785 DECL_ACCESSORS(flags, Smi) |
8786 | |
8787 // [name]: the print name of a symbol, or undefined if none | |
8786 DECL_ACCESSORS(name, Object) | 8788 DECL_ACCESSORS(name, Object) |
8787 | 8789 |
8788 DECL_ACCESSORS(flags, Smi) | |
8789 | |
8790 // [is_private]: whether this is a private symbol. | 8790 // [is_private]: whether this is a private symbol. |
8791 DECL_BOOLEAN_ACCESSORS(is_private) | 8791 DECL_BOOLEAN_ACCESSORS(is_private) |
8792 | 8792 |
8793 // [is_own]: whether this is an own symbol, that is, only used to designate | 8793 // [is_own]: whether this is an own symbol, that is, only used to designate |
8794 // own properties of objects. | 8794 // own properties of objects. |
8795 DECL_BOOLEAN_ACCESSORS(is_own) | 8795 DECL_BOOLEAN_ACCESSORS(is_own) |
8796 | 8796 |
8797 DECLARE_CAST(Symbol) | 8797 DECLARE_CAST(Symbol) |
8798 | 8798 |
8799 // Dispatched behavior. | 8799 // Dispatched behavior. |
8800 DECLARE_PRINTER(Symbol) | 8800 DECLARE_PRINTER(Symbol) |
8801 DECLARE_VERIFIER(Symbol) | 8801 DECLARE_VERIFIER(Symbol) |
8802 | 8802 |
8803 // Layout description. | 8803 // Layout description. |
8804 static const int kNameOffset = Name::kSize; | 8804 static const int kFlagsOffset = Name::kSize; |
Toon Verwaest
2015/03/11 17:55:02
Is this still necessary?
[At this point haven't lo
mvstanton
2015/03/12 17:05:34
Yes, I still want to do something in here but I'll
| |
8805 static const int kFlagsOffset = kNameOffset + kPointerSize; | 8805 static const int kNameOffset = kFlagsOffset + kPointerSize; |
8806 static const int kSize = kFlagsOffset + kPointerSize; | 8806 static const int kSize = kNameOffset + kPointerSize; |
8807 | 8807 |
8808 typedef FixedBodyDescriptor<kNameOffset, kFlagsOffset, kSize> BodyDescriptor; | 8808 typedef FixedBodyDescriptor<kFlagsOffset, kNameOffset + kPointerSize, kSize> |
8809 BodyDescriptor; | |
8809 | 8810 |
8810 void SymbolShortPrint(std::ostream& os); | 8811 void SymbolShortPrint(std::ostream& os); |
8811 | 8812 |
8812 private: | 8813 private: |
8813 static const int kPrivateBit = 0; | 8814 static const int kPrivateBit = 0; |
8814 static const int kOwnBit = 1; | 8815 static const int kOwnBit = 1; |
8815 | 8816 |
8816 const char* PrivateSymbolToName() const; | 8817 const char* PrivateSymbolToName() const; |
8817 | 8818 |
8818 #if TRACE_MAPS | 8819 #if TRACE_MAPS |
(...skipping 2164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10983 } else { | 10984 } else { |
10984 value &= ~(1 << bit_position); | 10985 value &= ~(1 << bit_position); |
10985 } | 10986 } |
10986 return value; | 10987 return value; |
10987 } | 10988 } |
10988 }; | 10989 }; |
10989 | 10990 |
10990 } } // namespace v8::internal | 10991 } } // namespace v8::internal |
10991 | 10992 |
10992 #endif // V8_OBJECTS_H_ | 10993 #endif // V8_OBJECTS_H_ |
OLD | NEW |