Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/objects.h

Issue 240113010: Tighten OpenHandle's extra checks. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/api.h ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 754 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 // is defined. However as include/v8.h contain some of the instance type 765 // is defined. However as include/v8.h contain some of the instance type
766 // constants always having them avoids them getting different numbers 766 // constants always having them avoids them getting different numbers
767 // depending on whether ENABLE_DEBUGGER_SUPPORT is defined or not. 767 // depending on whether ENABLE_DEBUGGER_SUPPORT is defined or not.
768 DEBUG_INFO_TYPE, 768 DEBUG_INFO_TYPE,
769 BREAK_POINT_INFO_TYPE, 769 BREAK_POINT_INFO_TYPE,
770 770
771 FIXED_ARRAY_TYPE, 771 FIXED_ARRAY_TYPE,
772 CONSTANT_POOL_ARRAY_TYPE, 772 CONSTANT_POOL_ARRAY_TYPE,
773 SHARED_FUNCTION_INFO_TYPE, 773 SHARED_FUNCTION_INFO_TYPE,
774 774
775 JS_MESSAGE_OBJECT_TYPE,
776
777 // All the following types are subtypes of JSReceiver, which corresponds to 775 // All the following types are subtypes of JSReceiver, which corresponds to
778 // objects in the JS sense. The first and the last type in this range are 776 // objects in the JS sense. The first and the last type in this range are
779 // the two forms of function. This organization enables using the same 777 // the two forms of function. This organization enables using the same
780 // compares for checking the JS_RECEIVER/SPEC_OBJECT range and the 778 // compares for checking the JS_RECEIVER/SPEC_OBJECT range and the
781 // NONCALLABLE_JS_OBJECT range. 779 // NONCALLABLE_JS_OBJECT range.
782 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE 780 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE
783 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE 781 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE
784 782
785 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE 783 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE
784 JS_MESSAGE_OBJECT_TYPE,
786 JS_DATE_TYPE, 785 JS_DATE_TYPE,
787 JS_OBJECT_TYPE, 786 JS_OBJECT_TYPE,
788 JS_CONTEXT_EXTENSION_OBJECT_TYPE, 787 JS_CONTEXT_EXTENSION_OBJECT_TYPE,
789 JS_GENERATOR_OBJECT_TYPE, 788 JS_GENERATOR_OBJECT_TYPE,
790 JS_MODULE_TYPE, 789 JS_MODULE_TYPE,
791 JS_GLOBAL_OBJECT_TYPE, 790 JS_GLOBAL_OBJECT_TYPE,
792 JS_BUILTINS_OBJECT_TYPE, 791 JS_BUILTINS_OBJECT_TYPE,
793 JS_GLOBAL_PROXY_TYPE, 792 JS_GLOBAL_PROXY_TYPE,
794 JS_ARRAY_TYPE, 793 JS_ARRAY_TYPE,
795 JS_ARRAY_BUFFER_TYPE, 794 JS_ARRAY_BUFFER_TYPE,
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
1437 inline bool IsExternal(); 1436 inline bool IsExternal();
1438 inline bool IsAccessorInfo(); 1437 inline bool IsAccessorInfo();
1439 1438
1440 inline bool IsStruct(); 1439 inline bool IsStruct();
1441 #define DECLARE_STRUCT_PREDICATE(NAME, Name, name) inline bool Is##Name(); 1440 #define DECLARE_STRUCT_PREDICATE(NAME, Name, name) inline bool Is##Name();
1442 STRUCT_LIST(DECLARE_STRUCT_PREDICATE) 1441 STRUCT_LIST(DECLARE_STRUCT_PREDICATE)
1443 #undef DECLARE_STRUCT_PREDICATE 1442 #undef DECLARE_STRUCT_PREDICATE
1444 1443
1445 INLINE(bool IsSpecObject()); 1444 INLINE(bool IsSpecObject());
1446 INLINE(bool IsSpecFunction()); 1445 INLINE(bool IsSpecFunction());
1446 INLINE(bool IsTemplateInfo());
1447 bool IsCallable(); 1447 bool IsCallable();
1448 1448
1449 // Oddball testing. 1449 // Oddball testing.
1450 INLINE(bool IsUndefined()); 1450 INLINE(bool IsUndefined());
1451 INLINE(bool IsNull()); 1451 INLINE(bool IsNull());
1452 INLINE(bool IsTheHole()); 1452 INLINE(bool IsTheHole());
1453 INLINE(bool IsException()); 1453 INLINE(bool IsException());
1454 INLINE(bool IsUninitialized()); 1454 INLINE(bool IsUninitialized());
1455 INLINE(bool IsTrue()); 1455 INLINE(bool IsTrue());
1456 INLINE(bool IsFalse()); 1456 INLINE(bool IsFalse());
(...skipping 1070 matching lines...) Expand 10 before | Expand all | Expand 10 after
2527 int capacity, 2527 int capacity,
2528 int length); 2528 int length);
2529 2529
2530 // Lookup interceptors are used for handling properties controlled by host 2530 // Lookup interceptors are used for handling properties controlled by host
2531 // objects. 2531 // objects.
2532 inline bool HasNamedInterceptor(); 2532 inline bool HasNamedInterceptor();
2533 inline bool HasIndexedInterceptor(); 2533 inline bool HasIndexedInterceptor();
2534 2534
2535 // Computes the enumerable keys from interceptors. Used for debug mirrors and 2535 // Computes the enumerable keys from interceptors. Used for debug mirrors and
2536 // by JSReceiver::GetKeys. 2536 // by JSReceiver::GetKeys.
2537 MUST_USE_RESULT static MaybeHandle<JSArray> GetKeysForNamedInterceptor( 2537 MUST_USE_RESULT static MaybeHandle<JSObject> GetKeysForNamedInterceptor(
2538 Handle<JSObject> object, 2538 Handle<JSObject> object,
2539 Handle<JSReceiver> receiver); 2539 Handle<JSReceiver> receiver);
2540 MUST_USE_RESULT static MaybeHandle<JSArray> GetKeysForIndexedInterceptor( 2540 MUST_USE_RESULT static MaybeHandle<JSObject> GetKeysForIndexedInterceptor(
2541 Handle<JSObject> object, 2541 Handle<JSObject> object,
2542 Handle<JSReceiver> receiver); 2542 Handle<JSReceiver> receiver);
2543 2543
2544 // Support functions for v8 api (needed for correct interceptor behavior). 2544 // Support functions for v8 api (needed for correct interceptor behavior).
2545 static bool HasRealNamedProperty(Handle<JSObject> object, 2545 static bool HasRealNamedProperty(Handle<JSObject> object,
2546 Handle<Name> key); 2546 Handle<Name> key);
2547 static bool HasRealElementProperty(Handle<JSObject> object, uint32_t index); 2547 static bool HasRealElementProperty(Handle<JSObject> object, uint32_t index);
2548 static bool HasRealNamedCallbackProperty(Handle<JSObject> object, 2548 static bool HasRealNamedCallbackProperty(Handle<JSObject> object,
2549 Handle<Name> key); 2549 Handle<Name> key);
2550 2550
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
3081 3081
3082 // Copy operations. 3082 // Copy operations.
3083 MUST_USE_RESULT inline MaybeObject* Copy(); 3083 MUST_USE_RESULT inline MaybeObject* Copy();
3084 MUST_USE_RESULT MaybeObject* CopySize(int new_length, 3084 MUST_USE_RESULT MaybeObject* CopySize(int new_length,
3085 PretenureFlag pretenure = NOT_TENURED); 3085 PretenureFlag pretenure = NOT_TENURED);
3086 static Handle<FixedArray> CopySize(Handle<FixedArray> array, 3086 static Handle<FixedArray> CopySize(Handle<FixedArray> array,
3087 int new_length, 3087 int new_length,
3088 PretenureFlag pretenure = NOT_TENURED); 3088 PretenureFlag pretenure = NOT_TENURED);
3089 3089
3090 // Add the elements of a JSArray to this FixedArray. 3090 // Add the elements of a JSArray to this FixedArray.
3091 MUST_USE_RESULT static MaybeHandle<FixedArray> AddKeysFromJSArray( 3091 MUST_USE_RESULT static MaybeHandle<FixedArray> AddKeysFromArrayLike(
3092 Handle<FixedArray> content, 3092 Handle<FixedArray> content,
3093 Handle<JSArray> array); 3093 Handle<JSObject> array);
3094 3094
3095 // Computes the union of keys and return the result. 3095 // Computes the union of keys and return the result.
3096 // Used for implementing "for (n in object) { }" 3096 // Used for implementing "for (n in object) { }"
3097 MUST_USE_RESULT static MaybeHandle<FixedArray> UnionOfKeys( 3097 MUST_USE_RESULT static MaybeHandle<FixedArray> UnionOfKeys(
3098 Handle<FixedArray> first, 3098 Handle<FixedArray> first,
3099 Handle<FixedArray> second); 3099 Handle<FixedArray> second);
3100 3100
3101 // Copy a sub array from the receiver to dest. 3101 // Copy a sub array from the receiver to dest.
3102 void CopyTo(int pos, FixedArray* dest, int dest_pos, int len); 3102 void CopyTo(int pos, FixedArray* dest, int dest_pos, int len);
3103 3103
(...skipping 8179 matching lines...) Expand 10 before | Expand all | Expand 10 after
11283 } else { 11283 } else {
11284 value &= ~(1 << bit_position); 11284 value &= ~(1 << bit_position);
11285 } 11285 }
11286 return value; 11286 return value;
11287 } 11287 }
11288 }; 11288 };
11289 11289
11290 } } // namespace v8::internal 11290 } } // namespace v8::internal
11291 11291
11292 #endif // V8_OBJECTS_H_ 11292 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/api.h ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698