5 #ifndef V8_PROTOTYPE_H_ 6 #define V8_PROTOTYPE_H_ 8 #include "src/isolate.h" 9 #include "src/objects.h" 28 enum WhereToEnd { END_AT_NULL, END_AT_NON_HIDDEN };
31 WhereToStart where_to_start = kStartAtPrototype,
32 WhereToEnd where_to_end = END_AT_NULL);
35 WhereToStart where_to_start = kStartAtPrototype,
36 WhereToEnd where_to_end = END_AT_NULL);
39 WhereToEnd where_to_end = END_AT_NULL);
42 WhereToEnd where_to_end = END_AT_NULL);
46 inline bool HasAccess()
const;
48 template <
typename T = Object>
49 T* GetCurrent()
const {
50 DCHECK(handle_.is_null());
51 return T::cast(object_);
54 template <
typename T = Object>
56 DCHECK(!iterator.handle_.is_null());
57 DCHECK_NULL(iterator.object_);
61 inline void Advance();
63 inline void AdvanceIgnoringProxies();
66 V8_WARN_UNUSED_RESULT
inline bool AdvanceFollowingProxies();
68 V8_WARN_UNUSED_RESULT
inline bool 69 AdvanceFollowingProxiesIgnoringAccessChecks();
71 bool IsAtEnd()
const {
return is_at_end_; }
72 Isolate* isolate()
const {
return isolate_; }
78 WhereToEnd where_to_end_;
90 #endif // V8_PROTOTYPE_H_