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 "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
(...skipping 2780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2791 inline void FillWithHoles(int from, int to); | 2791 inline void FillWithHoles(int from, int to); |
2792 | 2792 |
2793 // Shrink length and insert filler objects. | 2793 // Shrink length and insert filler objects. |
2794 void Shrink(int length); | 2794 void Shrink(int length); |
2795 | 2795 |
2796 // Copy operation. | 2796 // Copy operation. |
2797 static Handle<FixedArray> CopySize(Handle<FixedArray> array, | 2797 static Handle<FixedArray> CopySize(Handle<FixedArray> array, |
2798 int new_length, | 2798 int new_length, |
2799 PretenureFlag pretenure = NOT_TENURED); | 2799 PretenureFlag pretenure = NOT_TENURED); |
2800 | 2800 |
| 2801 enum KeyFilter { ALL_KEYS, NON_SYMBOL_KEYS }; |
| 2802 |
2801 // Add the elements of a JSArray to this FixedArray. | 2803 // Add the elements of a JSArray to this FixedArray. |
2802 MUST_USE_RESULT static MaybeHandle<FixedArray> AddKeysFromArrayLike( | 2804 MUST_USE_RESULT static MaybeHandle<FixedArray> AddKeysFromArrayLike( |
2803 Handle<FixedArray> content, | 2805 Handle<FixedArray> content, Handle<JSObject> array, |
2804 Handle<JSObject> array); | 2806 KeyFilter filter = ALL_KEYS); |
2805 | 2807 |
2806 // Computes the union of keys and return the result. | 2808 // Computes the union of keys and return the result. |
2807 // Used for implementing "for (n in object) { }" | 2809 // Used for implementing "for (n in object) { }" |
2808 MUST_USE_RESULT static MaybeHandle<FixedArray> UnionOfKeys( | 2810 MUST_USE_RESULT static MaybeHandle<FixedArray> UnionOfKeys( |
2809 Handle<FixedArray> first, | 2811 Handle<FixedArray> first, |
2810 Handle<FixedArray> second); | 2812 Handle<FixedArray> second); |
2811 | 2813 |
2812 // Copy a sub array from the receiver to dest. | 2814 // Copy a sub array from the receiver to dest. |
2813 void CopyTo(int pos, FixedArray* dest, int dest_pos, int len); | 2815 void CopyTo(int pos, FixedArray* dest, int dest_pos, int len); |
2814 | 2816 |
(...skipping 7912 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10727 | 10729 |
10728 | 10730 |
10729 class InterceptorInfo: public Struct { | 10731 class InterceptorInfo: public Struct { |
10730 public: | 10732 public: |
10731 DECL_ACCESSORS(getter, Object) | 10733 DECL_ACCESSORS(getter, Object) |
10732 DECL_ACCESSORS(setter, Object) | 10734 DECL_ACCESSORS(setter, Object) |
10733 DECL_ACCESSORS(query, Object) | 10735 DECL_ACCESSORS(query, Object) |
10734 DECL_ACCESSORS(deleter, Object) | 10736 DECL_ACCESSORS(deleter, Object) |
10735 DECL_ACCESSORS(enumerator, Object) | 10737 DECL_ACCESSORS(enumerator, Object) |
10736 DECL_ACCESSORS(data, Object) | 10738 DECL_ACCESSORS(data, Object) |
| 10739 DECL_BOOLEAN_ACCESSORS(can_intercept_symbols) |
| 10740 |
| 10741 // TODO(wingo): Remove flags field once all interceptors can intercept |
| 10742 // symbols. |
| 10743 inline int flags() const; |
| 10744 inline void set_flags(int flags); |
10737 | 10745 |
10738 DECLARE_CAST(InterceptorInfo) | 10746 DECLARE_CAST(InterceptorInfo) |
10739 | 10747 |
10740 // Dispatched behavior. | 10748 // Dispatched behavior. |
10741 DECLARE_PRINTER(InterceptorInfo) | 10749 DECLARE_PRINTER(InterceptorInfo) |
10742 DECLARE_VERIFIER(InterceptorInfo) | 10750 DECLARE_VERIFIER(InterceptorInfo) |
10743 | 10751 |
10744 static const int kGetterOffset = HeapObject::kHeaderSize; | 10752 static const int kGetterOffset = HeapObject::kHeaderSize; |
10745 static const int kSetterOffset = kGetterOffset + kPointerSize; | 10753 static const int kSetterOffset = kGetterOffset + kPointerSize; |
10746 static const int kQueryOffset = kSetterOffset + kPointerSize; | 10754 static const int kQueryOffset = kSetterOffset + kPointerSize; |
10747 static const int kDeleterOffset = kQueryOffset + kPointerSize; | 10755 static const int kDeleterOffset = kQueryOffset + kPointerSize; |
10748 static const int kEnumeratorOffset = kDeleterOffset + kPointerSize; | 10756 static const int kEnumeratorOffset = kDeleterOffset + kPointerSize; |
10749 static const int kDataOffset = kEnumeratorOffset + kPointerSize; | 10757 static const int kDataOffset = kEnumeratorOffset + kPointerSize; |
10750 static const int kSize = kDataOffset + kPointerSize; | 10758 static const int kFlagsOffset = kDataOffset + kPointerSize; |
| 10759 static const int kSize = kFlagsOffset + kPointerSize; |
| 10760 |
| 10761 static const int kCanInterceptSymbolsBit = 0; |
10751 | 10762 |
10752 private: | 10763 private: |
10753 DISALLOW_IMPLICIT_CONSTRUCTORS(InterceptorInfo); | 10764 DISALLOW_IMPLICIT_CONSTRUCTORS(InterceptorInfo); |
10754 }; | 10765 }; |
10755 | 10766 |
10756 | 10767 |
10757 class CallHandlerInfo: public Struct { | 10768 class CallHandlerInfo: public Struct { |
10758 public: | 10769 public: |
10759 DECL_ACCESSORS(callback, Object) | 10770 DECL_ACCESSORS(callback, Object) |
10760 DECL_ACCESSORS(data, Object) | 10771 DECL_ACCESSORS(data, Object) |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11155 } else { | 11166 } else { |
11156 value &= ~(1 << bit_position); | 11167 value &= ~(1 << bit_position); |
11157 } | 11168 } |
11158 return value; | 11169 return value; |
11159 } | 11170 } |
11160 }; | 11171 }; |
11161 | 11172 |
11162 } } // namespace v8::internal | 11173 } } // namespace v8::internal |
11163 | 11174 |
11164 #endif // V8_OBJECTS_H_ | 11175 #endif // V8_OBJECTS_H_ |
OLD | NEW |