diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs
index f1224d37097..6f4a585b113 100644
--- a/components/script/dom/htmlbaseelement.rs
+++ b/components/script/dom/htmlbaseelement.rs
@@ -4,12 +4,14 @@
use dom::bindings::codegen::Bindings::HTMLBaseElementBinding;
use dom::bindings::codegen::InheritTypes::HTMLBaseElementDerived;
+use dom::bindings::codegen::InheritTypes::HTMLElementCast;
use dom::bindings::js::Root;
use dom::document::Document;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::element::ElementTypeId;
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
+use dom::virtualmethods::VirtualMethods;
use util::str::DOMString;
#[dom_struct]
@@ -41,3 +43,8 @@ impl HTMLBaseElement {
}
}
+impl<'a> VirtualMethods for &'a HTMLBaseElement {
+ fn super_type<'b>(&'b self) -> Option<&'b VirtualMethods> {
+ Some(HTMLElementCast::from_borrowed_ref(self) as &VirtualMethods)
+ }
+}
diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs
index 88cc024acd5..b67cbb69d4f 100644
--- a/components/script/dom/virtualmethods.rs
+++ b/components/script/dom/virtualmethods.rs
@@ -7,6 +7,7 @@ use dom::bindings::codegen::InheritTypes::ElementCast;
use dom::bindings::codegen::InheritTypes::HTMLAnchorElementCast;
use dom::bindings::codegen::InheritTypes::HTMLAreaElementCast;
use dom::bindings::codegen::InheritTypes::HTMLAppletElementCast;
+use dom::bindings::codegen::InheritTypes::HTMLBaseElementCast;
use dom::bindings::codegen::InheritTypes::HTMLBodyElementCast;
use dom::bindings::codegen::InheritTypes::HTMLButtonElementCast;
use dom::bindings::codegen::InheritTypes::HTMLCanvasElementCast;
@@ -138,6 +139,10 @@ pub fn vtable_for<'a>(node: &'a &'a Node) -> &'a (VirtualMethods + 'a) {
let element = HTMLAreaElementCast::to_borrowed_ref(node).unwrap();
element as &'a (VirtualMethods + 'a)
}
+ NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLBaseElement)) => {
+ let element = HTMLBaseElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a (VirtualMethods + 'a)
+ }
NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLBodyElement)) => {
let element = HTMLBodyElementCast::to_borrowed_ref(node).unwrap();
element as &'a (VirtualMethods + 'a)