5#ifndef V8_EXECUTION_PROTECTORS_H_
6#define V8_EXECUTION_PROTECTORS_H_
18#define DECLARED_PROTECTORS_ON_ISOLATE(V) \
19 V(ArrayBufferDetaching, ArrayBufferDetachingProtector, \
20 array_buffer_detaching_protector) \
21 V(ArrayConstructor, ArrayConstructorProtector, array_constructor_protector) \
22 V(ArrayIteratorLookupChain, ArrayIteratorProtector, \
23 array_iterator_protector) \
24 V(ArraySpeciesLookupChain, ArraySpeciesProtector, array_species_protector) \
25 V(IsConcatSpreadableLookupChain, IsConcatSpreadableProtector, \
26 is_concat_spreadable_protector) \
27 V(NoElements, NoElementsProtector, no_elements_protector) \
29 V(MegaDOM, MegaDOMProtector, mega_dom_protector) \
30 V(NoProfiling, NoProfilingProtector, no_profiling_protector) \
31 V(NoUndetectableObjects, NoUndetectableObjectsProtector, \
32 no_undetectable_objects_protector) \
45 V(MapIteratorLookupChain, MapIteratorProtector, map_iterator_protector) \
55 V(NumberStringNotRegexpLike, NumberStringNotRegexpLikeProtector, \
56 number_string_not_regexp_like_protector) \
57 V(RegExpSpeciesLookupChain, RegExpSpeciesProtector, \
58 regexp_species_protector) \
59 V(PromiseHook, PromiseHookProtector, promise_hook_protector) \
60 V(PromiseThenLookupChain, PromiseThenProtector, promise_then_protector) \
61 V(PromiseResolveLookupChain, PromiseResolveProtector, \
62 promise_resolve_protector) \
63 V(PromiseSpeciesLookupChain, PromiseSpeciesProtector, \
64 promise_species_protector) \
80 V(SetIteratorLookupChain, SetIteratorProtector, set_iterator_protector) \
93 V(StringIteratorLookupChain, StringIteratorProtector, \
94 string_iterator_protector) \
95 V(StringLengthOverflowLookupChain, StringLengthProtector, \
96 string_length_protector) \
99 V(StringWrapperToPrimitive, StringWrapperToPrimitiveProtector, \
100 string_wrapper_to_primitive_protector) \
101 V(TypedArrayLengthLookupChain, TypedArrayLengthProtector, \
102 typed_array_length_protector) \
103 V(TypedArraySpeciesLookupChain, TypedArraySpeciesProtector, \
104 typed_array_species_protector)
106#define DECLARE_PROTECTOR_ON_ISOLATE(name, unused_root_index, unused_cell) \
107 V8_EXPORT_PRIVATE static inline bool Is##name##Intact(Isolate* isolate); \
108 V8_EXPORT_PRIVATE static void Invalidate##name(Isolate* isolate);
110#undef DECLARE_PROTECTOR_ON_ISOLATE
static const int kProtectorValid
static const int kProtectorInvalid
#define DECLARE_PROTECTOR_ON_ISOLATE(name, unused_root_index, unused_cell)
#define DECLARED_PROTECTORS_ON_ISOLATE(V)