aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/callback.rs
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2015-06-14 16:45:28 +0200
committerMs2ger <ms2ger@gmail.com>2015-06-14 20:08:26 +0200
commit90a7ef15718d8786771c1631de7739d00c97f7d0 (patch)
tree94c66a89fc7afe72ea13555bb94e73670f9003b1 /components/script/dom/bindings/callback.rs
parent0607cd3fb54250f7b6e3b4028879a3eda1e3688a (diff)
downloadservo-90a7ef15718d8786771c1631de7739d00c97f7d0.tar.gz
servo-90a7ef15718d8786771c1631de7739d00c97f7d0.zip
Throw a TypeError when get_callable_property encounters a value that isn't callable.
Diffstat (limited to 'components/script/dom/bindings/callback.rs')
-rw-r--r--components/script/dom/bindings/callback.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/components/script/dom/bindings/callback.rs b/components/script/dom/bindings/callback.rs
index 7a1c12f64d3..4baccae098e 100644
--- a/components/script/dom/bindings/callback.rs
+++ b/components/script/dom/bindings/callback.rs
@@ -99,16 +99,15 @@ impl CallbackInterface {
-> 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 {
+ let c_name = CString::new(name).unwrap();
+ if JS_GetProperty(cx, self.callback(), c_name.as_ptr(), &mut callable) == 0 {
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(Error::JSFailed);
+ return Err(Error::Type(
+ format!("The value of the {} property is not callable", name)));
}
}
Ok(callable)