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 9823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9834 inline int length(); | 9834 inline int length(); |
9835 inline void set_length(int value); | 9835 inline void set_length(int value); |
9836 | 9836 |
9837 // Following properties use flag bits. | 9837 // Following properties use flag bits. |
9838 DECL_BOOLEAN_ACCESSORS(hidden_prototype) | 9838 DECL_BOOLEAN_ACCESSORS(hidden_prototype) |
9839 DECL_BOOLEAN_ACCESSORS(undetectable) | 9839 DECL_BOOLEAN_ACCESSORS(undetectable) |
9840 // If the bit is set, object instances created by this function | 9840 // If the bit is set, object instances created by this function |
9841 // requires access check. | 9841 // requires access check. |
9842 DECL_BOOLEAN_ACCESSORS(needs_access_check) | 9842 DECL_BOOLEAN_ACCESSORS(needs_access_check) |
9843 DECL_BOOLEAN_ACCESSORS(read_only_prototype) | 9843 DECL_BOOLEAN_ACCESSORS(read_only_prototype) |
| 9844 DECL_BOOLEAN_ACCESSORS(remove_prototype) |
9844 | 9845 |
9845 static inline FunctionTemplateInfo* cast(Object* obj); | 9846 static inline FunctionTemplateInfo* cast(Object* obj); |
9846 | 9847 |
9847 // Dispatched behavior. | 9848 // Dispatched behavior. |
9848 DECLARE_PRINTER(FunctionTemplateInfo) | 9849 DECLARE_PRINTER(FunctionTemplateInfo) |
9849 DECLARE_VERIFIER(FunctionTemplateInfo) | 9850 DECLARE_VERIFIER(FunctionTemplateInfo) |
9850 | 9851 |
9851 static const int kSerialNumberOffset = TemplateInfo::kHeaderSize; | 9852 static const int kSerialNumberOffset = TemplateInfo::kHeaderSize; |
9852 static const int kCallCodeOffset = kSerialNumberOffset + kPointerSize; | 9853 static const int kCallCodeOffset = kSerialNumberOffset + kPointerSize; |
9853 static const int kPropertyAccessorsOffset = kCallCodeOffset + kPointerSize; | 9854 static const int kPropertyAccessorsOffset = kCallCodeOffset + kPointerSize; |
(...skipping 15 matching lines...) Expand all Loading... |
9869 static const int kFlagOffset = kAccessCheckInfoOffset + kPointerSize; | 9870 static const int kFlagOffset = kAccessCheckInfoOffset + kPointerSize; |
9870 static const int kLengthOffset = kFlagOffset + kPointerSize; | 9871 static const int kLengthOffset = kFlagOffset + kPointerSize; |
9871 static const int kSize = kLengthOffset + kPointerSize; | 9872 static const int kSize = kLengthOffset + kPointerSize; |
9872 | 9873 |
9873 private: | 9874 private: |
9874 // Bit position in the flag, from least significant bit position. | 9875 // Bit position in the flag, from least significant bit position. |
9875 static const int kHiddenPrototypeBit = 0; | 9876 static const int kHiddenPrototypeBit = 0; |
9876 static const int kUndetectableBit = 1; | 9877 static const int kUndetectableBit = 1; |
9877 static const int kNeedsAccessCheckBit = 2; | 9878 static const int kNeedsAccessCheckBit = 2; |
9878 static const int kReadOnlyPrototypeBit = 3; | 9879 static const int kReadOnlyPrototypeBit = 3; |
| 9880 static const int kRemovePrototypeBit = 4; |
9879 | 9881 |
9880 DISALLOW_IMPLICIT_CONSTRUCTORS(FunctionTemplateInfo); | 9882 DISALLOW_IMPLICIT_CONSTRUCTORS(FunctionTemplateInfo); |
9881 }; | 9883 }; |
9882 | 9884 |
9883 | 9885 |
9884 class ObjectTemplateInfo: public TemplateInfo { | 9886 class ObjectTemplateInfo: public TemplateInfo { |
9885 public: | 9887 public: |
9886 DECL_ACCESSORS(constructor, Object) | 9888 DECL_ACCESSORS(constructor, Object) |
9887 DECL_ACCESSORS(internal_field_count, Object) | 9889 DECL_ACCESSORS(internal_field_count, Object) |
9888 | 9890 |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10171 } else { | 10173 } else { |
10172 value &= ~(1 << bit_position); | 10174 value &= ~(1 << bit_position); |
10173 } | 10175 } |
10174 return value; | 10176 return value; |
10175 } | 10177 } |
10176 }; | 10178 }; |
10177 | 10179 |
10178 } } // namespace v8::internal | 10180 } } // namespace v8::internal |
10179 | 10181 |
10180 #endif // V8_OBJECTS_H_ | 10182 #endif // V8_OBJECTS_H_ |
OLD | NEW |