diff options
author | Ms2ger <ms2ger@gmail.com> | 2015-06-14 16:45:28 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2015-06-14 20:08:26 +0200 |
commit | 90a7ef15718d8786771c1631de7739d00c97f7d0 (patch) | |
tree | 94c66a89fc7afe72ea13555bb94e73670f9003b1 /components/script/dom/bindings/callback.rs | |
parent | 0607cd3fb54250f7b6e3b4028879a3eda1e3688a (diff) | |
download | servo-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.rs | 9 |
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) |