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 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 JS_WEAK_MAP_TYPE, | 659 JS_WEAK_MAP_TYPE, |
660 | 660 |
661 JS_REGEXP_TYPE, | 661 JS_REGEXP_TYPE, |
662 | 662 |
663 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE | 663 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE |
664 | 664 |
665 // Pseudo-types | 665 // Pseudo-types |
666 FIRST_TYPE = 0x0, | 666 FIRST_TYPE = 0x0, |
667 LAST_TYPE = JS_FUNCTION_TYPE, | 667 LAST_TYPE = JS_FUNCTION_TYPE, |
668 INVALID_TYPE = FIRST_TYPE - 1, | 668 INVALID_TYPE = FIRST_TYPE - 1, |
| 669 FIRST_NAME_TYPE = FIRST_TYPE, |
669 LAST_NAME_TYPE = SYMBOL_TYPE, | 670 LAST_NAME_TYPE = SYMBOL_TYPE, |
| 671 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, |
| 672 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, |
670 FIRST_NONSTRING_TYPE = SYMBOL_TYPE, | 673 FIRST_NONSTRING_TYPE = SYMBOL_TYPE, |
671 // Boundaries for testing for an external array. | 674 // Boundaries for testing for an external array. |
672 FIRST_EXTERNAL_ARRAY_TYPE = EXTERNAL_BYTE_ARRAY_TYPE, | 675 FIRST_EXTERNAL_ARRAY_TYPE = EXTERNAL_BYTE_ARRAY_TYPE, |
673 LAST_EXTERNAL_ARRAY_TYPE = EXTERNAL_PIXEL_ARRAY_TYPE, | 676 LAST_EXTERNAL_ARRAY_TYPE = EXTERNAL_PIXEL_ARRAY_TYPE, |
674 // Boundary for promotion to old data space/old pointer space. | 677 // Boundary for promotion to old data space/old pointer space. |
675 LAST_DATA_TYPE = FILLER_TYPE, | 678 LAST_DATA_TYPE = FILLER_TYPE, |
676 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). | 679 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). |
677 // Note that there is no range for JSObject or JSProxy, since their subtypes | 680 // Note that there is no range for JSObject or JSProxy, since their subtypes |
678 // are not continuous in this enum! The enum ranges instead reflect the | 681 // are not continuous in this enum! The enum ranges instead reflect the |
679 // external class names, where proxies are treated as either ordinary objects, | 682 // external class names, where proxies are treated as either ordinary objects, |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 | 840 |
838 | 841 |
839 #define OBJECT_TYPE_LIST(V) \ | 842 #define OBJECT_TYPE_LIST(V) \ |
840 V(Smi) \ | 843 V(Smi) \ |
841 V(HeapObject) \ | 844 V(HeapObject) \ |
842 V(Number) \ | 845 V(Number) \ |
843 | 846 |
844 #define HEAP_OBJECT_TYPE_LIST(V) \ | 847 #define HEAP_OBJECT_TYPE_LIST(V) \ |
845 V(HeapNumber) \ | 848 V(HeapNumber) \ |
846 V(Name) \ | 849 V(Name) \ |
| 850 V(UniqueName) \ |
847 V(String) \ | 851 V(String) \ |
848 V(SeqString) \ | 852 V(SeqString) \ |
849 V(ExternalString) \ | 853 V(ExternalString) \ |
850 V(ConsString) \ | 854 V(ConsString) \ |
851 V(SlicedString) \ | 855 V(SlicedString) \ |
852 V(ExternalTwoByteString) \ | 856 V(ExternalTwoByteString) \ |
853 V(ExternalAsciiString) \ | 857 V(ExternalAsciiString) \ |
854 V(SeqTwoByteString) \ | 858 V(SeqTwoByteString) \ |
855 V(SeqOneByteString) \ | 859 V(SeqOneByteString) \ |
856 V(InternalizedString) \ | 860 V(InternalizedString) \ |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1017 static Handle<Object> GetElement(Handle<Object> object, uint32_t index); | 1021 static Handle<Object> GetElement(Handle<Object> object, uint32_t index); |
1018 MUST_USE_RESULT inline MaybeObject* GetElement(uint32_t index); | 1022 MUST_USE_RESULT inline MaybeObject* GetElement(uint32_t index); |
1019 // For use when we know that no exception can be thrown. | 1023 // For use when we know that no exception can be thrown. |
1020 inline Object* GetElementNoExceptionThrown(uint32_t index); | 1024 inline Object* GetElementNoExceptionThrown(uint32_t index); |
1021 MUST_USE_RESULT MaybeObject* GetElementWithReceiver(Object* receiver, | 1025 MUST_USE_RESULT MaybeObject* GetElementWithReceiver(Object* receiver, |
1022 uint32_t index); | 1026 uint32_t index); |
1023 | 1027 |
1024 // Return the object's prototype (might be Heap::null_value()). | 1028 // Return the object's prototype (might be Heap::null_value()). |
1025 Object* GetPrototype(); | 1029 Object* GetPrototype(); |
1026 | 1030 |
| 1031 // Return the prototype, or the method holder for a value-like object. |
| 1032 Object* GetDelegate(); |
| 1033 |
1027 // Returns the permanent hash code associated with this object depending on | 1034 // Returns the permanent hash code associated with this object depending on |
1028 // the actual object type. Might return a failure in case no hash was | 1035 // the actual object type. Might return a failure in case no hash was |
1029 // created yet or GC was caused by creation. | 1036 // created yet or GC was caused by creation. |
1030 MUST_USE_RESULT MaybeObject* GetHash(CreationFlag flag); | 1037 MUST_USE_RESULT MaybeObject* GetHash(CreationFlag flag); |
1031 | 1038 |
1032 // Checks whether this object has the same value as the given one. This | 1039 // Checks whether this object has the same value as the given one. This |
1033 // function is implemented according to ES5, section 9.12 and can be used | 1040 // function is implemented according to ES5, section 9.12 and can be used |
1034 // to implement the Harmony "egal" function. | 1041 // to implement the Harmony "egal" function. |
1035 bool SameValue(Object* other); | 1042 bool SameValue(Object* other); |
1036 | 1043 |
(...skipping 7901 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8938 } else { | 8945 } else { |
8939 value &= ~(1 << bit_position); | 8946 value &= ~(1 << bit_position); |
8940 } | 8947 } |
8941 return value; | 8948 return value; |
8942 } | 8949 } |
8943 }; | 8950 }; |
8944 | 8951 |
8945 } } // namespace v8::internal | 8952 } } // namespace v8::internal |
8946 | 8953 |
8947 #endif // V8_OBJECTS_H_ | 8954 #endif // V8_OBJECTS_H_ |
OLD | NEW |