aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/node.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2013-07-31 19:25:13 -0400
committerJosh Matthews <josh@joshmatthews.net>2013-08-05 11:29:12 -0400
commite2468160b5a9ca792a54c1a1c66c6943a57d6cb0 (patch)
treebdd222296644702e2df7f48016cf3980f0530566 /src/components/script/dom/bindings/node.rs
parent9a545b13c385a73c63e5eda59ba8bda6842955c0 (diff)
downloadservo-e2468160b5a9ca792a54c1a1c66c6943a57d6cb0.tar.gz
servo-e2468160b5a9ca792a54c1a1c66c6943a57d6cb0.zip
Generate HTMLHtmlElement bindings.
Diffstat (limited to 'src/components/script/dom/bindings/node.rs')
-rw-r--r--src/components/script/dom/bindings/node.rs16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs
index 6ca2e61d6aa..a8e5b78e7e8 100644
--- a/src/components/script/dom/bindings/node.rs
+++ b/src/components/script/dom/bindings/node.rs
@@ -6,7 +6,8 @@ use dom::bindings::element;
use dom::bindings::text;
use dom::bindings::utils;
use dom::bindings::utils::{CacheableWrapper, WrapperCache, DerivedWrapper};
-use dom::element::{HTMLHeadElementTypeId, HTMLHeadElement};
+use dom::element::{HTMLHeadElementTypeId, HTMLHtmlElementTypeId};
+use dom::element::{HTMLHeadElement, HTMLHtmlElement};
use dom::node::{AbstractNode, Node, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId};
use dom::node::{DoctypeNodeTypeId, ScriptView, Text};
@@ -62,13 +63,18 @@ pub fn init(compartment: @mut Compartment) {
}
}
+macro_rules! generate_element(
+ ($name: ident) => ({
+ let node: @mut $name = unsafe { cast::transmute(node.raw_object()) };
+ node.wrap_object_shared(cx, ptr::null())
+ })
+)
+
#[allow(non_implicitly_copyable_typarams)]
pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject {
match node.type_id() {
- ElementNodeTypeId(HTMLHeadElementTypeId) => {
- let node: @mut HTMLHeadElement = unsafe { cast::transmute(node.raw_object()) };
- node.wrap_object_shared(cx, ptr::null())
- }
+ ElementNodeTypeId(HTMLHeadElementTypeId) => generate_element!(HTMLHeadElement),
+ ElementNodeTypeId(HTMLHtmlElementTypeId) => generate_element!(HTMLHtmlElement),
ElementNodeTypeId(_) => element::create(cx, node).ptr,
CommentNodeTypeId |
DoctypeNodeTypeId => text::create(cx, node).ptr,