OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 9821 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9832 inline int length(); | 9832 inline int length(); |
9833 inline void set_length(int value); | 9833 inline void set_length(int value); |
9834 | 9834 |
9835 // Following properties use flag bits. | 9835 // Following properties use flag bits. |
9836 DECL_BOOLEAN_ACCESSORS(hidden_prototype) | 9836 DECL_BOOLEAN_ACCESSORS(hidden_prototype) |
9837 DECL_BOOLEAN_ACCESSORS(undetectable) | 9837 DECL_BOOLEAN_ACCESSORS(undetectable) |
9838 // If the bit is set, object instances created by this function | 9838 // If the bit is set, object instances created by this function |
9839 // requires access check. | 9839 // requires access check. |
9840 DECL_BOOLEAN_ACCESSORS(needs_access_check) | 9840 DECL_BOOLEAN_ACCESSORS(needs_access_check) |
9841 DECL_BOOLEAN_ACCESSORS(read_only_prototype) | 9841 DECL_BOOLEAN_ACCESSORS(read_only_prototype) |
| 9842 DECL_BOOLEAN_ACCESSORS(remove_prototype) |
9842 | 9843 |
9843 static inline FunctionTemplateInfo* cast(Object* obj); | 9844 static inline FunctionTemplateInfo* cast(Object* obj); |
9844 | 9845 |
9845 // Dispatched behavior. | 9846 // Dispatched behavior. |
9846 DECLARE_PRINTER(FunctionTemplateInfo) | 9847 DECLARE_PRINTER(FunctionTemplateInfo) |
9847 DECLARE_VERIFIER(FunctionTemplateInfo) | 9848 DECLARE_VERIFIER(FunctionTemplateInfo) |
9848 | 9849 |
9849 static const int kSerialNumberOffset = TemplateInfo::kHeaderSize; | 9850 static const int kSerialNumberOffset = TemplateInfo::kHeaderSize; |
9850 static const int kCallCodeOffset = kSerialNumberOffset + kPointerSize; | 9851 static const int kCallCodeOffset = kSerialNumberOffset + kPointerSize; |
9851 static const int kPropertyAccessorsOffset = kCallCodeOffset + kPointerSize; | 9852 static const int kPropertyAccessorsOffset = kCallCodeOffset + kPointerSize; |
(...skipping 15 matching lines...) Expand all Loading... |
9867 static const int kFlagOffset = kAccessCheckInfoOffset + kPointerSize; | 9868 static const int kFlagOffset = kAccessCheckInfoOffset + kPointerSize; |
9868 static const int kLengthOffset = kFlagOffset + kPointerSize; | 9869 static const int kLengthOffset = kFlagOffset + kPointerSize; |
9869 static const int kSize = kLengthOffset + kPointerSize; | 9870 static const int kSize = kLengthOffset + kPointerSize; |
9870 | 9871 |
9871 private: | 9872 private: |
9872 // Bit position in the flag, from least significant bit position. | 9873 // Bit position in the flag, from least significant bit position. |
9873 static const int kHiddenPrototypeBit = 0; | 9874 static const int kHiddenPrototypeBit = 0; |
9874 static const int kUndetectableBit = 1; | 9875 static const int kUndetectableBit = 1; |
9875 static const int kNeedsAccessCheckBit = 2; | 9876 static const int kNeedsAccessCheckBit = 2; |
9876 static const int kReadOnlyPrototypeBit = 3; | 9877 static const int kReadOnlyPrototypeBit = 3; |
| 9878 static const int kRemovePrototypeBit = 4; |
9877 | 9879 |
9878 DISALLOW_IMPLICIT_CONSTRUCTORS(FunctionTemplateInfo); | 9880 DISALLOW_IMPLICIT_CONSTRUCTORS(FunctionTemplateInfo); |
9879 }; | 9881 }; |
9880 | 9882 |
9881 | 9883 |
9882 class ObjectTemplateInfo: public TemplateInfo { | 9884 class ObjectTemplateInfo: public TemplateInfo { |
9883 public: | 9885 public: |
9884 DECL_ACCESSORS(constructor, Object) | 9886 DECL_ACCESSORS(constructor, Object) |
9885 DECL_ACCESSORS(internal_field_count, Object) | 9887 DECL_ACCESSORS(internal_field_count, Object) |
9886 | 9888 |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10169 } else { | 10171 } else { |
10170 value &= ~(1 << bit_position); | 10172 value &= ~(1 << bit_position); |
10171 } | 10173 } |
10172 return value; | 10174 return value; |
10173 } | 10175 } |
10174 }; | 10176 }; |
10175 | 10177 |
10176 } } // namespace v8::internal | 10178 } } // namespace v8::internal |
10177 | 10179 |
10178 #endif // V8_OBJECTS_H_ | 10180 #endif // V8_OBJECTS_H_ |
OLD | NEW |