Bläddra i källkod

LibWeb: Actually initialize ShadowRoot bindings

`mode` and `host` attributes were always undefined.
Karol Kosek 2 år sedan
förälder
incheckning
34913c48d3

+ 7 - 0
Userland/Libraries/LibWeb/DOM/ShadowRoot.cpp

@@ -18,6 +18,13 @@ ShadowRoot::ShadowRoot(Document& document, Element& host)
     set_host(&host);
 }
 
+JS::ThrowCompletionOr<void> ShadowRoot::initialize(JS::Realm& realm)
+{
+    MUST_OR_THROW_OOM(Base::initialize(realm));
+    set_prototype(&Bindings::ensure_web_prototype<Bindings::ShadowRootPrototype>(realm, "ShadowRoot"));
+    return {};
+}
+
 // https://dom.spec.whatwg.org/#ref-for-get-the-parent%E2%91%A6
 EventTarget* ShadowRoot::get_parent(Event const& event)
 {

+ 1 - 0
Userland/Libraries/LibWeb/DOM/ShadowRoot.h

@@ -33,6 +33,7 @@ public:
 
 private:
     ShadowRoot(Document&, Element&);
+    virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
 
     // ^Node
     virtual DeprecatedFlyString node_name() const override { return "#shadow-root"; }