From 4c2ca7a8c9244746ac168942651b0df6b6476626 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Sat, 23 Apr 2016 14:02:55 +0200 Subject: 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`.". --- components/script/dom/bindings/utils.rs | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'components/script/dom/bindings/utils.rs') 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]; -- cgit v1.2.3