Return Fallible from get_callable_property.

This commit is contained in:
Ms2ger 2015-06-14 16:01:11 +02:00
parent 6b886e545d
commit 0607cd3fb5
2 changed files with 7 additions and 9 deletions

View file

@ -4,6 +4,7 @@
//! Base classes to work with IDL callbacks.
use dom::bindings::error::{Fallible, Error};
use dom::bindings::global::global_object_for_js_object;
use dom::bindings::js::JSRef;
use dom::bindings::utils::Reflectable;
@ -93,22 +94,21 @@ impl CallbackInterface {
}
/// Returns the property with the given `name`, if it is a callable object,
/// or `Err(())` otherwise. If it returns `Err(())`, a JSAPI exception is
/// pending.
/// or an error otherwise.
pub fn get_callable_property(&self, cx: *mut JSContext, name: &str)
-> Result<JSVal, ()> {
-> Fallible<JSVal> {
let mut callable = UndefinedValue();
unsafe {
let name = CString::new(name).unwrap();
if JS_GetProperty(cx, self.callback(), name.as_ptr(), &mut callable) == 0 {
return Err(());
return Err(Error::JSFailed);
}
if !callable.is_object() ||
JS_ObjectIsCallable(cx, callable.to_object()) == 0 {
// FIXME(#347)
//ThrowErrorMessage(cx, MSG_NOT_CALLABLE, description.get());
return Err(());
return Err(Error::JSFailed);
}
}
Ok(callable)