aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2013-08-30 13:13:46 -0400
committerJosh Matthews <josh@joshmatthews.net>2013-08-30 13:13:46 -0400
commit75f1cbd76fadeb31a987647cb6436c0fdf1c9ce6 (patch)
tree834390ec88c0fb1de908424779ecb720526b3f56 /src
parent7584aee98e71fa60a136b57b1611a376318646ef (diff)
downloadservo-75f1cbd76fadeb31a987647cb6436c0fdf1c9ce6.tar.gz
servo-75f1cbd76fadeb31a987647cb6436c0fdf1c9ce6.zip
Remove all handwritten bindings code.
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/bindings/element.rs307
-rw-r--r--src/components/script/dom/bindings/node.rs118
-rw-r--r--src/components/script/dom/bindings/utils.rs93
-rw-r--r--src/components/script/dom/element.rs1
-rw-r--r--src/components/script/dom/node.rs2
5 files changed, 7 insertions, 514 deletions
diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs
index 5528bf0075e..b6d1d9a72fc 100644
--- a/src/components/script/dom/bindings/element.rs
+++ b/src/components/script/dom/bindings/element.rs
@@ -4,311 +4,10 @@
use dom::types::*;
use dom::bindings::codegen::*;
-use dom::bindings::node::unwrap;
-use dom::bindings::utils::jsval_to_str;
-use dom::bindings::utils::{domstring_to_jsval, WrapNewBindingObject};
-use dom::bindings::utils::{str, CacheableWrapper, DOM_OBJECT_SLOT, DOMString};
-use dom::bindings::utils::{BindingObject, WrapperCache};
-use dom::element::Element;
-use dom::element::{HTMLImageElementTypeId, HTMLHeadElementTypeId, HTMLScriptElementTypeId,
- HTMLDivElementTypeId};
-use dom::node::{AbstractNode, ScriptView, ElementNodeTypeId};
-use layout_interface::{ContentBoxQuery, ContentBoxResponse};
-use script_task::page_from_context;
-use super::utils;
+use dom::bindings::utils::{BindingObject, WrapperCache, CacheableWrapper};
+use dom::node::ScriptView;
-use std::cast;
-use std::i32;
-use std::libc;
-use std::libc::c_uint;
-use std::comm;
-use std::ptr;
-use std::ptr::null;
-use js::glue::*;
-use js::jsapi::*;
-use js::jsapi::{JSContext, JSVal, JSObject, JSBool, JSFreeOp, JSPropertySpec};
-use js::jsapi::{JSNativeWrapper, JSTracer, JSTRACE_OBJECT};
-use js::jsapi::{JSPropertyOpWrapper, JSStrictPropertyOpWrapper, JSFunctionSpec};
-use js::rust::{Compartment, jsobj};
-use js::{JS_ARGV, JSPROP_ENUMERATE, JSPROP_SHARED};
-use js::{JS_THIS_OBJECT, JSPROP_NATIVE_ACCESSORS};
-
-extern fn finalize(_fop: *JSFreeOp, obj: *JSObject) {
- debug!("element finalize: %x!", obj as uint);
- unsafe {
- let node: AbstractNode<ScriptView> = unwrap(obj);
- //XXXjdm We need separate finalizers for each specialty element type like headings
- let _elem: @Element = cast::transmute(node.raw_object());
- }
-}
-
-pub extern fn trace(tracer: *mut JSTracer, obj: *JSObject) {
- let node = unsafe { unwrap(obj) };
-
- fn trace_node(tracer: *mut JSTracer, node: Option<AbstractNode<ScriptView>>, name: &str) {
- if node.is_none() {
- return;
- }
- error!("tracing %s", name);
- let mut node = node.unwrap();
- let cache = node.get_wrappercache();
- let wrapper = cache.get_wrapper();
- assert!(wrapper.is_not_null());
- unsafe {
- (*tracer).debugPrinter = ptr::null();
- (*tracer).debugPrintIndex = -1;
- do name.to_c_str().with_ref |name| {
- (*tracer).debugPrintArg = name as *libc::c_void;
- JS_CallTracer(cast::transmute(tracer), wrapper, JSTRACE_OBJECT as u32);
- }
- }
- }
- error!("tracing %?:", obj as uint);
- trace_node(tracer, node.parent_node(), "parent");
- trace_node(tracer, node.first_child(), "first child");
- trace_node(tracer, node.last_child(), "last child");
- trace_node(tracer, node.next_sibling(), "next sibling");
- trace_node(tracer, node.prev_sibling(), "prev sibling");
-}
-
-pub fn init(compartment: @mut Compartment) {
- let obj = utils::define_empty_prototype(~"Element", Some(~"Node"), compartment);
- let attrs = @~[
- JSPropertySpec {
- name: compartment.add_name(~"tagName"),
- tinyid: 0,
- flags: (JSPROP_ENUMERATE | JSPROP_SHARED | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: JSPropertyOpWrapper {op: getTagName, info: null()},
- setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
- JSPropertySpec {
- name: null(),
- tinyid: 0,
- flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: JSPropertyOpWrapper {op: null(), info: null()},
- setter: JSStrictPropertyOpWrapper {op: null(), info: null()}}];
- compartment.global_props.push(attrs);
- do attrs.as_imm_buf |specs, _len| {
- unsafe {
- JS_DefineProperties(compartment.cx.ptr, obj.ptr, specs);
- }
- }
-
- let methods = @~[JSFunctionSpec {name: compartment.add_name(~"getClientRects"),
- call: JSNativeWrapper {op: getClientRects, info: null()},
- nargs: 0,
- flags: 0,
- selfHostedName: null()},
- JSFunctionSpec {name: compartment.add_name(~"getBoundingClientRect"),
- call: JSNativeWrapper {op: getBoundingClientRect, info: null()},
- nargs: 0,
- flags: 0,
- selfHostedName: null()},
- JSFunctionSpec {name: compartment.add_name(~"setAttribute"),
- call: JSNativeWrapper {op: setAttribute, info: null()},
- nargs: 0,
- flags: 0,
- selfHostedName: null()},
- JSFunctionSpec {name: null(),
- call: JSNativeWrapper {op: null(), info: null()},
- nargs: 0,
- flags: 0,
- selfHostedName: null()}];
- do methods.as_imm_buf |fns, _len| {
- unsafe {
- JS_DefineFunctions(compartment.cx.ptr, obj.ptr, fns);
- }
- }
-
- compartment.register_class(utils::instance_jsclass(~"GenericElementInstance",
- finalize, trace));
-
- let _ = utils::define_empty_prototype(~"HTMLElement", Some(~"Element"), compartment);
- let _ = utils::define_empty_prototype(~"HTMLDivElement", Some(~"HTMLElement"), compartment);
- let _ = utils::define_empty_prototype(~"HTMLScriptElement", Some(~"HTMLElement"), compartment);
- let _ = utils::define_empty_prototype(~"HTMLHeadElement", Some(~"HTMLElement"), compartment);
-
- let obj = utils::define_empty_prototype(~"HTMLImageElement", Some(~"HTMLElement"), compartment);
- let attrs = @~[
- JSPropertySpec {name: compartment.add_name(~"width"),
- tinyid: 0,
- flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: JSPropertyOpWrapper {op: HTMLImageElement_getWidth, info: null()},
- setter: JSStrictPropertyOpWrapper {op: HTMLImageElement_setWidth, info: null()}},
- JSPropertySpec {name: null(),
- tinyid: 0,
- flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: JSPropertyOpWrapper {op: null(), info: null()},
- setter: JSStrictPropertyOpWrapper {op: null(), info: null()}}];
- compartment.global_props.push(attrs);
- do attrs.as_imm_buf |specs, _len| {
- unsafe {
- JS_DefineProperties(compartment.cx.ptr, obj.ptr, specs);
- }
- }
-}
-
-extern fn getClientRects(cx: *JSContext, _argc: c_uint, vp: *JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, vp);
- let mut node = unwrap(obj);
- let rval = do node.with_imm_element |elem| {
- elem.GetClientRects(node)
- };
- let cache = node.get_wrappercache();
- let rval = rval as @mut CacheableWrapper;
- assert!(WrapNewBindingObject(cx, cache.get_wrapper(),
- rval,
- cast::transmute(vp)));
- return 1;
- }
-}
-
-extern fn getBoundingClientRect(cx: *JSContext, _argc: c_uint, vp: *JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, vp);
- let mut node = unwrap(obj);
- let rval = do node.with_imm_element |elem| {
- elem.GetBoundingClientRect(node)
- };
- let cache = node.get_wrappercache();
- let rval = rval as @mut CacheableWrapper;
- assert!(WrapNewBindingObject(cx, cache.get_wrapper(),
- rval,
- cast::transmute(vp)));
- return 1;
- }
-}
-
-extern fn setAttribute(cx: *JSContext, argc: c_uint, vp: *JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, vp);
- let node = unwrap(obj);
-
- if (argc < 2) {
- return 0; //XXXjdm throw exception
- }
-
- let argv = JS_ARGV(cx, cast::transmute(vp));
-
- let arg0: DOMString;
- let strval = jsval_to_str(cx, (*argv.offset(0)));
- if strval.is_err() {
- return 0;
- }
- arg0 = str(strval.unwrap());
-
- let arg1: DOMString;
- let strval = jsval_to_str(cx, (*argv.offset(1)));
- if strval.is_err() {
- return 0;
- }
- arg1 = str(strval.unwrap());
-
- do node.as_mut_element |elem| {
- elem.set_attr(&arg0, &arg1);
- };
-
- return 1;
- }
-}
-
-extern fn HTMLImageElement_getWidth(cx: *JSContext, _argc: c_uint, vp: *mut JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, cast::transmute(vp));
- if obj.is_null() {
- return 0;
- }
-
- let node = unwrap(obj);
- let width = match node.type_id() {
- ElementNodeTypeId(HTMLImageElementTypeId) => {
- let page = page_from_context(cx);
- let (port, chan) = comm::stream();
- // TODO(tkuehn): currently this just queries top-level page's layout. Need to handle subframes.
- match (*page).query_layout(ContentBoxQuery(node, chan), port) {
- Ok(ContentBoxResponse(rect)) => rect.size.width.to_nearest_px(),
- Err(()) => 0
- }
- // TODO: if nothing is being rendered(?), return zero dimensions
- }
- ElementNodeTypeId(_) => fail!(~"why is this not an image element?"),
- _ => fail!(~"why is this not an element?")
- };
-
- *vp = RUST_INT_TO_JSVAL(
- (width & (i32::max_value as int)) as libc::c_int);
- return 1;
- }
-}
-
-extern fn HTMLImageElement_setWidth(cx: *JSContext, _argc: c_uint, vp: *mut JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, cast::transmute(vp));
- if obj.is_null() {
- return 0;
- }
-
- let node = unwrap(obj);
- match node.type_id() {
- ElementNodeTypeId(HTMLImageElementTypeId) => {
- do node.as_mut_element |elem| {
- let arg = ptr::offset(JS_ARGV(cx, cast::transmute(vp)), 0);
- elem.set_attr(&str(~"width"),
- &str((RUST_JSVAL_TO_INT(*arg) as int).to_str()))
- }
- }
- ElementNodeTypeId(_) => fail!(~"why is this not an image element?"),
- _ => fail!(~"why is this not an element?")
- };
-
- return 1;
- }
-}
-
-extern fn getTagName(cx: *JSContext, _argc: c_uint, vp: *mut JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, cast::transmute(vp));
- if obj.is_null() {
- return 0;
- }
-
- let node = unwrap(obj);
- do node.with_imm_element |elem| {
- let s = str(elem.tag_name.clone());
- *vp = domstring_to_jsval(cx, &s);
- }
- }
- return 1;
-}
-
-pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> jsobj {
- let proto = match node.type_id() {
- ElementNodeTypeId(HTMLDivElementTypeId) => ~"HTMLDivElement",
- ElementNodeTypeId(HTMLHeadElementTypeId) => ~"HTMLHeadElement",
- ElementNodeTypeId(HTMLImageElementTypeId) => ~"HTMLImageElement",
- ElementNodeTypeId(HTMLScriptElementTypeId) => ~"HTMLScriptElement",
- ElementNodeTypeId(_) => ~"HTMLElement",
- _ => fail!(~"element::create only handles elements")
- };
-
- //XXXjdm the parent should probably be the node parent instead of the global
- //TODO error checking
- let compartment = utils::get_compartment(cx);
- let obj = compartment.new_object_with_proto(~"GenericElementInstance",
- proto,
- compartment.global_obj.ptr).unwrap();
-
- let cache = node.get_wrappercache();
- assert!(cache.get_wrapper().is_null());
- cache.set_wrapper(obj.ptr);
-
- unsafe {
- let raw_ptr = node.raw_object() as *libc::c_void;
- JS_SetReservedSlot(obj.ptr, DOM_OBJECT_SLOT as u32, RUST_PRIVATE_TO_JSVAL(raw_ptr));
- }
-
- return obj;
-}
+use js::jsapi::{JSContext, JSObject};
pub macro_rules! generate_cacheable_wrapper(
($name: path, $wrap: path) => (
diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs
index ffd072493d9..26c0d29a528 100644
--- a/src/components/script/dom/bindings/node.rs
+++ b/src/components/script/dom/bindings/node.rs
@@ -2,66 +2,17 @@
* 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::bindings::element;
-use dom::bindings::utils;
-use dom::bindings::utils::{CacheableWrapper, WrapperCache, DerivedWrapper};
+use dom::bindings::utils::{CacheableWrapper, WrapperCache};
use dom::element::*;
use dom::types::*;
-use dom::node::{AbstractNode, Node, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId};
+use dom::node::{AbstractNode, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId};
use dom::node::{DoctypeNodeTypeId, ScriptView};
use std::cast;
-use std::libc::c_uint;
use std::ptr;
-use std::ptr::null;
-use js::jsapi::*;
-use js::jsapi::{JSContext, JSVal, JSObject, JSBool, JSPropertySpec};
-use js::jsapi::{JSPropertyOpWrapper, JSStrictPropertyOpWrapper};
-use js::jsval::{INT_TO_JSVAL};
-use js::rust::{Compartment};
-use js::{JSPROP_ENUMERATE, JSPROP_SHARED, JSVAL_NULL};
-use js::{JS_THIS_OBJECT, JSPROP_NATIVE_ACCESSORS};
+use js::jsapi::{JSContext, JSObject};
use servo_util::tree::TreeNodeRef;
-pub fn init(compartment: @mut Compartment) {
- let obj = utils::define_empty_prototype(~"Node", None, compartment);
-
- let attrs = @~[
- JSPropertySpec {
- name: compartment.add_name(~"firstChild"),
- tinyid: 0,
- flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: JSPropertyOpWrapper {op: getFirstChild, info: null()},
- setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
-
- JSPropertySpec {
- name: compartment.add_name(~"nextSibling"),
- tinyid: 0,
- flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: JSPropertyOpWrapper {op: getNextSibling, info: null()},
- setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
-
- JSPropertySpec {
- name: compartment.add_name(~"nodeType"),
- tinyid: 0,
- flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: JSPropertyOpWrapper {op: getNodeType, info: null()},
- setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
-
- JSPropertySpec {
- name: null(),
- tinyid: 0,
- flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: JSPropertyOpWrapper {op: null(), info: null()},
- setter: JSStrictPropertyOpWrapper {op: null(), info: null()}}];
- compartment.global_props.push(attrs);
- do attrs.as_imm_buf |specs, _len| {
- unsafe {
- JS_DefineProperties(compartment.cx.ptr, obj.ptr, specs);
- }
- }
-}
-
macro_rules! generate_element(
($name: path) => ({
let node: @mut $name = unsafe { cast::transmute(node.raw_object()) };
@@ -135,69 +86,6 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject
}
}
-pub unsafe fn unwrap(obj: *JSObject) -> AbstractNode<ScriptView> {
- let raw = utils::unwrap::<*mut Node<ScriptView>>(obj);
- AbstractNode::from_raw(raw)
-}
-
-extern fn getFirstChild(cx: *JSContext, _argc: c_uint, vp: *mut JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, cast::transmute(vp));
- if obj.is_null() {
- return 0;
- }
-
- let node = unwrap(obj);
- let rval = do node.with_mut_base |base| {
- base.getFirstChild()
- };
- match rval {
- Some(n) => {
- n.wrap(cx, ptr::null(), vp); //XXXjdm pass a real scope
- }
- None => *vp = JSVAL_NULL
- };
- }
- return 1;
-}
-
-extern fn getNextSibling(cx: *JSContext, _argc: c_uint, vp: *mut JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, cast::transmute(vp));
- if obj.is_null() {
- return 0;
- }
-
- let node = unwrap(obj);
- let rval = do node.with_mut_base |base| {
- base.getNextSibling()
- };
- match rval {
- Some(n) => {
- n.wrap(cx, ptr::null(), vp); //XXXjdm pass a real scope
- }
- None => *vp = JSVAL_NULL
- };
- }
- return 1;
-}
-
-extern fn getNodeType(cx: *JSContext, _argc: c_uint, vp: *mut JSVal) -> JSBool {
- unsafe {
- let obj = JS_THIS_OBJECT(cx, cast::transmute(vp));
- if obj.is_null() {
- return 0;
- }
-
- let node = unwrap(obj);
- let rval = do node.with_base |base| {
- base.getNodeType()
- };
- *vp = INT_TO_JSVAL(rval);
- }
- return 1;
-}
-
impl CacheableWrapper for AbstractNode<ScriptView> {
fn get_wrappercache(&mut self) -> &mut WrapperCache {
do self.with_mut_base |base| {
diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs
index 82cb15cdc0f..070a0ca50aa 100644
--- a/src/components/script/dom/bindings/utils.rs
+++ b/src/components/script/dom/bindings/utils.rs
@@ -18,7 +18,6 @@ use std::unstable::intrinsics;
use js::glue::*;
use js::glue::{DefineFunctionWithReserved, GetObjectJSClass, RUST_OBJECT_TO_JSVAL};
use js::glue::{js_IsObjectProxyClass, js_IsFunctionProxyClass, IsProxyHandlerFamily};
-use js::glue::{PROPERTY_STUB, STRICT_PROPERTY_STUB, ENUMERATE_STUB, CONVERT_STUB, RESOLVE_STUB};
use js::jsapi::{JS_AlreadyHasOwnProperty, JS_NewObject, JS_NewFunction, JS_GetGlobalObject};
use js::jsapi::{JS_DefineProperties, JS_WrapValue, JS_ForwardGetPropertyTo};
use js::jsapi::{JS_EncodeString, JS_free, JS_GetStringCharsAndLength};
@@ -31,7 +30,7 @@ use js::jsapi::{JSContext, JSObject, JSBool, jsid, JSClass, JSNative};
use js::jsapi::{JSFunctionSpec, JSPropertySpec, JSVal, JSPropertyDescriptor};
use js::jsfriendapi::bindgen::JS_NewObjectWithUniqueType;
use js::rust::Compartment;
-use js::{JSCLASS_HAS_RESERVED_SLOTS, JSPROP_ENUMERATE, JSVAL_NULL};
+use js::{JSPROP_ENUMERATE, JSVAL_NULL};
use js::{JSPROP_PERMANENT, JSID_VOID, JSPROP_NATIVE_ACCESSORS, JSPROP_GETTER};
use js::{JSPROP_SETTER, JSVAL_VOID, JSVAL_TRUE, JSVAL_FALSE};
use js::{JS_THIS_OBJECT, JSFUN_CONSTRUCTOR, JS_CALLEE, JSPROP_READONLY};
@@ -248,96 +247,6 @@ extern fn has_instance(_cx: *JSContext, obj: **JSObject, v: *JSVal, bp: *mut JSB
}
}
-pub fn prototype_jsclass(name: ~str) -> @fn(compartment: @mut Compartment) -> JSClass {
- let f: @fn(@mut Compartment) -> JSClass = |compartment: @mut Compartment| {
- unsafe {
- JSClass {
- name: compartment.add_name(name.to_owned()),
- flags: 0,
- addProperty: GetJSClassHookStubPointer(PROPERTY_STUB) as *u8,
- delProperty: GetJSClassHookStubPointer(PROPERTY_STUB) as *u8,
- getProperty: GetJSClassHookStubPointer(PROPERTY_STUB) as *u8,
- setProperty: GetJSClassHookStubPointer(STRICT_PROPERTY_STUB) as *u8,
- enumerate: GetJSClassHookStubPointer(ENUMERATE_STUB) as *u8,
- resolve: GetJSClassHookStubPointer(RESOLVE_STUB) as *u8,
- convert: GetJSClassHookStubPointer(CONVERT_STUB) as *u8,
- finalize: null(),
- checkAccess: null(),
- call: null(),
- hasInstance: has_instance,
- construct: null(),
- trace: null(),
- reserved: (null(), null(), null(), null(), null(), // 05
- null(), null(), null(), null(), null(), // 10
- null(), null(), null(), null(), null(), // 15
- null(), null(), null(), null(), null(), // 20
- null(), null(), null(), null(), null(), // 25
- null(), null(), null(), null(), null(), // 30
- null(), null(), null(), null(), null(), // 35
- null(), null(), null(), null(), null()) // 40
- }
- }
- };
- return f;
-}
-
-pub fn instance_jsclass(name: ~str, finalize: *u8, trace: *u8)
- -> @fn(compartment: @mut Compartment) -> JSClass {
- let f: @fn(@mut Compartment) -> JSClass = |compartment: @mut Compartment| {
- unsafe {
- JSClass {
- name: compartment.add_name(name.to_owned()),
- flags: JSCLASS_HAS_RESERVED_SLOTS(1) | js::JSCLASS_IS_DOMJSCLASS,
- addProperty: GetJSClassHookStubPointer(PROPERTY_STUB) as *u8,
- delProperty: GetJSClassHookStubPointer(PROPERTY_STUB) as *u8,
- getProperty: GetJSClassHookStubPointer(PROPERTY_STUB) as *u8,
- setProperty: GetJSClassHookStubPointer(STRICT_PROPERTY_STUB) as *u8,
- enumerate: GetJSClassHookStubPointer(ENUMERATE_STUB) as *u8,
- resolve: GetJSClassHookStubPointer(RESOLVE_STUB) as *u8,
- convert: GetJSClassHookStubPointer(CONVERT_STUB) as *u8,
- finalize: finalize,
- checkAccess: null(),
- call: null(),
- hasInstance: has_instance,
- construct: null(),
- trace: trace,
- reserved: (null(), null(), null(), null(), null(), // 05
- null(), null(), null(), null(), null(), // 10
- null(), null(), null(), null(), null(), // 15
- null(), null(), null(), null(), null(), // 20
- null(), null(), null(), null(), null(), // 25
- null(), null(), null(), null(), null(), // 30
- null(), null(), null(), null(), null(), // 35
- null(), null(), null(), null(), null()) // 40
- }
- }
- };
- return f;
-}
-
-pub fn define_empty_prototype(name: ~str, proto: Option<~str>, compartment: @mut Compartment)
- -> js::rust::jsobj {
- compartment.register_class(prototype_jsclass(name.to_owned()));
-
- //TODO error checking
- let obj = (
- match proto {
- Some(s) => compartment.new_object_with_proto(name.to_owned(),
- s,
- compartment.global_obj.ptr),
- None => compartment.new_object(name.to_owned(), null(), compartment.global_obj.ptr)
- }).unwrap();
-
- unsafe {
- compartment.define_property(name.to_owned(), RUST_OBJECT_TO_JSVAL(obj.ptr),
- GetJSClassHookStubPointer(PROPERTY_STUB) as *u8,
- GetJSClassHookStubPointer(STRICT_PROPERTY_STUB) as *u8,
- JSPROP_ENUMERATE);
- compartment.stash_global_proto(name, obj);
- return obj;
- }
-}
-
// We use slot 0 for holding the raw object. This is safe for both
// globals and non-globals.
pub static DOM_OBJECT_SLOT: uint = 0;
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index a2abbf47774..c4adf83022b 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -6,7 +6,6 @@
use dom::bindings::utils::{null_string, str};
use dom::bindings::utils::{BindingObject, CacheableWrapper, DOMString, ErrorResult, WrapperCache};
-use dom::htmlelement::HTMLElement;
use dom::htmlcollection::HTMLCollection;
use dom::clientrect::ClientRect;
use dom::clientrectlist::ClientRectList;
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs
index f7d01575bf6..0248f86de44 100644
--- a/src/components/script/dom/node.rs
+++ b/src/components/script/dom/node.rs
@@ -608,8 +608,6 @@ impl VoidPtrLike for AbstractNode<LayoutView> {
}
pub fn define_bindings(compartment: @mut Compartment) {
- bindings::node::init(compartment);
- bindings::element::init(compartment);
bindings::utils::initialize_global(compartment.global_obj.ptr);
bindings::codegen::RegisterBindings::Register(compartment);
}