| 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 692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 703 SHARED_FUNCTION_INFO_TYPE, | 703 SHARED_FUNCTION_INFO_TYPE, |
| 704 CELL_TYPE, | 704 CELL_TYPE, |
| 705 WEAK_CELL_TYPE, | 705 WEAK_CELL_TYPE, |
| 706 PROPERTY_CELL_TYPE, | 706 PROPERTY_CELL_TYPE, |
| 707 PROTOTYPE_INFO_TYPE, | 707 PROTOTYPE_INFO_TYPE, |
| 708 SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE, | 708 SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE, |
| 709 | 709 |
| 710 // All the following types are subtypes of JSReceiver, which corresponds to | 710 // All the following types are subtypes of JSReceiver, which corresponds to |
| 711 // objects in the JS sense. The first and the last type in this range are | 711 // objects in the JS sense. The first and the last type in this range are |
| 712 // the two forms of function. This organization enables using the same | 712 // the two forms of function. This organization enables using the same |
| 713 // compares for checking the JS_RECEIVER/SPEC_OBJECT range and the | 713 // compares for checking the JS_RECEIVER and the NONCALLABLE_JS_OBJECT range. |
| 714 // NONCALLABLE_JS_OBJECT range. | |
| 715 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE | 714 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE |
| 716 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE | 715 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE |
| 717 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE | 716 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE |
| 718 JS_MESSAGE_OBJECT_TYPE, | 717 JS_MESSAGE_OBJECT_TYPE, |
| 719 JS_DATE_TYPE, | 718 JS_DATE_TYPE, |
| 720 JS_OBJECT_TYPE, | 719 JS_OBJECT_TYPE, |
| 721 JS_CONTEXT_EXTENSION_OBJECT_TYPE, | 720 JS_CONTEXT_EXTENSION_OBJECT_TYPE, |
| 722 JS_GENERATOR_OBJECT_TYPE, | 721 JS_GENERATOR_OBJECT_TYPE, |
| 723 JS_MODULE_TYPE, | 722 JS_MODULE_TYPE, |
| 724 JS_GLOBAL_OBJECT_TYPE, | 723 JS_GLOBAL_OBJECT_TYPE, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 759 // external class names, where proxies are treated as either ordinary objects, | 758 // external class names, where proxies are treated as either ordinary objects, |
| 760 // or functions. | 759 // or functions. |
| 761 FIRST_JS_RECEIVER_TYPE = JS_FUNCTION_PROXY_TYPE, | 760 FIRST_JS_RECEIVER_TYPE = JS_FUNCTION_PROXY_TYPE, |
| 762 LAST_JS_RECEIVER_TYPE = LAST_TYPE, | 761 LAST_JS_RECEIVER_TYPE = LAST_TYPE, |
| 763 // Boundaries for testing the types represented as JSObject | 762 // Boundaries for testing the types represented as JSObject |
| 764 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, | 763 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, |
| 765 LAST_JS_OBJECT_TYPE = LAST_TYPE, | 764 LAST_JS_OBJECT_TYPE = LAST_TYPE, |
| 766 // Boundaries for testing the types represented as JSProxy | 765 // Boundaries for testing the types represented as JSProxy |
| 767 FIRST_JS_PROXY_TYPE = JS_FUNCTION_PROXY_TYPE, | 766 FIRST_JS_PROXY_TYPE = JS_FUNCTION_PROXY_TYPE, |
| 768 LAST_JS_PROXY_TYPE = JS_PROXY_TYPE, | 767 LAST_JS_PROXY_TYPE = JS_PROXY_TYPE, |
| 769 // Boundaries for testing whether the type is a JavaScript object. | 768 // |
| 770 FIRST_SPEC_OBJECT_TYPE = FIRST_JS_RECEIVER_TYPE, | |
| 771 LAST_SPEC_OBJECT_TYPE = LAST_JS_RECEIVER_TYPE, | |
| 772 // Boundaries for testing the types for which typeof is "object". | |
| 773 FIRST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_PROXY_TYPE, | 769 FIRST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_PROXY_TYPE, |
| 774 LAST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_REGEXP_TYPE, | 770 LAST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_REGEXP_TYPE, |
| 775 // Note that the types for which typeof is "function" are not continuous. | 771 // Note that the types for which typeof is "function" are not continuous. |
| 776 // Define this so that we can put assertions on discrete checks. | 772 // Define this so that we can put assertions on discrete checks. |
| 777 NUM_OF_CALLABLE_SPEC_OBJECT_TYPES = 2 | 773 NUM_OF_CALLABLE_SPEC_OBJECT_TYPES = 2 |
| 778 }; | 774 }; |
| 779 | 775 |
| 780 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); | 776 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); |
| 781 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); | 777 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); |
| 782 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); | 778 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); |
| (...skipping 9950 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10733 } | 10729 } |
| 10734 return value; | 10730 return value; |
| 10735 } | 10731 } |
| 10736 }; | 10732 }; |
| 10737 | 10733 |
| 10738 | 10734 |
| 10739 } // NOLINT, false-positive due to second-order macros. | 10735 } // NOLINT, false-positive due to second-order macros. |
| 10740 } // NOLINT, false-positive due to second-order macros. | 10736 } // NOLINT, false-positive due to second-order macros. |
| 10741 | 10737 |
| 10742 #endif // V8_OBJECTS_H_ | 10738 #endif // V8_OBJECTS_H_ |
| OLD | NEW |