Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index ab6cc05cbab8ac74e279e77ab148cfe7325a5ab7..cd45a8a7bbb7f61ce2e897764e713fa2fcb54c34 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -419,6 +419,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; |
V(JS_MODULE_TYPE) \ |
V(JS_GLOBAL_OBJECT_TYPE) \ |
V(JS_GLOBAL_PROXY_TYPE) \ |
+ V(JS_SPECIAL_API_OBJECT_TYPE) \ |
V(JS_ARRAY_TYPE) \ |
V(JS_ARRAY_BUFFER_TYPE) \ |
V(JS_TYPED_ARRAY_TYPE) \ |
@@ -438,7 +439,6 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; |
V(DEBUG_INFO_TYPE) \ |
V(BREAK_POINT_INFO_TYPE) |
- |
// Since string types are not consecutive, this macro is used to |
// iterate over them. |
#define STRING_TYPE_LIST(V) \ |
@@ -591,7 +591,6 @@ static inline bool IsShortcutCandidate(int type) { |
return ((type & kShortcutTypeMask) == kShortcutTypeTag); |
} |
- |
enum InstanceType { |
// String types. |
INTERNALIZED_STRING_TYPE = kTwoByteStringTag | kSeqStringTag | |
@@ -703,16 +702,18 @@ enum InstanceType { |
// objects in the JS sense. The first and the last type in this range are |
// the two forms of function. This organization enables using the same |
// compares for checking the JS_RECEIVER and the NONCALLABLE_JS_OBJECT range. |
- JS_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE |
- JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE |
+ JS_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE |
+ JS_GLOBAL_OBJECT_TYPE, // FIRST_JS_OBJECT_TYPE |
+ JS_GLOBAL_PROXY_TYPE, |
+ // Like JS_OBJECT_TYPE, but requires access checks and/or has interceptors. |
+ JS_SPECIAL_API_OBJECT_TYPE, // LAST_SPECIAL_RECEIVER_TYPE |
+ JS_VALUE_TYPE, |
JS_MESSAGE_OBJECT_TYPE, |
JS_DATE_TYPE, |
JS_OBJECT_TYPE, |
JS_CONTEXT_EXTENSION_OBJECT_TYPE, |
JS_GENERATOR_OBJECT_TYPE, |
JS_MODULE_TYPE, |
- JS_GLOBAL_OBJECT_TYPE, |
- JS_GLOBAL_PROXY_TYPE, |
JS_ARRAY_TYPE, |
JS_ARRAY_BUFFER_TYPE, |
JS_TYPED_ARRAY_TYPE, |
@@ -753,8 +754,10 @@ enum InstanceType { |
FIRST_JS_RECEIVER_TYPE = JS_PROXY_TYPE, |
LAST_JS_RECEIVER_TYPE = LAST_TYPE, |
// Boundaries for testing the types represented as JSObject |
- FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, |
+ FIRST_JS_OBJECT_TYPE = JS_GLOBAL_OBJECT_TYPE, |
LAST_JS_OBJECT_TYPE = LAST_TYPE, |
+ // Boundary for testing JSReceivers that need special property lookup handling |
+ LAST_SPECIAL_RECEIVER_TYPE = JS_SPECIAL_API_OBJECT_TYPE, |
}; |
STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); |