diff --git a/src/components/script/dom/htmlanchorelement.rs b/src/components/script/dom/htmlanchorelement.rs
index 74f65de57c6..d5743b71ea0 100644
--- a/src/components/script/dom/htmlanchorelement.rs
+++ b/src/components/script/dom/htmlanchorelement.rs
@@ -2,13 +2,30 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-use dom::htmlelement::HTMLElement;
+use dom::bindings::codegen::HTMLAnchorElementBinding;
use dom::bindings::utils::{DOMString, ErrorResult};
+use dom::document::AbstractDocument;
+use dom::element::HTMLAnchorElementTypeId;
+use dom::htmlelement::HTMLElement;
+use dom::node::{AbstractNode, Node, ScriptView};
pub struct HTMLAnchorElement {
htmlelement: HTMLElement
}
+impl HTMLAnchorElement {
+ pub fn new_inherited(localName: ~str, document: AbstractDocument) -> HTMLAnchorElement {
+ HTMLAnchorElement {
+ htmlelement: HTMLElement::new(HTMLAnchorElementTypeId, localName, document)
+ }
+ }
+
+ pub fn new(localName: ~str, document: AbstractDocument) -> AbstractNode {
+ let element = HTMLAnchorElement::new_inherited(localName, document);
+ Node::reflect_node(@mut element, document, HTMLAnchorElementBinding::Wrap)
+ }
+}
+
impl HTMLAnchorElement {
pub fn Href(&self) -> DOMString {
None
diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs
index 9a8dab73e21..48a1c7d1c41 100644
--- a/src/components/script/html/hubbub_html_parser.rs
+++ b/src/components/script/html/hubbub_html_parser.rs
@@ -209,14 +209,13 @@ fn js_script_listener(to_parent: SharedChan,
pub fn build_element_from_tag(cx: *JSContext, tag: &str, document: AbstractDocument) -> AbstractNode {
// TODO (Issue #85): use atoms
- handle_element!(cx, document, tag, "a", HTMLAnchorElementTypeId, HTMLAnchorElement, []);
-
handle_htmlelement!(cx, document, tag, "aside", HTMLElementTypeId, HTMLElement);
handle_htmlelement!(cx, document, tag, "b", HTMLElementTypeId, HTMLElement);
handle_htmlelement!(cx, document, tag, "i", HTMLElementTypeId, HTMLElement);
handle_htmlelement!(cx, document, tag, "section", HTMLElementTypeId, HTMLElement);
handle_htmlelement!(cx, document, tag, "small", HTMLElementTypeId, HTMLElement);
+ handle_newable_element!(document, tag, "a", HTMLAnchorElement);
handle_newable_element!(document, tag, "applet", HTMLAppletElement);
handle_newable_element!(document, tag, "area", HTMLAreaElement);
handle_newable_element!(document, tag, "audio", HTMLAudioElement);