static CustomElementLifecycleCallbacks::CallbackType flagSet(v8::MaybeLocal<v8::Function> attached, v8::MaybeLocal<v8::Function> detached, v8::MaybeLocal<v8::Function> attributeChanged) { // V8 Custom Elements always run created to swizzle prototypes. int flags = CustomElementLifecycleCallbacks::CreatedCallback; if (!attached.IsEmpty()) flags |= CustomElementLifecycleCallbacks::AttachedCallback; if (!detached.IsEmpty()) flags |= CustomElementLifecycleCallbacks::DetachedCallback; if (!attributeChanged.IsEmpty()) flags |= CustomElementLifecycleCallbacks::AttributeChangedCallback; return CustomElementLifecycleCallbacks::CallbackType(flags); }
inline void v8SetReturnValue(const CallbackInfo& info, v8::MaybeLocal<S> maybe) { if (LIKELY(!maybe.IsEmpty())) info.GetReturnValue().Set(maybe.ToLocalChecked()); }