LibWeb: Only set prototype once for object with IDL interface

Before this change, we were going through the chain of base classes for
each IDL interface object and having them set the prototype to their
prototype.

Instead of doing that, reorder things so that we set the right prototype
immediately in Foo::initialize(), and then don't bother in all the base
class overrides.

This knocks off a ~1% profile item on Speedometer 3.
This commit is contained in:
Andreas Kling 2025-04-20 16:22:57 +02:00 committed by Andreas Kling
commit a6dfc74e93
Notes: github-actions[bot] 2025-04-20 16:44:17 +00:00
417 changed files with 423 additions and 423 deletions

View file

@ -1343,8 +1343,8 @@ Animation::Animation(JS::Realm& realm)
void Animation::initialize(JS::Realm& realm) void Animation::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Animation); WEB_SET_PROTOTYPE_FOR_INTERFACE(Animation);
Base::initialize(realm);
} }
void Animation::visit_edges(Cell::Visitor& visitor) void Animation::visit_edges(Cell::Visitor& visitor)

View file

@ -616,8 +616,8 @@ AnimationEffect::AnimationEffect(JS::Realm& realm)
void AnimationEffect::initialize(JS::Realm& realm) void AnimationEffect::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(AnimationEffect); WEB_SET_PROTOTYPE_FOR_INTERFACE(AnimationEffect);
Base::initialize(realm);
} }
void AnimationEffect::visit_edges(JS::Cell::Visitor& visitor) void AnimationEffect::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -32,8 +32,8 @@ AnimationPlaybackEvent::AnimationPlaybackEvent(JS::Realm& realm, FlyString const
void AnimationPlaybackEvent::initialize(JS::Realm& realm) void AnimationPlaybackEvent::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(AnimationPlaybackEvent); WEB_SET_PROTOTYPE_FOR_INTERFACE(AnimationPlaybackEvent);
Base::initialize(realm);
} }
} }

View file

@ -61,8 +61,8 @@ void AnimationTimeline::finalize()
void AnimationTimeline::initialize(JS::Realm& realm) void AnimationTimeline::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(AnimationTimeline); WEB_SET_PROTOTYPE_FOR_INTERFACE(AnimationTimeline);
Base::initialize(realm);
} }
void AnimationTimeline::visit_edges(Cell::Visitor& visitor) void AnimationTimeline::visit_edges(Cell::Visitor& visitor)

View file

@ -84,8 +84,8 @@ DocumentTimeline::DocumentTimeline(JS::Realm& realm, DOM::Document& document, Hi
void DocumentTimeline::initialize(JS::Realm& realm) void DocumentTimeline::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DocumentTimeline); WEB_SET_PROTOTYPE_FOR_INTERFACE(DocumentTimeline);
Base::initialize(realm);
} }
} }

View file

@ -885,8 +885,8 @@ KeyframeEffect::KeyframeEffect(JS::Realm& realm)
void KeyframeEffect::initialize(JS::Realm& realm) void KeyframeEffect::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(KeyframeEffect); WEB_SET_PROTOTYPE_FOR_INTERFACE(KeyframeEffect);
Base::initialize(realm);
} }
void KeyframeEffect::visit_edges(Cell::Visitor& visitor) void KeyframeEffect::visit_edges(Cell::Visitor& visitor)

View file

@ -14,10 +14,12 @@
#include <LibJS/Heap/Cell.h> #include <LibJS/Heap/Cell.h>
#include <LibJS/Runtime/VM.h> #include <LibJS/Runtime/VM.h>
#define WEB_SET_PROTOTYPE_FOR_INTERFACE_WITH_CUSTOM_NAME(interface_class, interface_name) \ #define WEB_SET_PROTOTYPE_FOR_INTERFACE_WITH_CUSTOM_NAME(interface_class, interface_name) \
do { \ do { \
static auto name = #interface_name##_fly_string; \ static auto name = #interface_name##_fly_string; \
set_prototype(&Bindings::ensure_web_prototype<Bindings::interface_class##Prototype>(realm, name)); \ if (!shape().prototype()) { \
set_prototype(&Bindings::ensure_web_prototype<Bindings::interface_class##Prototype>(realm, name)); \
} \
} while (0) } while (0)
#define WEB_SET_PROTOTYPE_FOR_INTERFACE(interface_name) WEB_SET_PROTOTYPE_FOR_INTERFACE_WITH_CUSTOM_NAME(interface_name, interface_name) #define WEB_SET_PROTOTYPE_FOR_INTERFACE(interface_name) WEB_SET_PROTOTYPE_FOR_INTERFACE_WITH_CUSTOM_NAME(interface_name, interface_name)

View file

@ -32,8 +32,8 @@ AnimationEvent::AnimationEvent(JS::Realm& realm, FlyString const& type, Animatio
void AnimationEvent::initialize(JS::Realm& realm) void AnimationEvent::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(AnimationEvent); WEB_SET_PROTOTYPE_FOR_INTERFACE(AnimationEvent);
Base::initialize(realm);
} }
} }

View file

@ -75,8 +75,8 @@ CSSAnimation::CSSAnimation(JS::Realm& realm)
void CSSAnimation::initialize(JS::Realm& realm) void CSSAnimation::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSAnimation); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSAnimation);
Base::initialize(realm);
} }
} }

View file

@ -24,8 +24,8 @@ void CSSConditionRule::for_each_effective_rule(TraversalOrder order, Function<vo
void CSSConditionRule::initialize(JS::Realm& realm) void CSSConditionRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSConditionRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSConditionRule);
Base::initialize(realm);
} }
} }

View file

@ -30,8 +30,8 @@ CSSFontFaceDescriptors::~CSSFontFaceDescriptors() = default;
void CSSFontFaceDescriptors::initialize(JS::Realm& realm) void CSSFontFaceDescriptors::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSFontFaceDescriptors); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSFontFaceDescriptors);
Base::initialize(realm);
} }
// https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-length // https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-length

View file

@ -30,8 +30,8 @@ CSSFontFaceRule::CSSFontFaceRule(JS::Realm& realm, GC::Ref<CSSFontFaceDescriptor
void CSSFontFaceRule::initialize(JS::Realm& realm) void CSSFontFaceRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSFontFaceRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSFontFaceRule);
Base::initialize(realm);
} }
bool CSSFontFaceRule::is_valid() const bool CSSFontFaceRule::is_valid() const

View file

@ -24,8 +24,8 @@ CSSGroupingRule::CSSGroupingRule(JS::Realm& realm, CSSRuleList& rules, Type type
void CSSGroupingRule::initialize(JS::Realm& realm) void CSSGroupingRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSGroupingRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSGroupingRule);
Base::initialize(realm);
} }
void CSSGroupingRule::visit_edges(Cell::Visitor& visitor) void CSSGroupingRule::visit_edges(Cell::Visitor& visitor)

View file

@ -39,8 +39,8 @@ CSSImportRule::CSSImportRule(JS::Realm& realm, URL url, GC::Ptr<DOM::Document> d
void CSSImportRule::initialize(JS::Realm& realm) void CSSImportRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSImportRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSImportRule);
Base::initialize(realm);
} }
void CSSImportRule::visit_edges(Cell::Visitor& visitor) void CSSImportRule::visit_edges(Cell::Visitor& visitor)

View file

@ -34,8 +34,8 @@ void CSSKeyframeRule::visit_edges(Visitor& visitor)
void CSSKeyframeRule::initialize(JS::Realm& realm) void CSSKeyframeRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSKeyframeRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSKeyframeRule);
Base::initialize(realm);
} }
String CSSKeyframeRule::serialized() const String CSSKeyframeRule::serialized() const

View file

@ -36,8 +36,8 @@ void CSSKeyframesRule::visit_edges(Visitor& visitor)
void CSSKeyframesRule::initialize(JS::Realm& realm) void CSSKeyframesRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSKeyframesRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSKeyframesRule);
Base::initialize(realm);
} }
String CSSKeyframesRule::serialized() const String CSSKeyframesRule::serialized() const

View file

@ -37,8 +37,8 @@ CSSLayerBlockRule::CSSLayerBlockRule(JS::Realm& realm, FlyString name, CSSRuleLi
void CSSLayerBlockRule::initialize(JS::Realm& realm) void CSSLayerBlockRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSLayerBlockRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSLayerBlockRule);
Base::initialize(realm);
} }
String CSSLayerBlockRule::serialized() const String CSSLayerBlockRule::serialized() const

View file

@ -26,8 +26,8 @@ CSSLayerStatementRule::CSSLayerStatementRule(JS::Realm& realm, Vector<FlyString>
void CSSLayerStatementRule::initialize(JS::Realm& realm) void CSSLayerStatementRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSLayerStatementRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSLayerStatementRule);
Base::initialize(realm);
} }
String CSSLayerStatementRule::serialized() const String CSSLayerStatementRule::serialized() const

View file

@ -27,8 +27,8 @@ CSSMediaRule::CSSMediaRule(JS::Realm& realm, MediaList& media, CSSRuleList& rule
void CSSMediaRule::initialize(JS::Realm& realm) void CSSMediaRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSMediaRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSMediaRule);
Base::initialize(realm);
} }
void CSSMediaRule::visit_edges(Cell::Visitor& visitor) void CSSMediaRule::visit_edges(Cell::Visitor& visitor)

View file

@ -30,8 +30,8 @@ GC::Ref<CSSNamespaceRule> CSSNamespaceRule::create(JS::Realm& realm, Optional<Fl
void CSSNamespaceRule::initialize(JS::Realm& realm) void CSSNamespaceRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSNamespaceRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSNamespaceRule);
Base::initialize(realm);
} }
// https://www.w3.org/TR/cssom/#serialize-a-css-rule // https://www.w3.org/TR/cssom/#serialize-a-css-rule

View file

@ -27,8 +27,8 @@ CSSNestedDeclarations::CSSNestedDeclarations(JS::Realm& realm, CSSStylePropertie
void CSSNestedDeclarations::initialize(JS::Realm& realm) void CSSNestedDeclarations::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSNestedDeclarations); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSNestedDeclarations);
Base::initialize(realm);
} }
void CSSNestedDeclarations::visit_edges(Cell::Visitor& visitor) void CSSNestedDeclarations::visit_edges(Cell::Visitor& visitor)

View file

@ -36,8 +36,8 @@ Optional<String> CSSPropertyRule::initial_value() const
void CSSPropertyRule::initialize(JS::Realm& realm) void CSSPropertyRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSPropertyRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSPropertyRule);
Base::initialize(realm);
} }
// https://www.w3.org/TR/cssom-1/#serialize-a-css-rule // https://www.w3.org/TR/cssom-1/#serialize-a-css-rule

View file

@ -42,8 +42,8 @@ GC::Ref<CSSRuleList> CSSRuleList::create_empty(JS::Realm& realm)
void CSSRuleList::initialize(JS::Realm& realm) void CSSRuleList::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSRuleList); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSRuleList);
Base::initialize(realm);
} }
void CSSRuleList::visit_edges(Cell::Visitor& visitor) void CSSRuleList::visit_edges(Cell::Visitor& visitor)

View file

@ -29,8 +29,8 @@ CSSStyleDeclaration::CSSStyleDeclaration(JS::Realm& realm, Computed computed, Re
void CSSStyleDeclaration::initialize(JS::Realm& realm) void CSSStyleDeclaration::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSStyleDeclaration); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSStyleDeclaration);
Base::initialize(realm);
} }
// https://drafts.csswg.org/cssom/#update-style-attribute-for // https://drafts.csswg.org/cssom/#update-style-attribute-for

View file

@ -77,8 +77,8 @@ CSSStyleProperties::CSSStyleProperties(JS::Realm& realm, Computed computed, Read
void CSSStyleProperties::initialize(JS::Realm& realm) void CSSStyleProperties::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSStyleProperties); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSStyleProperties);
Base::initialize(realm);
} }
void CSSStyleProperties::visit_edges(Visitor& visitor) void CSSStyleProperties::visit_edges(Visitor& visitor)

View file

@ -32,8 +32,8 @@ CSSStyleRule::CSSStyleRule(JS::Realm& realm, SelectorList&& selectors, CSSStyleP
void CSSStyleRule::initialize(JS::Realm& realm) void CSSStyleRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSStyleRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSStyleRule);
Base::initialize(realm);
} }
void CSSStyleRule::visit_edges(Cell::Visitor& visitor) void CSSStyleRule::visit_edges(Cell::Visitor& visitor)

View file

@ -114,8 +114,8 @@ CSSStyleSheet::CSSStyleSheet(JS::Realm& realm, CSSRuleList& rules, MediaList& me
void CSSStyleSheet::initialize(JS::Realm& realm) void CSSStyleSheet::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSStyleSheet); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSStyleSheet);
Base::initialize(realm);
} }
void CSSStyleSheet::visit_edges(Cell::Visitor& visitor) void CSSStyleSheet::visit_edges(Cell::Visitor& visitor)

View file

@ -26,8 +26,8 @@ CSSSupportsRule::CSSSupportsRule(JS::Realm& realm, NonnullRefPtr<Supports>&& sup
void CSSSupportsRule::initialize(JS::Realm& realm) void CSSSupportsRule::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSSupportsRule); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSSupportsRule);
Base::initialize(realm);
} }
String CSSSupportsRule::condition_text() const String CSSSupportsRule::condition_text() const

View file

@ -126,8 +126,8 @@ CSSTransition::CSSTransition(JS::Realm& realm, DOM::Element& element, PropertyID
void CSSTransition::initialize(JS::Realm& realm) void CSSTransition::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSTransition); WEB_SET_PROTOTYPE_FOR_INTERFACE(CSSTransition);
Base::initialize(realm);
} }
void CSSTransition::visit_edges(Cell::Visitor& visitor) void CSSTransition::visit_edges(Cell::Visitor& visitor)

View file

@ -186,9 +186,8 @@ FontFace::~FontFace() = default;
void FontFace::initialize(JS::Realm& realm) void FontFace::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(FontFace); WEB_SET_PROTOTYPE_FOR_INTERFACE(FontFace);
Base::initialize(realm);
} }
void FontFace::visit_edges(JS::Cell::Visitor& visitor) void FontFace::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -56,9 +56,8 @@ FontFaceSet::FontFaceSet(JS::Realm& realm, GC::Ref<WebIDL::Promise> ready_promis
void FontFaceSet::initialize(JS::Realm& realm) void FontFaceSet::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(FontFaceSet); WEB_SET_PROTOTYPE_FOR_INTERFACE(FontFaceSet);
Base::initialize(realm);
} }
void FontFaceSet::visit_edges(Cell::Visitor& visitor) void FontFaceSet::visit_edges(Cell::Visitor& visitor)

View file

@ -30,8 +30,8 @@ MediaList::MediaList(JS::Realm& realm, Vector<NonnullRefPtr<MediaQuery>>&& media
void MediaList::initialize(JS::Realm& realm) void MediaList::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(MediaList); WEB_SET_PROTOTYPE_FOR_INTERFACE(MediaList);
Base::initialize(realm);
} }
void MediaList::visit_edges(Visitor& visitor) void MediaList::visit_edges(Visitor& visitor)

View file

@ -32,8 +32,8 @@ MediaQueryList::MediaQueryList(DOM::Document& document, Vector<NonnullRefPtr<Med
void MediaQueryList::initialize(JS::Realm& realm) void MediaQueryList::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(MediaQueryList); WEB_SET_PROTOTYPE_FOR_INTERFACE(MediaQueryList);
Base::initialize(realm);
} }
void MediaQueryList::visit_edges(Cell::Visitor& visitor) void MediaQueryList::visit_edges(Cell::Visitor& visitor)

View file

@ -35,8 +35,8 @@ MediaQueryListEvent::~MediaQueryListEvent() = default;
void MediaQueryListEvent::initialize(JS::Realm& realm) void MediaQueryListEvent::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(MediaQueryListEvent); WEB_SET_PROTOTYPE_FOR_INTERFACE(MediaQueryListEvent);
Base::initialize(realm);
} }
} }

View file

@ -29,8 +29,8 @@ Screen::Screen(HTML::Window& window)
void Screen::initialize(JS::Realm& realm) void Screen::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Screen); WEB_SET_PROTOTYPE_FOR_INTERFACE(Screen);
Base::initialize(realm);
} }
void Screen::visit_edges(Cell::Visitor& visitor) void Screen::visit_edges(Cell::Visitor& visitor)

View file

@ -20,8 +20,8 @@ ScreenOrientation::ScreenOrientation(JS::Realm& realm)
void ScreenOrientation::initialize(JS::Realm& realm) void ScreenOrientation::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(ScreenOrientation); WEB_SET_PROTOTYPE_FOR_INTERFACE(ScreenOrientation);
Base::initialize(realm);
} }
GC::Ref<ScreenOrientation> ScreenOrientation::create(JS::Realm& realm) GC::Ref<ScreenOrientation> ScreenOrientation::create(JS::Realm& realm)

View file

@ -155,8 +155,8 @@ StyleSheetList::StyleSheetList(GC::Ref<DOM::Node> document_or_shadow_root)
void StyleSheetList::initialize(JS::Realm& realm) void StyleSheetList::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(StyleSheetList); WEB_SET_PROTOTYPE_FOR_INTERFACE(StyleSheetList);
Base::initialize(realm);
} }
void StyleSheetList::visit_edges(Cell::Visitor& visitor) void StyleSheetList::visit_edges(Cell::Visitor& visitor)

View file

@ -36,8 +36,8 @@ TransitionEvent::~TransitionEvent() = default;
void TransitionEvent::initialize(JS::Realm& realm) void TransitionEvent::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(TransitionEvent); WEB_SET_PROTOTYPE_FOR_INTERFACE(TransitionEvent);
Base::initialize(realm);
} }
} }

View file

@ -30,8 +30,8 @@ VisualViewport::VisualViewport(DOM::Document& document)
void VisualViewport::initialize(JS::Realm& realm) void VisualViewport::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(VisualViewport); WEB_SET_PROTOTYPE_FOR_INTERFACE(VisualViewport);
Base::initialize(realm);
} }
void VisualViewport::visit_edges(Cell::Visitor& visitor) void VisualViewport::visit_edges(Cell::Visitor& visitor)

View file

@ -35,8 +35,8 @@ Clipboard::~Clipboard() = default;
void Clipboard::initialize(JS::Realm& realm) void Clipboard::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Clipboard); WEB_SET_PROTOTYPE_FOR_INTERFACE(Clipboard);
Base::initialize(realm);
} }
// https://w3c.github.io/clipboard-apis/#os-specific-well-known-format // https://w3c.github.io/clipboard-apis/#os-specific-well-known-format

View file

@ -28,8 +28,8 @@ ClipboardEvent::~ClipboardEvent() = default;
void ClipboardEvent::initialize(JS::Realm& realm) void ClipboardEvent::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(ClipboardEvent); WEB_SET_PROTOTYPE_FOR_INTERFACE(ClipboardEvent);
Base::initialize(realm);
} }
void ClipboardEvent::visit_edges(JS::Cell::Visitor& visitor) void ClipboardEvent::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -193,8 +193,8 @@ ClipboardItem::~ClipboardItem() = default;
void ClipboardItem::initialize(JS::Realm& realm) void ClipboardItem::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(ClipboardItem); WEB_SET_PROTOTYPE_FOR_INTERFACE(ClipboardItem);
Base::initialize(realm);
} }
void ClipboardItem::visit_edges(Cell::Visitor& visitor) void ClipboardItem::visit_edges(Cell::Visitor& visitor)

View file

@ -94,8 +94,8 @@ CompressionStream::~CompressionStream() = default;
void CompressionStream::initialize(JS::Realm& realm) void CompressionStream::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CompressionStream); WEB_SET_PROTOTYPE_FOR_INTERFACE(CompressionStream);
Base::initialize(realm);
} }
void CompressionStream::visit_edges(JS::Cell::Visitor& visitor) void CompressionStream::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -94,8 +94,8 @@ DecompressionStream::~DecompressionStream() = default;
void DecompressionStream::initialize(JS::Realm& realm) void DecompressionStream::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DecompressionStream); WEB_SET_PROTOTYPE_FOR_INTERFACE(DecompressionStream);
Base::initialize(realm);
} }
void DecompressionStream::visit_edges(JS::Cell::Visitor& visitor) void DecompressionStream::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -43,8 +43,8 @@ SecurityPolicyViolationEvent::~SecurityPolicyViolationEvent() = default;
void SecurityPolicyViolationEvent::initialize(JS::Realm& realm) void SecurityPolicyViolationEvent::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(SecurityPolicyViolationEvent); WEB_SET_PROTOTYPE_FOR_INTERFACE(SecurityPolicyViolationEvent);
Base::initialize(realm);
} }
} }

View file

@ -32,7 +32,7 @@ Credential::Credential(JS::Realm& realm)
void Credential::initialize(JS::Realm& realm) void Credential::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Credential); WEB_SET_PROTOTYPE_FOR_INTERFACE(Credential);
Base::initialize(realm);
} }
} }

View file

@ -52,8 +52,8 @@ CredentialsContainer::CredentialsContainer(JS::Realm& realm)
void CredentialsContainer::initialize(JS::Realm& realm) void CredentialsContainer::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CredentialsContainer); WEB_SET_PROTOTYPE_FOR_INTERFACE(CredentialsContainer);
Base::initialize(realm);
} }
} }

View file

@ -33,8 +33,8 @@ FederatedCredential::FederatedCredential(JS::Realm& realm)
void FederatedCredential::initialize(JS::Realm& realm) void FederatedCredential::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(FederatedCredential); WEB_SET_PROTOTYPE_FOR_INTERFACE(FederatedCredential);
Base::initialize(realm);
} }
} }

View file

@ -38,8 +38,8 @@ PasswordCredential::PasswordCredential(JS::Realm& realm)
void PasswordCredential::initialize(JS::Realm& realm) void PasswordCredential::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(PasswordCredential); WEB_SET_PROTOTYPE_FOR_INTERFACE(PasswordCredential);
Base::initialize(realm);
} }
} }

View file

@ -34,8 +34,8 @@ Crypto::~Crypto() = default;
void Crypto::initialize(JS::Realm& realm) void Crypto::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Crypto); WEB_SET_PROTOTYPE_FOR_INTERFACE(Crypto);
Base::initialize(realm);
m_subtle = SubtleCrypto::create(realm); m_subtle = SubtleCrypto::create(realm);
} }

View file

@ -52,8 +52,8 @@ CryptoKey::~CryptoKey()
void CryptoKey::initialize(JS::Realm& realm) void CryptoKey::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CryptoKey); WEB_SET_PROTOTYPE_FOR_INTERFACE(CryptoKey);
Base::initialize(realm);
} }
void CryptoKey::visit_edges(Visitor& visitor) void CryptoKey::visit_edges(Visitor& visitor)

View file

@ -58,8 +58,8 @@ SubtleCrypto::~SubtleCrypto() = default;
void SubtleCrypto::initialize(JS::Realm& realm) void SubtleCrypto::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(SubtleCrypto); WEB_SET_PROTOTYPE_FOR_INTERFACE(SubtleCrypto);
Base::initialize(realm);
} }
// https://w3c.github.io/webcrypto/#dfn-normalize-an-algorithm // https://w3c.github.io/webcrypto/#dfn-normalize-an-algorithm

View file

@ -30,8 +30,8 @@ AbortController::~AbortController() = default;
void AbortController::initialize(JS::Realm& realm) void AbortController::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(AbortController); WEB_SET_PROTOTYPE_FOR_INTERFACE(AbortController);
Base::initialize(realm);
} }
void AbortController::visit_edges(Cell::Visitor& visitor) void AbortController::visit_edges(Cell::Visitor& visitor)

View file

@ -30,8 +30,8 @@ AbortSignal::AbortSignal(JS::Realm& realm)
void AbortSignal::initialize(JS::Realm& realm) void AbortSignal::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(AbortSignal); WEB_SET_PROTOTYPE_FOR_INTERFACE(AbortSignal);
Base::initialize(realm);
} }
// https://dom.spec.whatwg.org/#abortsignal-add // https://dom.spec.whatwg.org/#abortsignal-add

View file

@ -24,8 +24,8 @@ AbstractRange::~AbstractRange() = default;
void AbstractRange::initialize(JS::Realm& realm) void AbstractRange::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(AbstractRange); WEB_SET_PROTOTYPE_FOR_INTERFACE(AbstractRange);
Base::initialize(realm);
} }
void AbstractRange::visit_edges(Cell::Visitor& visitor) void AbstractRange::visit_edges(Cell::Visitor& visitor)

View file

@ -44,8 +44,8 @@ Attr::Attr(Document& document, QualifiedName qualified_name, String value, Eleme
void Attr::initialize(JS::Realm& realm) void Attr::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Attr); WEB_SET_PROTOTYPE_FOR_INTERFACE(Attr);
Base::initialize(realm);
} }
void Attr::visit_edges(Cell::Visitor& visitor) void Attr::visit_edges(Cell::Visitor& visitor)

View file

@ -21,8 +21,8 @@ CDATASection::~CDATASection() = default;
void CDATASection::initialize(JS::Realm& realm) void CDATASection::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CDATASection); WEB_SET_PROTOTYPE_FOR_INTERFACE(CDATASection);
Base::initialize(realm);
} }
} }

View file

@ -27,8 +27,8 @@ CharacterData::~CharacterData() = default;
void CharacterData::initialize(JS::Realm& realm) void CharacterData::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CharacterData); WEB_SET_PROTOTYPE_FOR_INTERFACE(CharacterData);
Base::initialize(realm);
} }
// https://dom.spec.whatwg.org/#dom-characterdata-data // https://dom.spec.whatwg.org/#dom-characterdata-data

View file

@ -27,8 +27,8 @@ WebIDL::ExceptionOr<GC::Ref<Comment>> Comment::construct_impl(JS::Realm& realm,
void Comment::initialize(JS::Realm& realm) void Comment::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Comment); WEB_SET_PROTOTYPE_FOR_INTERFACE(Comment);
Base::initialize(realm);
} }
} }

View file

@ -34,8 +34,8 @@ CustomEvent::~CustomEvent() = default;
void CustomEvent::initialize(JS::Realm& realm) void CustomEvent::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(CustomEvent); WEB_SET_PROTOTYPE_FOR_INTERFACE(CustomEvent);
Base::initialize(realm);
} }
void CustomEvent::visit_edges(JS::Cell::Visitor& visitor) void CustomEvent::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -37,8 +37,8 @@ DOMImplementation::~DOMImplementation() = default;
void DOMImplementation::initialize(JS::Realm& realm) void DOMImplementation::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DOMImplementation); WEB_SET_PROTOTYPE_FOR_INTERFACE(DOMImplementation);
Base::initialize(realm);
} }
void DOMImplementation::visit_edges(Cell::Visitor& visitor) void DOMImplementation::visit_edges(Cell::Visitor& visitor)

View file

@ -75,8 +75,8 @@ DOMTokenList::DOMTokenList(Element& associated_element, FlyString associated_att
void DOMTokenList::initialize(JS::Realm& realm) void DOMTokenList::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DOMTokenList); WEB_SET_PROTOTYPE_FOR_INTERFACE(DOMTokenList);
Base::initialize(realm);
} }
void DOMTokenList::visit_edges(Cell::Visitor& visitor) void DOMTokenList::visit_edges(Cell::Visitor& visitor)

View file

@ -481,8 +481,8 @@ Document::~Document()
void Document::initialize(JS::Realm& realm) void Document::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Document); WEB_SET_PROTOTYPE_FOR_INTERFACE(Document);
Base::initialize(realm);
Bindings::DocumentPrototype::define_unforgeable_attributes(realm, *this); Bindings::DocumentPrototype::define_unforgeable_attributes(realm, *this);
m_selection = realm.create<Selection::Selection>(realm, *this); m_selection = realm.create<Selection::Selection>(realm, *this);

View file

@ -19,8 +19,8 @@ DocumentFragment::DocumentFragment(Document& document)
void DocumentFragment::initialize(JS::Realm& realm) void DocumentFragment::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DocumentFragment); WEB_SET_PROTOTYPE_FOR_INTERFACE(DocumentFragment);
Base::initialize(realm);
} }
void DocumentFragment::visit_edges(Cell::Visitor& visitor) void DocumentFragment::visit_edges(Cell::Visitor& visitor)

View file

@ -24,8 +24,8 @@ DocumentType::DocumentType(Document& document)
void DocumentType::initialize(JS::Realm& realm) void DocumentType::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DocumentType); WEB_SET_PROTOTYPE_FOR_INTERFACE(DocumentType);
Base::initialize(realm);
} }
} }

View file

@ -96,8 +96,8 @@ Element::~Element() = default;
void Element::initialize(JS::Realm& realm) void Element::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Element); WEB_SET_PROTOTYPE_FOR_INTERFACE(Element);
Base::initialize(realm);
} }
void Element::visit_edges(Cell::Visitor& visitor) void Element::visit_edges(Cell::Visitor& visitor)

View file

@ -55,8 +55,8 @@ Event::Event(JS::Realm& realm, FlyString const& type, EventInit const& event_ini
void Event::initialize(JS::Realm& realm) void Event::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Event); WEB_SET_PROTOTYPE_FOR_INTERFACE(Event);
Base::initialize(realm);
Bindings::EventPrototype::define_unforgeable_attributes(realm, *this); Bindings::EventPrototype::define_unforgeable_attributes(realm, *this);
} }

View file

@ -63,12 +63,12 @@ WebIDL::ExceptionOr<GC::Ref<EventTarget>> EventTarget::construct_impl(JS::Realm&
void EventTarget::initialize(JS::Realm& realm) void EventTarget::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
// FIXME: We can't do this for HTML::Window or HTML::WorkerGlobalScope, as this will run when creating the initial global object. // FIXME: We can't do this for HTML::Window or HTML::WorkerGlobalScope, as this will run when creating the initial global object.
// During this time, the ESO is not setup, so it will cause a nullptr dereference in host_defined_intrinsics. // During this time, the ESO is not setup, so it will cause a nullptr dereference in host_defined_intrinsics.
if (!is_window_or_worker_global_scope_mixin()) if (!is_window_or_worker_global_scope_mixin())
WEB_SET_PROTOTYPE_FOR_INTERFACE(EventTarget); WEB_SET_PROTOTYPE_FOR_INTERFACE(EventTarget);
Base::initialize(realm);
} }
void EventTarget::visit_edges(Cell::Visitor& visitor) void EventTarget::visit_edges(Cell::Visitor& visitor)

View file

@ -39,8 +39,8 @@ HTMLCollection::~HTMLCollection() = default;
void HTMLCollection::initialize(JS::Realm& realm) void HTMLCollection::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(HTMLCollection); WEB_SET_PROTOTYPE_FOR_INTERFACE(HTMLCollection);
Base::initialize(realm);
} }
void HTMLCollection::visit_edges(Cell::Visitor& visitor) void HTMLCollection::visit_edges(Cell::Visitor& visitor)

View file

@ -44,8 +44,8 @@ void MutationObserver::finalize()
void MutationObserver::initialize(JS::Realm& realm) void MutationObserver::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(MutationObserver); WEB_SET_PROTOTYPE_FOR_INTERFACE(MutationObserver);
Base::initialize(realm);
} }
void MutationObserver::visit_edges(Cell::Visitor& visitor) void MutationObserver::visit_edges(Cell::Visitor& visitor)

View file

@ -38,8 +38,8 @@ MutationRecord::~MutationRecord() = default;
void MutationRecord::initialize(JS::Realm& realm) void MutationRecord::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(MutationRecord); WEB_SET_PROTOTYPE_FOR_INTERFACE(MutationRecord);
Base::initialize(realm);
} }
void MutationRecord::visit_edges(Cell::Visitor& visitor) void MutationRecord::visit_edges(Cell::Visitor& visitor)

View file

@ -36,8 +36,8 @@ NamedNodeMap::NamedNodeMap(Element& element)
void NamedNodeMap::initialize(JS::Realm& realm) void NamedNodeMap::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(NamedNodeMap); WEB_SET_PROTOTYPE_FOR_INTERFACE(NamedNodeMap);
Base::initialize(realm);
} }
void NamedNodeMap::visit_edges(Cell::Visitor& visitor) void NamedNodeMap::visit_edges(Cell::Visitor& visitor)

View file

@ -27,8 +27,8 @@ NodeIterator::~NodeIterator() = default;
void NodeIterator::initialize(JS::Realm& realm) void NodeIterator::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(NodeIterator); WEB_SET_PROTOTYPE_FOR_INTERFACE(NodeIterator);
Base::initialize(realm);
} }
void NodeIterator::finalize() void NodeIterator::finalize()

View file

@ -21,8 +21,8 @@ NodeList::~NodeList() = default;
void NodeList::initialize(JS::Realm& realm) void NodeList::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(NodeList); WEB_SET_PROTOTYPE_FOR_INTERFACE(NodeList);
Base::initialize(realm);
} }
Optional<JS::Value> NodeList::item_value(size_t index) const Optional<JS::Value> NodeList::item_value(size_t index) const

View file

@ -22,8 +22,8 @@ ProcessingInstruction::ProcessingInstruction(Document& document, String const& d
void ProcessingInstruction::initialize(JS::Realm& realm) void ProcessingInstruction::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(ProcessingInstruction); WEB_SET_PROTOTYPE_FOR_INTERFACE(ProcessingInstruction);
Base::initialize(realm);
} }
} }

View file

@ -78,8 +78,8 @@ Range::~Range()
void Range::initialize(JS::Realm& realm) void Range::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Range); WEB_SET_PROTOTYPE_FOR_INTERFACE(Range);
Base::initialize(realm);
} }
void Range::visit_edges(Cell::Visitor& visitor) void Range::visit_edges(Cell::Visitor& visitor)

View file

@ -33,8 +33,8 @@ void ShadowRoot::finalize()
void ShadowRoot::initialize(JS::Realm& realm) void ShadowRoot::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(ShadowRoot); WEB_SET_PROTOTYPE_FOR_INTERFACE(ShadowRoot);
Base::initialize(realm);
} }
// https://dom.spec.whatwg.org/#dom-shadowroot-onslotchange // https://dom.spec.whatwg.org/#dom-shadowroot-onslotchange

View file

@ -40,8 +40,8 @@ WebIDL::ExceptionOr<GC::Ref<StaticRange>> StaticRange::construct_impl(JS::Realm&
void StaticRange::initialize(JS::Realm& realm) void StaticRange::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(StaticRange); WEB_SET_PROTOTYPE_FOR_INTERFACE(StaticRange);
Base::initialize(realm);
} }
} }

View file

@ -29,8 +29,8 @@ Text::Text(Document& document, NodeType type, String const& data)
void Text::initialize(JS::Realm& realm) void Text::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Text); WEB_SET_PROTOTYPE_FOR_INTERFACE(Text);
Base::initialize(realm);
} }
void Text::visit_edges(Cell::Visitor& visitor) void Text::visit_edges(Cell::Visitor& visitor)

View file

@ -28,8 +28,8 @@ TreeWalker::~TreeWalker() = default;
void TreeWalker::initialize(JS::Realm& realm) void TreeWalker::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(TreeWalker); WEB_SET_PROTOTYPE_FOR_INTERFACE(TreeWalker);
Base::initialize(realm);
} }
void TreeWalker::visit_edges(Cell::Visitor& visitor) void TreeWalker::visit_edges(Cell::Visitor& visitor)

View file

@ -23,8 +23,8 @@ XMLDocument::XMLDocument(JS::Realm& realm, URL::URL const& url)
void XMLDocument::initialize(JS::Realm& realm) void XMLDocument::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(XMLDocument); WEB_SET_PROTOTYPE_FOR_INTERFACE(XMLDocument);
Base::initialize(realm);
} }
} }

View file

@ -109,8 +109,8 @@ DOMURL::~DOMURL() = default;
void DOMURL::initialize(JS::Realm& realm) void DOMURL::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE_WITH_CUSTOM_NAME(DOMURL, URL); WEB_SET_PROTOTYPE_FOR_INTERFACE_WITH_CUSTOM_NAME(DOMURL, URL);
Base::initialize(realm);
} }
void DOMURL::visit_edges(Cell::Visitor& visitor) void DOMURL::visit_edges(Cell::Visitor& visitor)

View file

@ -31,8 +31,8 @@ URLSearchParams::~URLSearchParams() = default;
void URLSearchParams::initialize(JS::Realm& realm) void URLSearchParams::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(URLSearchParams); WEB_SET_PROTOTYPE_FOR_INTERFACE(URLSearchParams);
Base::initialize(realm);
} }
void URLSearchParams::visit_edges(Cell::Visitor& visitor) void URLSearchParams::visit_edges(Cell::Visitor& visitor)

View file

@ -41,8 +41,8 @@ URLSearchParamsIterator::~URLSearchParamsIterator() = default;
void URLSearchParamsIterator::initialize(JS::Realm& realm) void URLSearchParamsIterator::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(URLSearchParamsIterator); WEB_SET_PROTOTYPE_FOR_INTERFACE(URLSearchParamsIterator);
Base::initialize(realm);
} }
void URLSearchParamsIterator::visit_edges(JS::Cell::Visitor& visitor) void URLSearchParamsIterator::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -61,8 +61,8 @@ TextDecoder::~TextDecoder() = default;
void TextDecoder::initialize(JS::Realm& realm) void TextDecoder::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(TextDecoder); WEB_SET_PROTOTYPE_FOR_INTERFACE(TextDecoder);
Base::initialize(realm);
} }
// https://encoding.spec.whatwg.org/#dom-textdecoder-decode // https://encoding.spec.whatwg.org/#dom-textdecoder-decode

View file

@ -28,8 +28,8 @@ TextEncoder::~TextEncoder() = default;
void TextEncoder::initialize(JS::Realm& realm) void TextEncoder::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(TextEncoder); WEB_SET_PROTOTYPE_FOR_INTERFACE(TextEncoder);
Base::initialize(realm);
} }
// https://encoding.spec.whatwg.org/#dom-textencoder-encode // https://encoding.spec.whatwg.org/#dom-textencoder-encode

View file

@ -76,8 +76,8 @@ TextEncoderStream::~TextEncoderStream() = default;
void TextEncoderStream::initialize(JS::Realm& realm) void TextEncoderStream::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(TextEncoderStream); WEB_SET_PROTOTYPE_FOR_INTERFACE(TextEncoderStream);
Base::initialize(realm);
} }
void TextEncoderStream::visit_edges(JS::Cell::Visitor& visitor) void TextEncoderStream::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -27,8 +27,8 @@ FileSystemEntry::FileSystemEntry(JS::Realm& realm, EntryType entry_type, ByteStr
void FileSystemEntry::initialize(JS::Realm& realm) void FileSystemEntry::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(FileSystemEntry); WEB_SET_PROTOTYPE_FOR_INTERFACE(FileSystemEntry);
Base::initialize(realm);
} }
// https://wicg.github.io/entries-api/#dom-filesystementry-isfile // https://wicg.github.io/entries-api/#dom-filesystementry-isfile

View file

@ -112,8 +112,8 @@ PerformanceTimeline::ShouldAddEntry PerformanceEventTiming::should_add_entry(Opt
void PerformanceEventTiming::initialize(JS::Realm& realm) void PerformanceEventTiming::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(PerformanceEventTiming); WEB_SET_PROTOTYPE_FOR_INTERFACE(PerformanceEventTiming);
Base::initialize(realm);
} }
void PerformanceEventTiming::visit_edges(JS::Cell::Visitor& visitor) void PerformanceEventTiming::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -43,8 +43,8 @@ Headers::~Headers() = default;
void Headers::initialize(JS::Realm& realm) void Headers::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Headers); WEB_SET_PROTOTYPE_FOR_INTERFACE(Headers);
Base::initialize(realm);
} }
void Headers::visit_edges(JS::Cell::Visitor& visitor) void Headers::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -42,8 +42,8 @@ HeadersIterator::~HeadersIterator() = default;
void HeadersIterator::initialize(JS::Realm& realm) void HeadersIterator::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(HeadersIterator); WEB_SET_PROTOTYPE_FOR_INTERFACE(HeadersIterator);
Base::initialize(realm);
} }
void HeadersIterator::visit_edges(JS::Cell::Visitor& visitor) void HeadersIterator::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -33,8 +33,8 @@ Request::~Request() = default;
void Request::initialize(JS::Realm& realm) void Request::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Request); WEB_SET_PROTOTYPE_FOR_INTERFACE(Request);
Base::initialize(realm);
} }
void Request::visit_edges(Cell::Visitor& visitor) void Request::visit_edges(Cell::Visitor& visitor)

View file

@ -31,8 +31,8 @@ Response::~Response() = default;
void Response::initialize(JS::Realm& realm) void Response::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Response); WEB_SET_PROTOTYPE_FOR_INTERFACE(Response);
Base::initialize(realm);
} }
void Response::visit_edges(Cell::Visitor& visitor) void Response::visit_edges(Cell::Visitor& visitor)

View file

@ -147,8 +147,8 @@ Blob::~Blob() = default;
void Blob::initialize(JS::Realm& realm) void Blob::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(Blob); WEB_SET_PROTOTYPE_FOR_INTERFACE(Blob);
Base::initialize(realm);
} }
WebIDL::ExceptionOr<void> Blob::serialization_steps(HTML::SerializationRecord& record, bool, HTML::SerializationMemory&) WebIDL::ExceptionOr<void> Blob::serialization_steps(HTML::SerializationRecord& record, bool, HTML::SerializationMemory&)

View file

@ -31,8 +31,8 @@ File::File(JS::Realm& realm)
void File::initialize(JS::Realm& realm) void File::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(File); WEB_SET_PROTOTYPE_FOR_INTERFACE(File);
Base::initialize(realm);
} }
File::~File() = default; File::~File() = default;

View file

@ -30,8 +30,8 @@ FileList::~FileList() = default;
void FileList::initialize(JS::Realm& realm) void FileList::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(FileList); WEB_SET_PROTOTYPE_FOR_INTERFACE(FileList);
Base::initialize(realm);
} }
Optional<JS::Value> FileList::item_value(size_t index) const Optional<JS::Value> FileList::item_value(size_t index) const

View file

@ -43,8 +43,8 @@ FileReader::FileReader(JS::Realm& realm)
void FileReader::initialize(JS::Realm& realm) void FileReader::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(FileReader); WEB_SET_PROTOTYPE_FOR_INTERFACE(FileReader);
Base::initialize(realm);
} }
void FileReader::visit_edges(JS::Cell::Visitor& visitor) void FileReader::visit_edges(JS::Cell::Visitor& visitor)

View file

@ -29,8 +29,8 @@ FileReaderSync::FileReaderSync(JS::Realm& realm)
void FileReaderSync::initialize(JS::Realm& realm) void FileReaderSync::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(FileReaderSync); WEB_SET_PROTOTYPE_FOR_INTERFACE(FileReaderSync);
Base::initialize(realm);
} }
GC::Ref<FileReaderSync> FileReaderSync::create(JS::Realm& realm) GC::Ref<FileReaderSync> FileReaderSync::create(JS::Realm& realm)

View file

@ -148,8 +148,8 @@ DOMMatrix::~DOMMatrix() = default;
void DOMMatrix::initialize(JS::Realm& realm) void DOMMatrix::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DOMMatrix); WEB_SET_PROTOTYPE_FOR_INTERFACE(DOMMatrix);
Base::initialize(realm);
} }
// https://drafts.fxtf.org/geometry/#dom-dommatrix-frommatrix // https://drafts.fxtf.org/geometry/#dom-dommatrix-frommatrix

View file

@ -154,8 +154,8 @@ DOMMatrixReadOnly::~DOMMatrixReadOnly() = default;
void DOMMatrixReadOnly::initialize(JS::Realm& realm) void DOMMatrixReadOnly::initialize(JS::Realm& realm)
{ {
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DOMMatrixReadOnly); WEB_SET_PROTOTYPE_FOR_INTERFACE(DOMMatrixReadOnly);
Base::initialize(realm);
} }
// https://drafts.fxtf.org/geometry/#create-a-2d-matrix // https://drafts.fxtf.org/geometry/#create-a-2d-matrix

Some files were not shown because too many files have changed in this diff Show more