aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/utils.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2016-04-23 14:02:55 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2016-04-25 11:44:59 +0200
commit4c2ca7a8c9244746ac168942651b0df6b6476626 (patch)
treee2d181c9dd1cf1c799ad69ad76aafe4c2996e354 /components/script/dom/bindings/utils.rs
parenta45f117838d542ceb8f3557321dc410d4fbab3e5 (diff)
downloadservo-4c2ca7a8c9244746ac168942651b0df6b6476626.tar.gz
servo-4c2ca7a8c9244746ac168942651b0df6b6476626.zip
Refactor the `call` hook on non-callback interface objects (fixes #10744)
It's now set through the intermediate InterfaceConstructorBehavior structure, which lets us improve the abstraction around NonCallbackInterfaceObjectClass a bit better. When the interface's constructor is supposed to always throw, the error for calling `Foo()` without new is "Illegal constructor.". when the interface actually defines an interface, the error is instead "This constructor needs to be called with `new`.".
Diffstat (limited to 'components/script/dom/bindings/utils.rs')
-rw-r--r--components/script/dom/bindings/utils.rs13
1 files changed, 1 insertions, 12 deletions
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index 2b4e5ee5ae0..9302bb40a09 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -16,7 +16,6 @@ use dom::browsingcontext;
use dom::window;
use heapsize::HeapSizeOf;
use js;
-use js::error::throw_type_error;
use js::glue::{CallJitGetterOp, CallJitMethodOp, CallJitSetterOp, IsWrapper};
use js::glue::{GetCrossCompartmentWrapper, WrapperNew};
use js::glue::{RUST_FUNCTION_VALUE_TO_JITINFO, RUST_JSID_IS_INT, RUST_JSID_IS_STRING};
@@ -35,7 +34,7 @@ use js::jsval::{JSVal};
use js::jsval::{PrivateValue, UndefinedValue};
use js::rust::{GCMethods, ToString};
use js::{JS_CALLEE};
-use libc::{self, c_uint};
+use libc;
use std::default::Default;
use std::ffi::CString;
use std::os::raw::c_void;
@@ -123,16 +122,6 @@ pub fn get_proto_or_iface_array(global: *mut JSObject) -> *mut ProtoOrIfaceArray
}
}
-/// A throwing constructor, for those interfaces that have neither
-/// `NoInterfaceObject` nor `Constructor`.
-pub unsafe extern "C" fn throwing_constructor(cx: *mut JSContext,
- _argc: c_uint,
- _vp: *mut JSVal)
- -> bool {
- throw_type_error(cx, "Illegal constructor.");
- false
-}
-
/// An array of *mut JSObject of size PROTO_OR_IFACE_LENGTH.
pub type ProtoOrIfaceArray = [*mut JSObject; PROTO_OR_IFACE_LENGTH];