diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2016-04-23 14:02:55 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-04-25 11:44:59 +0200 |
commit | 4c2ca7a8c9244746ac168942651b0df6b6476626 (patch) | |
tree | e2d181c9dd1cf1c799ad69ad76aafe4c2996e354 /components/script/dom/bindings/utils.rs | |
parent | a45f117838d542ceb8f3557321dc410d4fbab3e5 (diff) | |
download | servo-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.rs | 13 |
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]; |