21void TraceProtectorInvalidation(
const char* protector_name) {
23 static constexpr char kInvalidateProtectorTracingCategory[] =
24 "V8.InvalidateProtector";
25 static constexpr char kInvalidateProtectorTracingArg[] =
"protector-name";
30 i::PrintF(
"Invalidating protector cell %s\n", protector_name);
41 static_assert(IsDefined(v8::Isolate::kInvalidated##Name##Protector));
48#define INVALIDATE_PROTECTOR_ON_ISOLATE_DEFINITION(name, unused_index, cell) \
49 void Protectors::Invalidate##name(Isolate* isolate) { \
50 DCHECK(IsSmi(isolate->factory()->cell()->value())); \
51 DCHECK(Is##name##Intact(isolate)); \
52 if (v8_flags.trace_protector_invalidation) { \
53 TraceProtectorInvalidation(#name); \
55 isolate->CountUsage(v8::Isolate::kInvalidated##name##Protector); \
56 isolate->factory()->cell()->InvalidateProtector(); \
57 DCHECK(!Is##name##Intact(isolate)); \
60#undef INVALIDATE_PROTECTOR_ON_ISOLATE_DEFINITION
void PrintF(const char *format,...)
V8_EXPORT_PRIVATE FlagValues v8_flags
#define INVALIDATE_PROTECTOR_ON_ISOLATE_DEFINITION(name, unused_index, cell)
#define DECLARED_PROTECTORS_ON_ISOLATE(V)
#define DCHECK(condition)
#define TRACE_EVENT_INSTANT1(category_group, name, scope, arg1_name, arg1_val)
#define TRACE_EVENT_SCOPE_THREAD