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

Side by Side Diff: src/objects.h

Issue 1815663002: Speed up PrototypeHasNoElements and drop the "fast" path before, it's now slower. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 9 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
« no previous file with comments | « src/builtins.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/assert-scope.h" 10 #include "src/assert-scope.h"
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 702
703 // All the following types are subtypes of JSReceiver, which corresponds to 703 // All the following types are subtypes of JSReceiver, which corresponds to
704 // objects in the JS sense. The first and the last type in this range are 704 // objects in the JS sense. The first and the last type in this range are
705 // the two forms of function. This organization enables using the same 705 // the two forms of function. This organization enables using the same
706 // compares for checking the JS_RECEIVER and the NONCALLABLE_JS_OBJECT range. 706 // compares for checking the JS_RECEIVER and the NONCALLABLE_JS_OBJECT range.
707 JS_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE 707 JS_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE
708 JS_GLOBAL_OBJECT_TYPE, // FIRST_JS_OBJECT_TYPE 708 JS_GLOBAL_OBJECT_TYPE, // FIRST_JS_OBJECT_TYPE
709 JS_GLOBAL_PROXY_TYPE, 709 JS_GLOBAL_PROXY_TYPE,
710 // Like JS_OBJECT_TYPE, but requires access checks and/or has interceptors. 710 // Like JS_OBJECT_TYPE, but requires access checks and/or has interceptors.
711 JS_SPECIAL_API_OBJECT_TYPE, // LAST_SPECIAL_RECEIVER_TYPE 711 JS_SPECIAL_API_OBJECT_TYPE, // LAST_SPECIAL_RECEIVER_TYPE
712 JS_VALUE_TYPE, 712 JS_VALUE_TYPE, // LAST_CUSTOM_ELEMENTS_RECEIVER
713 JS_MESSAGE_OBJECT_TYPE, 713 JS_MESSAGE_OBJECT_TYPE,
714 JS_DATE_TYPE, 714 JS_DATE_TYPE,
715 JS_OBJECT_TYPE, 715 JS_OBJECT_TYPE,
716 JS_CONTEXT_EXTENSION_OBJECT_TYPE, 716 JS_CONTEXT_EXTENSION_OBJECT_TYPE,
717 JS_GENERATOR_OBJECT_TYPE, 717 JS_GENERATOR_OBJECT_TYPE,
718 JS_MODULE_TYPE, 718 JS_MODULE_TYPE,
719 JS_ARRAY_TYPE, 719 JS_ARRAY_TYPE,
720 JS_ARRAY_BUFFER_TYPE, 720 JS_ARRAY_BUFFER_TYPE,
721 JS_TYPED_ARRAY_TYPE, 721 JS_TYPED_ARRAY_TYPE,
722 JS_DATA_VIEW_TYPE, 722 JS_DATA_VIEW_TYPE,
(...skipping 30 matching lines...) Expand all
753 // are not continuous in this enum! The enum ranges instead reflect the 753 // are not continuous in this enum! The enum ranges instead reflect the
754 // external class names, where proxies are treated as either ordinary objects, 754 // external class names, where proxies are treated as either ordinary objects,
755 // or functions. 755 // or functions.
756 FIRST_JS_RECEIVER_TYPE = JS_PROXY_TYPE, 756 FIRST_JS_RECEIVER_TYPE = JS_PROXY_TYPE,
757 LAST_JS_RECEIVER_TYPE = LAST_TYPE, 757 LAST_JS_RECEIVER_TYPE = LAST_TYPE,
758 // Boundaries for testing the types represented as JSObject 758 // Boundaries for testing the types represented as JSObject
759 FIRST_JS_OBJECT_TYPE = JS_GLOBAL_OBJECT_TYPE, 759 FIRST_JS_OBJECT_TYPE = JS_GLOBAL_OBJECT_TYPE,
760 LAST_JS_OBJECT_TYPE = LAST_TYPE, 760 LAST_JS_OBJECT_TYPE = LAST_TYPE,
761 // Boundary for testing JSReceivers that need special property lookup handling 761 // Boundary for testing JSReceivers that need special property lookup handling
762 LAST_SPECIAL_RECEIVER_TYPE = JS_SPECIAL_API_OBJECT_TYPE, 762 LAST_SPECIAL_RECEIVER_TYPE = JS_SPECIAL_API_OBJECT_TYPE,
763 // Boundary case for testing JSReceivers that may have elements while having
764 // an empty fixed array as elements backing store. This is true for string
765 // wrappers.
766 LAST_CUSTOM_ELEMENTS_RECEIVER = JS_VALUE_TYPE,
763 }; 767 };
764 768
765 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); 769 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType);
766 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); 770 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType);
767 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); 771 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType);
768 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); 772 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType);
769 773
770 774
771 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); 775 std::ostream& operator<<(std::ostream& os, InstanceType instance_type);
772 776
(...skipping 10119 matching lines...) Expand 10 before | Expand all | Expand 10 after
10892 } 10896 }
10893 return value; 10897 return value;
10894 } 10898 }
10895 }; 10899 };
10896 10900
10897 10901
10898 } // NOLINT, false-positive due to second-order macros. 10902 } // NOLINT, false-positive due to second-order macros.
10899 } // NOLINT, false-positive due to second-order macros. 10903 } // NOLINT, false-positive due to second-order macros.
10900 10904
10901 #endif // V8_OBJECTS_H_ 10905 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/builtins.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698